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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于ADC0804的1602顯示電壓仿真和單片機代碼

[復制鏈接]
跳轉到指定樓層
樓主


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5.        
  6. uchar code table1[]="0123456789";
  7. uchar code table2[]="DianYa:0.00V";          
  8. uchar code table3[]="made  by  JCLong";         

  9. uchar num,x,adval,wen,dy,date;
  10. sbit lcden=P3^2;
  11. sbit lcdrs=P3^0;
  12. sbit lcdrw=P3^1;
  13. sbit lcds1=P3^3;  
  14. sbit lcds2=P3^4        ;
  15. sbit adwr=P3^6;
  16. sbit adrd=P3^7;
  17. sbit adcs=P3^5;
  18. void  delay(uint z)
  19. {
  20.    uint x,y;
  21.    for(x=z;x>0;x--)
  22.      for(y=110;y>0;y--);



  23. }
  24. void write_com(uchar com)
  25. {
  26.    lcdrs=0;
  27.    P2=com;
  28.    delay(5);
  29.    lcden=1;
  30.    delay(5);
  31.    lcden=0;


  32. }                                  


  33. void write_date(uchar date)
  34. {
  35.    lcdrs=1;
  36.    P2=date;
  37.    delay(5);
  38.    lcden=1;
  39.    delay(5);
  40.    lcden=0;


  41. }


  42. void init()
  43. {
  44.   
  45.   adcs=0;
  46.   lcdrw=0;
  47.   lcden=0;
  48.    write_com(0x38);        //
  49.    write_com(0x0c);
  50.    write_com(0x06);
  51.    write_com(0x01);         
  52.     write_com(0x80);
  53.   while(table3[num]!='\0')
  54.     {
  55.         write_date(table3[num++]);
  56.         delay(100);
  57.         }
  58.         lcden=1;
  59.         delay(1000);
  60.         lcden=0;
  61.    

  62.         write_com(0x80+0x40);
  63.         num=0;//很重要!
  64.         while(table2[num]!='\0')
  65.            {
  66.                     write_date(table2[num++]);
  67.                  
  68.            }

  69. }
  70.    
  71. void set_shu(uchar  add,uchar date)
  72.    {

  73.      uchar shu,bai,shi,ge;
  74.          //date=date/225;
  75.          /*bai=date/100;
  76.          shi=date/100%10;
  77.          ge=date%10;
  78.          write_com(0x80+0x40+add);                //將電壓值轉換為0~225的值
  79.          write_date(table1[bai]);
  80.          write_date(table1[shi]);         
  81.          write_date(table1[ge])  ;        */
  82.          bai=date/45;
  83.          //shi=bai*10/45;
  84.          shi=((date%45)*10/45);         
  85.          ge=((date%45)*10%45)*10/45;
  86.          write_com(0x80+0x40+add);
  87.              {
  88.                  write_date(table1[bai]);
  89.                  }                                                         //將值轉換成具體數
  90.          write_com(0x80+0x40+add+2);
  91.              {
  92.                  write_date(table1[shi]);
  93.                  }
  94.           write_com(0x80+0x40+add+3);         
  95.              {
  96.                  write_date(table1[ge]) ;
  97.         }          }

  98. void st_ad() //開AD
  99. {
  100.    adwr=1;
  101.    _nop_();
  102.    adwr=0;
  103.    _nop_();
  104.    adwr=1;

  105. }
  106. void red_ad()//讀AD
  107. {
  108.    adrd=1;
  109.    _nop_();
  110.    adrd=0;
  111.    _nop_();
  112.    adrd=0;

  113. }

  114. void main()
  115. {       
  116.    
  117.         init();
  118.        
  119.        
  120.          while(1)
  121.          {           
  122. ……………………

  123. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
基于ADC0804的1602顯示電壓.zip (17.06 KB, 下載次數: 169)

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

使用道具 舉報

沙發
ID:218728 發表于 2017-7-11 20:13 | 只看該作者
bai=date/45;           //shi=bai*10/45;          shi=((date%45)*10/45);                   ge=((date%45)*10%45)*10/45; 樓主能給這段代碼解釋一下嗎,我不太懂,謝了
回復

使用道具 舉報

板凳
ID:218728 發表于 2017-7-11 20:13 | 只看該作者
bai=date/45;
         //shi=bai*10/45;
         shi=((date%45)*10/45);         
         ge=((date%45)*10%45)*10/45;
樓主能給這段代碼解釋一下嗎,我不太懂,謝了
回復

使用道具 舉報

地板
ID:443783 發表于 2019-3-18 14:10 | 只看該作者
應該是百位=date/45//數據除以45,45應該是最總數據的算法
回復

使用道具 舉報

5#
ID:345989 發表于 2019-6-22 17:57 | 只看該作者
C語言剛學沒多久,單片機也是剛入門,所以想下載樓主的完整程序看一下
回復

使用道具 舉報

6#
ID:713781 發表于 2020-4-23 12:56 | 只看該作者
所以為什么除以45啊
回復

使用道具 舉報

7#
ID:730449 發表于 2020-4-23 17:55 來自觸屏版 | 只看該作者
8位的電壓數據,有255個點,基準電壓是5V,平均每個等份的電壓為5/255 V,而單片機得到的0~255的數乘上5/255 就是電壓值!即,(date*5)/255=date/45
回復

使用道具 舉報

8#
ID:347629 發表于 2020-5-31 15:00 | 只看該作者
馬永練 發表于 2020-4-23 17:55
8位的電壓數據,有255個點,基準電壓是5V,平均每個等份的電壓為5/255 V,而單片機得到的0~255的數乘上5/2 ...

5和255約分之后是51,也就是data/51  ,45怕是不對吧
回復

使用道具 舉報

9#
ID:292460 發表于 2020-6-10 11:00 | 只看該作者
感謝樓主
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久美女 | 国产在线拍偷自揄拍视频 | 亚洲伊人a | 超碰在线人人干 | 久久久久综合 | 99re热精品视频 | 国产一区二区在线播放 | 成人福利网 | 中文字幕精品一区久久久久 | 免费网站国产 | 日韩av在线一区 | 国产精品美女久久久久久免费 | 国产一区二区精品 | 黄免费看| 91色综合| 黄色片网此 | 久久精品福利 | 91久久精品一区二区二区 | 天堂在线91 | 九九热精品视频 | 激情五月综合 | 天堂久久天堂综合色 | 韩国主播午夜大尺度福利 | 久久av一区 | 欧美激情一区二区三区 | 免费日韩av | chengrenzaixian | 亚洲精品久久久蜜桃 | 欧美一区二区免费电影 | 五月婷婷 六月丁香 | 天天干夜夜| 成年人免费看的视频 | 超黄视频网站 | 久久精品国产亚洲a | 国产1区2区 | 中文字幕视频在线看5 | 国产色 | 99精品视频在线 | 91视频免费观看 | 黄色在线观看网址 | 国产一级在线 |