標(biāo)題: 單片機(jī)數(shù)字萬用表制作 adc0809 帶仿真和源碼 [打印本頁]

作者: 51hei學(xué)習(xí)技術(shù)中    時(shí)間: 2017-3-7 03:05
標(biāo)題: 單片機(jī)數(shù)字萬用表制作 adc0809 帶仿真和源碼
希望對51黑電子論壇的朋友有幫助,精度還可以,能滿足一般需求,AD芯片用的是便宜的adc0809,如果能用好一點(diǎn)的比如MAX197,精度可以更高!



單片機(jī)數(shù)字萬用表仿真原理圖:



數(shù)字萬用表的單片機(jī)源碼:
  1. #include <AT89X52.H>  
  2. unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};
  3. unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};
  4. unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};
  5. unsigned char dispcount;
  6. unsigned char getdata;
  7. unsigned int temp;
  8. long int  i;
  9. unsigned int R1;

  10. sbit ST=P3^0;
  11. sbit OE=P3^1;
  12. sbit EOC=P3^2;
  13. sbit CLK=P3^3;
  14.   
  15. void main(void)
  16. {
  17.   ST=0;
  18.   OE=0;
  19.   ET0=1;
  20.   ET1=1;
  21.   EA=1;
  22.   TMOD=0x12;
  23.   TH0=216;
  24.   TL0=216;
  25.   TH1=(65536-5000)/256;
  26.   TL1=(65536-5000)%256;
  27.   TR1=1;
  28.   TR0=1;
  29.   ST=1;
  30.   ST=0;
  31.   while(1)
  32.     {
  33.       if(EOC==1)
  34.         {
  35.           OE=1;
  36.           getdata=P0;
  37.           OE=0;
  38.                     i=getdata*196;
  39.                         dispbuf[5]=i/10000;
  40.                         i=i%10000;
  41.                         dispbuf[6]=i/1000;
  42.                         i=i%1000;
  43.                         dispbuf[7]=i/100;         
  44.           ST=1;
  45.           ST=0;
  46.         }
  47.     }
  48. }
  49.   
  50. void t0(void) interrupt 1 using 0           //定時(shí)器0  中斷服務(wù)
  51. {
  52.   CLK=~CLK;
  53. }
  54.   
  55. void t1(void) interrupt 3 using 0          //定時(shí)器1  中斷服務(wù)
  56. {
  57.   TH1=(65536-6000)/256;
  58.   TL1=(65536-6000)%256;
  59.   P2=0xff;
  60.   P1=dispcode[dispbuf[dispcount]];
  61.   P2=dispbitcode[dispcount];
  62.   if(dispcount==5)
  63.     {
  64.       P1=P1 | 0x80;
  65.     }
  66.   dispcount++;
  67.   if(dispcount==8)
  68.     {
  69.       dispcount=0;
  70.     }  
  71. }
復(fù)制代碼



下載:
數(shù)字萬用表.zip (139.9 KB, 下載次數(shù): 141)


作者: wylx    時(shí)間: 2017-3-7 10:49
謝謝分享。功能及及過程在詳細(xì)介紹下。收藏了。
作者: q872482931    時(shí)間: 2017-10-8 10:36
代碼運(yùn)行不能生成hex文件,是ram不夠嗎?
作者: 老友條至    時(shí)間: 2017-10-17 23:07
謝謝分享
作者: 15172348104    時(shí)間: 2018-1-5 15:41
怎么換測量的對象呢,仿真的時(shí)候還會一直閃
作者: zsm123    時(shí)間: 2018-1-27 20:15
不錯(cuò)的  我的畢設(shè)也是錯(cuò)不多的
作者: fjtoyota    時(shí)間: 2018-3-28 13:51
樓主,焊接電路圖,元器件清單有嗎,做畢設(shè)用
作者: 小狗吃大白菜    時(shí)間: 2018-3-31 16:06
下載看看!
作者: 51hdzlthpc    時(shí)間: 2018-4-19 19:45
好資料,51黑有你更精彩!!!

作者: sirius08    時(shí)間: 2018-6-15 06:29
標(biāo)記了,慢慢學(xué)習(xí)
作者: 太陽黑子1    時(shí)間: 2018-6-24 21:27
太棒了,非常感謝!
作者: Arianrhod    時(shí)間: 2018-6-29 09:20
q872482931 發(fā)表于 2017-10-8 10:36
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

你仿真也報(bào)錯(cuò)了嗎?解決了嗎
作者: Arianrhod    時(shí)間: 2018-6-29 09:22
仿真的時(shí)侯出現(xiàn)這個(gè)錯(cuò)誤是什么?  該如何解決?

111.jpg (36.77 KB, 下載次數(shù): 49)

111.jpg

作者: fengL    時(shí)間: 2018-11-10 14:30
q872482931 發(fā)表于 2017-10-8 10:36
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

請問你現(xiàn)在做好了嗎?求資料




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1