久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1742|回復: 0
打印 上一主題 下一主題
收起左側

單片機和上位機通信程序遇到問題了 求大神支招!

[復制鏈接]
跳轉到指定樓層
樓主
ID:229339 發表于 2017-8-25 17:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
程序是:發送給單片機01時,單片機發送“Turn on ad!”給上位機,開啟ad轉換,并顯示AD的電壓,在數碼管的前三位顯示ad的數字量。

但發送01給單片機后,擰動電位器后,二極管會改變,但數碼管一直顯示8.8.8.(會閃);求幫忙解決。。。
還有用adc0804芯片來實現ad轉換,我到現在還有點搞不懂。!支招。!

  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <stdio.h>
  4. #define uchar unsigned char
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. sbit adwr=P3^6;
  8. sbit adrd=P3^7;
  9.                   
  10. uchar a,b,flag,flag_ad,flag_smg,ad_vol,t0;
  11. float num;

  12. uchar code table[]={
  13. 0x3f,0x06,0x5b,0x4f,
  14. 0x66,0x6d,0x7d,0x07,
  15. 0x7f,0x6f,0x77,0x7c,
  16. 0x39,0x5e,0x79,0x71};

  17. void delay(uchar z)
  18. {                                       
  19.         uchar x,y;
  20.         for(x=z;x>0;x--)
  21.                 for(y=110;y>0;y--);      
  22. }

  23. void display(uchar num)
  24. {
  25.         uchar bai,shi,ge;
  26.         bai=num/100;
  27.         shi=num%100/10;
  28.         ge=num%10;

  29.         wela=1;
  30.         P0=0x7e;
  31.         wela=0;
  32.         P0=0xff;
  33.         dula=1;
  34.         dula=table[bai];
  35.         dula=0;
  36.         delay(5);

  37.         wela=1;
  38.         P0=0x7d;
  39.         wela=0;
  40.         P0=0xff;
  41.         dula=1;
  42.         dula=table[shi];
  43.         dula=0;
  44.         delay(5);

  45.         wela=1;
  46.         P0=0x7b;
  47.         wela=0;
  48.         P0=0xff;
  49.         dula=1;
  50.         dula=table[ge];
  51.         dula=0;
  52.         delay(5);

  53. }

  54. uchar ad()
  55. {
  56.         uchar adval;
  57.         wela=1;
  58.         P0=0x7f;
  59.         adwr=1;
  60.         adwr=0;
  61.         adwr=1;

  62.         delay(10);

  63.         P1=0xff;
  64.         adrd=1;
  65.         adrd=0;
  66.         adval=P1;
  67.         adrd=1;
  68.         P1=adval;
  69.         return adval;
  70. }



  71. void main()
  72. {
  73.         EA=1;
  74.         TMOD=0x21;
  75.         TH1=0xfd;
  76.         TL1=0xfd;
  77.         TR1=1;
  78.         TH0=0x4c;
  79.         TL0=0x00;
  80.         ET0=1;
  81.         SM0=0;
  82.         SM1=1;
  83.         REN=1;
  84.         ES=1;

  85.         while(1)
  86.         {
  87.                 if(flag==1)
  88.                 {
  89.                         flag=0;
  90.                         ES=0;
  91.                         TI=1;
  92.                         switch(b)
  93.                         {        
  94.                                 case 0 : puts("Turn on ad!\n");TR0=1;break;
  95.                                 case 1 : puts("Turn off ad!\n");TR0=0;break;
  96.                                 case 2 : puts("Error!\n");break;
  97.                         }
  98.                         while(!TI);
  99.                         TI=0;
  100.                         ES=1;
  101.                 }
  102.                 if(flag_smg==1)
  103.                 {
  104.                         ES=0;
  105.                         flag_smg=0;
  106.                         ad_vol=ad();
  107.                         num=(float)ad_vol*5.0/256.0;
  108.                         TI=1;
  109.                         printf("The voltagle is %fV\n",num);
  110.                         while(!TI);
  111.                         TI=0;
  112.                         ES=1;
  113.                 }
  114.                 display(ad_vol);
  115.         }

  116. }

  117. void timer0() interrupt 1
  118. {
  119.         TH0=0x4c;
  120.         TL0=0x00;
  121.         t0++;
  122.         if(t0==20)
  123.         {
  124.                 t0=0;
  125.                 flag_smg=1;
  126.         }      
  127. }



  128. void uart() interrupt 4
  129. {
  130.         RI=0;
  131.         a=SBUF;
  132.         flag=1;
  133.         if(a==1)
  134.                 b=0;
  135.         else if(a==2)
  136.                 b=1;
  137.         else
  138.                 b=2;               
  139. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线观看一区 | 99久久婷婷国产综合精品首页 | 精品国产乱码久久久久久老虎 | 久久噜噜噜精品国产亚洲综合 | 欧美精品一二三区 | 91xxx在线观看| 国产精品久久久久无码av | 国产高清在线 | 精品国产一区二区三区久久 | 国产精品久久久久婷婷二区次 | caoporon| 国产在线观 | 中文字幕欧美一区 | 久久国产精品-久久精品 | 日本不卡一区二区三区在线观看 | 91xxx在线观看 | 欧洲精品在线观看 | 久久久精彩视频 | 神马久久久久久久久久 | 免费一级片 | 免费h在线 | 欧美精品在线视频 | 一区二区日本 | 久久91精品| 欧美精品中文字幕久久二区 | 欧美视频三区 | 国产欧美精品区一区二区三区 | 国产一级特黄aaa大片评分 | 一级a性色生活片久久毛片 一级特黄a大片 | 亚洲综合第一页 | 亚洲精品电影网在线观看 | 国产成人午夜精品影院游乐网 | 色吊丝2288sds中文字幕 | 看片天堂| 欧美一区视频 | 国产在线观看一区二区 | 欧美一级片久久 | 欧美精品一区二区三区在线四季 | 精品无码三级在线观看视频 | 天堂在线一区 | 午夜精品福利视频 |