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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

0-50v電壓表設計 精度0.01,過壓警報~程序、原理圖、仿真

  [復制鏈接]
跳轉到指定樓層
樓主
三個擋,0-2,0-25,0-50,精度0.01,過壓警報~程序、原理圖、仿真。

全部資料打包下載:
畢業設計.zip (128.6 KB, 下載次數: 132)

0-50v電壓表設計的論文預覽如下:
word格式的 可以編輯



程序如下:
  1. /*-------------------------------
  2. 作者:小劉
  3. --------------------------------*/
  4. #include <AT89X52.H>  
  5. unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};  //放數碼管位選的值
  6. unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};//放數碼管顯示的數字
  7. unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};  //存放ad采集過來的值(只有最后3位有用)
  8. unsigned char dispcount;
  9. unsigned char getdata;
  10. unsigned int temp;
  11. long int  i;
  12. unsigned int R1;

  13. sbit ST=P3^0; //是否選中該芯片
  14. sbit OE=P3^1; //所存轉換的值
  15. sbit EOC=P3^2; //當EAC數據有效時,將轉換數據送出
  16. sbit CLK=P3^3; //給adc0808提供時鐘

  17. sbit D1=P2^0; //擋1
  18. sbit D2=P2^1; //擋2
  19. sbit D3=P2^2; //擋3

  20. sbit L=P3^7; //監控燈

  21. void main(void)
  22. { D1=1;
  23.   D2=1;
  24.   D3=1;

  25.   ST=0;
  26.   OE=0;
  27.   ET0=1; //啟用定時器0
  28.   ET1=1;   // 啟用定時器1
  29.   EA=1;    //開總中斷
  30.   TMOD=0x12;//設置定時器0和1的工作方式
  31.   TH0=216;
  32.   TL0=216; //設置定時器0的初值為216(為adc0808提供時鐘)
  33.   TH1=(65536-5000)/256;
  34.   TL1=(65536-5000)%256;//設置定時器1的初值為5ms
  35.   TR1=1;  //開定時器1
  36.   TR0=1;  //開定時器0
  37.   ST=1;
  38.   ST=0;
  39.   while(D1==0)    //擋1
  40.     { L=1;
  41.       if(EOC==1) //判斷裝換是否結束
  42.         {
  43.           OE=1;  
  44.           getdata=P1;  //如果結束,給OE一個跳變,讀出數據存入getdata
  45.           OE=0;
  46.                     i=getdata*196;
  47.                         if(i>=20000)
  48.                         L=0;         //256/getdata=5V/xV  >>>x=(getdata*5/256)V
  49.                         dispbuf[5]=i/10000; //將數據存入數組中以待顯示。 (個位)
  50.                         i=i%10000;
  51.                         dispbuf[6]=i/1000;        //小數點第一位
  52.                         i=i%1000;
  53.                         dispbuf[7]=i/100;   //小數點第二位  

  54.           ST=1;
  55.           ST=0;
  56.         }
  57.     }
  58.   while(D2==0)    //擋2
  59.     { L=1;
  60.       if(EOC==1) //判斷裝換是否結束
  61.         {
  62.           OE=1;  
  63.           getdata=P1;  //如果結束,給OE一個跳變,讀出數據存入getdata
  64.           OE=0;
  65.                     i=getdata*98;
  66.                         if(i>=20000)
  67.                         L=0;         //256/getdata=5V/xV  >>>x=(getdata*5/256)V
  68.                         dispbuf[4]=i/10000; //將數據存入數組中以待顯示。 (個位)
  69.                         i=i%10000;
  70.                         dispbuf[5]=i/1000; //將數據存入數組中以待顯示。 (個位)
  71.                         i=i%1000;
  72.                         dispbuf[6]=i/100;        //小數點第一位
  73.                         i=i%100;
  74.                         dispbuf[7]=i/10;   //小數點第二位  
  75.                              
  76.           ST=1;
  77.           ST=0;
  78.         }
  79.     }
  80.           while(D3==0)    //擋3
  81.     { L=1;
  82.       if(EOC==1) //判斷裝換是否結束
  83.         {
  84.           OE=1;  
  85.           getdata=P1;  //如果結束,給OE一個跳變,讀出數據存入getdata
  86.           OE=0;
  87.                     i=getdata*196;
  88.                         if(i>=49900)
  89.                         L=0;         //256/getdata=5V/xV  >>>x=(getdata*5/256)V
  90.                         dispbuf[4]=i/10000; //將數據存入數組中以待顯示。 (個位)
  91.                         i=i%10000;
  92.                         dispbuf[5]=i/1000;        //小數點第一位
  93.                         i=i%1000;
  94.                         dispbuf[6]=i/100;   //小數點第二位   
  95.                         i=i%100;
  96.                         dispbuf[7]=i/10;   //小數點第二位                            
  97.           ST=1;
  98.           ST=0;
  99.         }
  100.     }
  101. }
  102.   
  103. void t0(void) interrupt 1 using 0           //定時器0  中斷服務
  104. {
  105.   CLK=~CLK;  //給adc0808提供時鐘
  106. }
  107.   
  108. void t1(void) interrupt 3 using 0          //定時器1  中斷服務
  109. {
  110.   TH1=(65536-5050)/256;
  111.   TL1=(65536-5050)%256;
  112.   P2=0xff;
  113.   P0=dispcode[dispbuf[dispcount]];          //段選
  114.   P2=dispbitcode[dispcount];                 //位選
  115.   if(dispcount==5)         // 顯示小數點
  116.     {
  117.       P0=P0 | 0x80;
  118.     }
  119.   dispcount++;          //讓位選循環起來
  120.   if(dispcount==8)
  121.     {
  122.       dispcount=0;
  123.     }  
  124. }

