标题: 单片机数字万用表制作 adc0809 带仿真和源码 [打印本页]

作者: 51hei学习技术中    时间: 2017-3-7 03:05
标题: 单片机数字万用表制作 adc0809 带仿真和源码
希望对51黑电子论坛的朋友有帮助,精度还可以,能满足一般需求,AD芯片用的是便宜的adc0809,如果能用好一点的比如MAX197,精度可以更高!



单片机数字万用表仿真原理图:



数字万用表的单片机源码:
  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           //定时器0  中断服务
  51. {
  52.   CLK=~CLK;
  53. }
  54.   
  55. void t1(void) interrupt 3 using 0          //定时器1  中断服务
  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. }
复制代码



下载:
数字万用表.zip (139.9 KB, 下载次数: 141)


作者: wylx    时间: 2017-3-7 10:49
谢谢分享。功能及及过程在详细介绍下。收藏了。
作者: q872482931    时间: 2017-10-8 10:36
代码运行不能生成hex文件,是ram不够吗?
作者: 老友条至    时间: 2017-10-17 23:07
谢谢分享
作者: 15172348104    时间: 2018-1-5 15:41
怎么换测量的对象呢,仿真的时候还会一直闪
作者: zsm123    时间: 2018-1-27 20:15
不错的  我的毕设也是错不多的
作者: fjtoyota    时间: 2018-3-28 13:51
楼主,焊接电路图,元器件清单有吗,做毕设用
作者: 小狗吃大白菜    时间: 2018-3-31 16:06
下载看看!
作者: 51hdzlthpc    时间: 2018-4-19 19:45
好资料,51黑有你更精彩!!!

作者: sirius08    时间: 2018-6-15 06:29
标记了,慢慢学习
作者: 太阳黑子1    时间: 2018-6-24 21:27
太棒了,非常感谢!
作者: Arianrhod    时间: 2018-6-29 09:20
q872482931 发表于 2017-10-8 10:36
**** 作者被禁止或删除 内容自动屏蔽 ****

你仿真也报错了吗?解决了吗
作者: Arianrhod    时间: 2018-6-29 09:22
仿真的时侯出现这个错误是什么?  该如何解决?

111.jpg (36.77 KB, 下载次数: 49)

111.jpg

作者: fengL    时间: 2018-11-10 14:30
q872482931 发表于 2017-10-8 10:36
**** 作者被禁止或删除 内容自动屏蔽 ****

请问你现在做好了吗?求资料




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1