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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于C51單片機和ADC0804顯示電壓以及0-255數值(仿真加程序)

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


單片機源程序如下:
  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  table2[]="Vo:0.00V;Nu:000";          
  8. uchar  table3[]="made by Xfei";         

  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. //延時ms//
  19. void  delay(uint x)
  20. {
  21.    uint i,j;
  22.    for(i=0;i<x;i++)
  23.      for(j=0;j<110;j++);
  24. }


  25. //MCU寫指令//
  26. void write_com(uchar com)
  27. {
  28.    lcdrs=0;
  29.    P2=com;
  30.    delay(5);
  31.    lcden=1;
  32.    delay(5);
  33.    lcden=0;
  34. }                                  


  35. //MCU寫數據//
  36. void write_date(uchar date)
  37. {
  38.    lcdrs=1;
  39.    P2=date;
  40.    delay(5);
  41.    lcden=1;
  42.    delay(5);
  43.    lcden=0;
  44. }


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

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

  72. /*小改嘻嘻*/


  73. //顯示第一行//
  74. void disp1()
  75. {
  76. uchar i;
  77. write_com(0x80+0x00);
  78. for (i=0;i<12;i++)
  79.         {
  80.         write_date(table3[i]);
  81.         delay(100);
  82.         }
  83. }


  84. //顯示第二行//
  85. void disp2()
  86. {
  87. uchar i;
  88. write_com(0x80+0x40);
  89. for (i=0;i<12;i++)
  90.         {
  91.         write_date(table2[i]);
  92.         delay(100);
  93.         }
  94. }

  95.    
  96. void set_shu1(uchar  add,uchar date)
  97.    {
  98.      uchar bai,shi,ge;
  99.          bai=date/51;
  100.          shi=((date%51)*10/51);         
  101.          ge=((date%51)*10%51)*10/51;
  102.          write_com(0x80+0x40+add);                 //地址
  103.              {
  104.                  write_date(table1[bai]);          //百位數值
  105.                  }                                                         
  106.          write_com(0x80+0x40+add+2);         //地址右移二位
  107.              {
  108.                  write_date(table1[shi]);         //十位數值
  109.                  }
  110.           write_com(0x80+0x40+add+3);         //地址右移三位
  111.              {
  112.                  write_date(table1[ge]) ;         //個位數值 //將值轉換成具體數
  113.              }         
  114.         }         


  115. void set_shu2(uchar  add,uchar date)
  116. {
  117.      uchar bai,shi,ge;
  118.          bai=date/100;
  119.          shi=date%100/10;
  120.          ge=date%10;
  121.          write_com(0x80+0x40+add);               
  122.          {
  123.          write_date(table1[bai]);
  124.          }
  125.          write_com(0x80+0x40+add+1);
  126.         {
  127.          write_date(table1[shi]);
  128.          }
  129.          write_com(0x80+0x40+add+2);         
  130.         {
  131.          write_date(table1[ge])  ;
  132.          }                                           //將電壓值轉換為0~225的值*/
  133. }

  134. void st_ad() //開AD
  135. {
  136.    adwr=1;
  137.    _nop_();
  138.    adwr=0;
  139.    _nop_();
  140.    adwr=1;

  141. }
  142. void red_ad()//讀AD
  143. {
  144.    adrd=1;
  145.    _nop_();
  146.    adrd=0;
  147.    _nop_();
  148.    adrd=0;

  149. }


  150. void main()
  151. {       
  152.    
  153.         init();
  154.         disp1();
  155.         disp2();
  156.        
  157.        
  158.          while(1)
  159.          {           
  160.            write_com(0x80+0x40+7);
  161.           
  162.            st_ad();
  163.            set_shu1(3,adval);
  164.            set_shu2(12,adval);
  165.            red_ad();
  166.            adval=P1;   //P1的值送給date
  167.           // dy=adval/255;
  168.           // P2=wen;
  169.           }
  170.           //while(1);

  171. }
復制代碼

所有資料51hei提供下載:
ADC0804顯示電壓.rar (61.54 KB, 下載次數: 69)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 无毛av| 日韩日b视频 | 精品国产一区二区在线 | 午夜在线免费观看视频 | 国产成人精品免高潮在线观看 | 日韩欧美成人一区二区三区 | 久久一起草 | 日韩精品一区二区三区中文字幕 | 久国久产久精永久网页 | 日韩一区和二区 | 日韩无| 在线不卡视频 | 中文字幕综合 | 日韩aⅴ视频 | 天天拍天天操 | 亚洲影音| 九九看片 | 日韩一区中文字幕 | 亚洲美女网站 | 亚洲视频欧美视频 | 国产精华一区 | 你懂的在线视频播放 | 国产精品久久久久久中文字 | 特级生活片 | 欧美日韩1区2区 | 国产成人精品网站 | 国产精品久久久99 | 国产中文 | 亚洲精品区| 亚洲成人免费 | 中文字幕欧美一区 | 成人小视频在线观看 | 精品一区二区三区中文字幕 | 中文字幕国产精品视频 | 国产精品污www一区二区三区 | 国产成人免费在线 | 国产精品小视频在线观看 | 欧美xxxx黑人又粗又长 | 在线免费看黄 | 国产精品免费观看 | 日韩一区二区三区视频 |