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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機ADC0809電壓顯示,包含仿真圖,源程序

[復制鏈接]
跳轉到指定樓層
樓主
這是我做的電壓顯示,附件包含仿真圖,源程序,花了不少時間,都是自己原創的,希望大家多多指教

ADC0809仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


ADC0809單片機源碼:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<math.h>
  4. typedef unsigned char uchar;
  5. typedef unsigned int uint;
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. float getdata;
  9. float x;
  10. uint temp;
  11. uchar dispbuf[8]={10,10,10,10,10,0,0,0};
  12. uchar*p="0123456789";
  13. uchar code table[]="20141547YSH";
  14. uchar num;
  15. sbit ST=P2^0;
  16. sbit OE=P2^2;
  17. sbit EOC=P2^1;
  18. sbit CLK=P2^4;
  19. sbit rs=P3^5;
  20. sbit e=P3^4;
  21. void delay(uint z)
  22. {
  23.     uint x,y;
  24.     for(x=0;x<z;x++)
  25.       for(y=0;y<110;y++);
  26. }

  27. void write_com(uchar com)//寫指令函數
  28. {
  29. rs=0;//選擇寫命令模式

  30. P0=com;//將要寫的命令字送到數據總線上
  31. delay(5);
  32. //使能端給一高脈沖,因為初始化函數中將e置零
  33. e=1;
  34. delay(5);
  35. e=0;//將使能端置0以完成高脈沖
  36. }
  37. void write_data(uchar dat)//寫數據函數
  38. {
  39. rs=1;//選擇寫數據命令模式
  40. P0=dat;
  41. delay(5);
  42. e=1;
  43. delay(5);
  44. e=0;
  45. }
  46. void init()//初始化函數
  47. {
  48. e=0;
  49. write_com(0x38);//設置8位格式 兩行
  50. write_com(0x0c);//整體顯示 關光標 不閃爍
  51. write_com(0x06); //設置輸入方式 增量不移位
  52. write_com(0x01); //清屏
  53. }
  54. void main()
  55. {
  56. init();
  57. ST=0;
  58. OE=0;
  59. ET0=1; //允許定時器計時器0中斷
  60. EA=1; //打開中斷總開關
  61. TMOD=0x12;
  62. TH0=246;
  63. TL0=226;
  64. TR0=1; //定時器0運行控制位,當軟件清0時,關閉定時器0
  65. ST=0;
  66. while(1)
  67. {
  68. write_com(0x80);
  69.    for(num=0;num<11;num++)
  70.    {
  71.       write_data(table[num]);
  72.       delay(5);
  73.     }
  74. {
  75. uchar i;
  76. if(EOC==1)
  77. {
  78. OE=1;
  79. getdata=P1;
  80. OE=0;
  81. //AD轉換:255/5=實(AD)/輸出
  82. if (getdata>127)
  83. {
  84.   write_com(0x80+0x40);
  85.   temp=(getdata-127)*10/255*100;
  86.   write_data('+');
  87.   write_data(p[temp/100]);//輸出整數位
  88.   write_data('.'); //輸出小數點
  89.   write_data(p[temp/10%10]);
  90.   write_data(p[temp%10]);
  91.   write_data('V');
  92.   write_data(table[num]);
  93. }
  94. else
  95. {
  96. write_com(0x80+0x40);
  97. temp=(127-getdata)*10/255*100+3;
  98. write_data('-');
  99. write_data(p[temp/100]);//輸出整數位
  100. write_data('.'); //輸出小數點
  101. write_data(p[temp/10%10]);
  102. write_data(p[temp%10]);
  103. write_data('V');
  104. write_data(table[num]);
  105. }
  106. ST=1;
  107. ST=0;
  108. }
  109. delay(200);
  110. }
  111. //write_com(0x01);
  112. }
  113. }
  114. Voidtime0(void) interrupt 1 using 0//定時器計數器0
  115. {
  116. CLK=~CLK;
  117. }
復制代碼
全部資料51hei下載地址:
電壓顯示.zip (70.68 KB, 下載次數: 191)



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩五月天 | 国产9 9在线 | 中文 | 亚洲一区二区免费 | 日韩在线免费播放 | 亚洲欧美成人影院 | 国产高清精品一区二区三区 | 精品视频一区二区三区 | 亚洲福利电影网 | 99在线免费观看视频 | 日韩综合在线 | av在线二区 | 久久精品国产精品青草 | 中文字幕一区二区三区不卡 | 欧美日韩不卡合集视频 | 欧洲色| 免费观看一级特黄欧美大片 | 91视频88av| 午夜视频在线观看网站 | 野狼在线社区2017入口 | 亚洲视频一区 | 五月婷婷丁香婷婷 | 亚洲国产在 | 国产一级免费视频 | 欧美福利一区 | 狠狠色综合久久婷婷 | 日本中文字幕在线观看 | 911精品国产 | 久久久久久久一区二区 | 一区二区三区在线看 | 99久久精品免费看国产四区 | 婷婷开心激情综合五月天 | 一区二区三区四区在线视频 | 亚洲免费视频网站 | aaa一区 | 亚洲 欧美 日韩在线 | 99色综合 | 欧美一级二级视频 | 日韩成人免费视频 | 亚洲网在线| 福利视频网站 | 免费视频99 |