復制代碼

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:162997 發表于 2017-1-29 03:39 | 只看該作者
自己沙發自己坐~
回復

使用道具 舉報

板凳
ID:154111 發表于 2017-2-3 23:21 | 只看該作者
資料不錯,謝謝分享!!!!!!!
回復

使用道具 舉報

地板
ID:130231 發表于 2017-3-20 12:59 | 只看該作者
好資料!感謝你的分享
回復

使用道具 舉報

5#
ID:99130 發表于 2017-5-5 00:17 來自手機 | 只看該作者
請問數碼管是共陰還是共陽?
回復

使用道具 舉報

6#
ID:99130 發表于 2017-5-5 14:09 | 只看該作者
如何用ADC0832替換ADC0808
回復

使用道具 舉報

7#
ID:438003 發表于 2018-12-6 22:36 來自手機 | 只看該作者
感謝分享,學習
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人一区二区三区电影 | 日韩精品一区二区三区视频播放 | 岛国午夜 | 国产精品一区二 | 亚洲一区二区三区免费观看 | 成人高清在线视频 | 国产精品视频免费看 | 日韩影院在线观看 | 一区二区国产在线 | 天堂亚洲网 | 国产在视频一区二区三区吞精 | 综合色在线 | 国产一区免费 | 国产人成精品一区二区三 | 激情91| 日韩欧美三级电影 | 欧美 日韩 亚洲91麻豆精品 | 二区成人| 中文字幕欧美一区 | 亚洲综合一区二区三区 | 久久久久久亚洲精品不卡 | 男女搞网站 | 精品国产一区一区二区三亚瑟 | 亚洲精品视频播放 | 日韩欧美一区二区三区在线播放 | 国产精品久久 | 欧美小视频在线观看 | 国产高清在线视频 | 91在线精品秘密一区二区 | 日韩精品av一区二区三区 | 99免费视频| 亚洲精品成人 | 国产精品夜间视频香蕉 | 亚洲一区二区免费视频 | 国产色婷婷 | 91麻豆精品国产91久久久久久久久 | 夜夜爽99久久国产综合精品女不卡 | 欧美视频精品 | 大吊一区二区 | 亚洲精品一区在线 | 黄色三级免费网站 |