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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機電壓測量程序

[復制鏈接]
跳轉到指定樓層
樓主
基于51單片機電壓測量代碼如下:

  1. #include<reg52.h>
  2. #include<intrins.h>// _nop()_函數頭文件

  3. sbit key = P3^3;
  4. sbit start = P3^4;
  5. sbit oe = P3^2;
  6. sbit eoc = P3^1;
  7. sbit c = P3^0;

  8. sbit RS = P2^0;   //定義端口
  9. sbit RW = P2^1;
  10. sbit E = P2^2;

  11. //sbit clock = P3^7;



  12. unsigned char da0,da1,da2,da3;
  13. unsigned int  temp;
  14. unsigned char dat;
  15. unsigned char sum;
  16. unsigned d1;
  17. unsigned char lcdd[]="0123456789";
  18. unsigned char folat;


  19. void lcd_w_cmd(unsigned char com);//寫命令
  20. void lcd_w_dat(unsigned char dat);//寫數據
  21. void display(unsigned char dat);//顯示函數
  22. unsigned char lcd_r_start();//讀狀態函數
  23. void int1(); //初始化1602
  24. void delay(unsigned char t);
  25. void delay1();
  26. void display1(unsigned char dat)
  27. {
  28.         temp = dat*1000;
  29.         da0 = temp/51/1000;//個位;
  30.         da1 = temp/51/100%10;//十分位
  31.         d1 = temp/51/10;
  32.         da2 = d1%10;// 百分位
  33.     da3 = temp/51%10;// 千分位
  34.         lcd_w_cmd(0x0c);
  35.         delay(20);
  36.         lcd_w_cmd(0xc0);
  37.         delay(20);
  38.     delay(2);
  39.         lcd_w_dat('V');
  40.         lcd_w_dat('o');
  41.         lcd_w_dat('l');
  42.         lcd_w_dat('a');
  43.         lcd_w_dat('t');
  44.         lcd_w_dat('a');
  45.         lcd_w_dat('g');
  46.         lcd_w_dat('e');
  47.         lcd_w_dat(' ');
  48.         lcd_w_dat(lcdd[da0]); //       
  49.         lcd_w_dat('.');
  50.         lcd_w_dat(lcdd[da1]);
  51.         lcd_w_dat(lcdd[da2]);
  52.         lcd_w_dat(lcdd[da3]);
  53.         lcd_w_dat('V');
  54. }
  55. /*-----------主函數---------*/

  56. void main()
  57. {
  58.         TCON = 0x04;
  59.         IE = 0x84;
  60.         c = 0;
  61.         int1();
  62.         sum = 0;
  63.         while(1)
  64.         {
  65.                 for(folat = 0;folat<5;folat++)
  66.                 {
  67.                         start = 0;
  68.                         start = 1;
  69.                         start = 0;
  70.                         do
  71.                         {
  72.                          _nop_();
  73.                         }
  74.                         while(eoc==0);
  75.                           oe = 1;
  76.                         dat = P1;
  77.                         sum        = sum+dat;
  78.                         oe = 0;
  79.                 }
  80.                 dat = sum/5;
  81.                 display1(dat);
  82.                 sum=0;
  83.        
  84.         }


  85. }

  86. void key_scan() interrupt 2//外部中斷1
  87. {
  88.         if(key==0)
  89.         {
  90.                 delay(10);
  91.                 if(key==0)
  92.                 {
  93.                         c = ~c;
  94.                         start = 0;
  95.                         start = 1;
  96.                         start = 0;
  97.                         folat = 0;
  98.                         sum = 0;
  99.                 }
  100.         }


  101. }

  102. void delay(unsigned char t)//延時函數
  103. {
  104.         unsigned char j,i;
  105.         for(i = 0;i<t;i++)
  106.                 for(j = 0;j<20;j++);
  107. }

  108. void delay1()
  109. {
  110.         _nop_();
  111.         _nop_();
  112.         _nop_();
  113. }
  114. void int1()
  115. {
  116.         lcd_w_cmd(0x3c);  //設置工作方式
  117.         lcd_w_cmd(0x0c); //設置光標
  118.         lcd_w_cmd(0x01); //清屏
  119.         lcd_w_cmd(0x06); //設置輸入方式
  120.         lcd_w_cmd(0x80); //設置初始化顯示設置
  121. }
  122. /*-----lcd讀狀態函數----*/
  123. unsigned char lcd_r_start()
  124. {
  125.         unsigned char s;
  126.         RW=1;
  127.         delay1();
  128.         RS=0;
  129.         delay1();
  130.         E=1;
  131.         delay1();
  132.         s=P0;  
  133.         delay1();
  134.         E=0;
  135.         delay1();
  136.         RW=0;
  137.         delay1();
  138.         return(s);

  139. }

  140. /*LCD

  141. 寫命令函數

  142. */

  143. void lcd_w_cmd(unsigned char com)
  144. {
  145. unsigned char i;
  146. do
  147. {
  148. i=lcd_r_start();
  149. i=i&0x80;
  150. delay(2);

  151. }

  152. while(i!=0);
  153. RW=0;
  154. delay1();
  155. RS=0;
  156. delay1();
  157. E=1;
  158. delay1();
  159. P0=com;
  160. delay1();
  161. E=0;
  162. delay1();
  163. RW=1;
  164. delay(255);;

  165. }

  166. void lcd_w_dat(unsigned char dat)
  167. {
  168. unsigned char i;
  169. do
  170. {

  171. i=lcd_r_start(); //
  172. i=i&0x80;
  173. delay(2);
  174. }
  175. while(i!=0); // LCD
  176. RW=0;
  177. delay1();
  178. RS=1;
  179. delay1();
  180. E=1;
  181. delay1();
  182. P0=dat;
  183. delay1();
  184. E=0;
  185. delay1();
  186. RW=1;
  187. delay(255);
  188. }

  189.      
