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

標題: 0-50v電壓表設計 精度0.01,過壓警報~程序、原理圖、仿真 [打印本頁]

作者: liu791055589    時間: 2017-1-29 03:34
標題: 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. }

復制代碼


作者: liu791055589    時間: 2017-1-29 03:39
自己沙發自己坐~
作者: wanyiping    時間: 2017-2-3 23:21
資料不錯,謝謝分享!!!!!!!
作者: zqy181818    時間: 2017-3-20 12:59
好資料!感謝你的分享
作者: 越快樂越墮落    時間: 2017-5-5 00:17
請問數碼管是共陰還是共陽?
作者: 越快樂越墮落    時間: 2017-5-5 14:09
如何用ADC0832替換ADC0808
作者: 12345678..    時間: 2018-12-6 22:36
感謝分享,學習




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一级做a | 亚洲精品乱码久久久久久蜜桃91 | 999久久精品| 成年人免费看的视频 | 7777在线视频免费播放 | 国产精品久久久一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 天天玩天天操天天干 | 午夜精品在线 | 国产精品国产亚洲精品看不卡15 | 日本福利视频 | 亚洲一区二区三区高清 | 国产欧美精品一区二区色综合 | 日韩视频1| 黄色免费av| 超碰人人做| av大片在线观看 | 91一区二区三区 | 欧美阿v| 国产精品国产三级国产aⅴ浪潮 | 99免费在线观看 | 国产精品久久久久久久久久久久久久 | 国产福利资源 | 伊人青青久久 | 国产精品视频在线播放 | 国产精品久久久久久婷婷天堂 | 91精品久久久久久久久 | 超碰成人在线观看 | 久精品久久 | 亚洲精品一区二 | 国产自产21区 | 国产一区二区影院 | 亚洲一区二区三区视频在线 | 日韩午夜一区二区三区 | 一区免费观看 | 亚洲福利在线观看 | 精久久久| aaaa一级毛片 | 日韩专区中文字幕 | 黄色毛片免费看 | 一级黄大片 |