復制代碼


下載:
電壓表.rar (31.76 KB, 下載次數: 55)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:224479 發表于 2017-8-3 18:07 | 只看該作者
正在做用單片機的電壓測量,表示不會
回復

使用道具 舉報

板凳
ID:371538 發表于 2018-7-23 12:31 | 只看該作者
各個接口怎么接,可以說一下嗎
謝謝~
回復

使用道具 舉報

地板
ID:406783 發表于 2018-10-8 22:59 | 只看該作者
GZ-T200電阻電壓測量儀,淘寶網上有哦,液晶顯示呢;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲91精品 | 亚洲美女一区 | 久久综合一区 | 一级黄在线观看 | 在线观看中文字幕一区二区 | 91人人爽 | 日本天天操 | 国产日韩视频在线 | 久久国产成人 | 99久久精品免费 | 亚洲国产91 | 成人在线播放 | 欧美一区二区三区四区在线 | 亚洲精品国产一区 | 毛片一区二区三区 | 亚洲电影一区二区三区 | 日韩中文在线 | 久久久观看| 一级日批片 | 91精品国产一区二区在线观看 | 亚洲精美视频 | 国产超碰人人爽人人做人人爱 | 午夜爱爱毛片xxxx视频免费看 | 91麻豆精品国产91久久久久久久久 | 日韩精品a在线观看图片 | 国产精品a一区二区三区网址 | 亚洲成人免费 | 麻豆精品国产91久久久久久 | 久久国产精品免费视频 | 久久久免费电影 | 日韩免费视频一区二区 | 成人国内精品久久久久一区 | 国产在线拍偷自揄拍视频 | 欧美日韩高清在线观看 | 日韩欧美一区二区三区 | 永久av | 免费看欧美一级片 | 韩三级在线观看 | 99国产视频 | 国产传媒在线观看 | 国产视频二区 |