找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5677|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

89C51, ADC0808為A/D轉(zhuǎn)換芯片 微型電壓表

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
仿真圖:

以89C51單片機(jī)為基礎(chǔ),ADC0808為A/D轉(zhuǎn)換芯片,  量程為0.00-5.00V,適合測試蓄電池和干電池。

原代碼:
#include<reg51.h>
  1. #define uchar unsigned char
  2. #define uint  unsigned int
  3. uchar code led[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  4. uint volt;

  5. sbit CLK=P3^3;
  6. sbit START=P3^0;
  7. sbit EOC=P3^1;
  8. sbit OE=P3^2;

  9. void delay(uint z)         
  10. { uchar x,y;            
  11.    for(x=z;x>0;x--)   
  12.       for(y=250;y>0;y--);
  13. }         
  14. void ADC()
  15. {
  16.         START=0;
  17.         START=1;
  18.         START=0;
  19.         while(EOC==0);
  20.         OE=1;
  21.         volt=P1;
  22.         OE=0;
  23.         volt=volt*196;       
  24. }
  25. void display()
  26. {
  27.         P0=0XFF;
  28.         P2=0x01;
  29.         P0=led[volt/10000]&0x7F;
  30.         delay(2);
  31.         P0=0XFF;
  32.         P2=0x02;
  33.         P0=led[(volt/1000)%10];
  34.         delay(2);
  35.         P0=0XFF;       
  36.         P2=0x04;
  37.         P0=led[(volt/100)%10];
  38.         delay(2);
  39.         P0=0XFF;               
  40.         P2=0x08;
  41.         P0=led[(volt/10)%10];
  42.         delay(2);
  43. }
  44. void main()
  45. {
  46.         EA=1;
  47.         TMOD=0x02;
  48.         TH0=0XF6;
  49.         TL0=0XF6;
  50.         ET0=1;
  51.         TR0=1;
  52.         while(1)
  53.         {
  54.                 ADC();
  55.                 display();
  56.         }
  57. }
  58. void timer() interrupt 1
  59. {
  60.         CLK=~CLK;
  61. }








復(fù)制代碼
全部資料(壓縮包)下載:
微型電壓表.rar (16.5 KB, 下載次數(shù): 41)




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

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2016-6-7 18:18 | 只看該作者
這樣做電壓表很浪費(fèi),練習(xí)做單片機(jī)還可以。
回復(fù)

使用道具 舉報(bào)

板凳
ID:86090 發(fā)表于 2016-6-7 19:46 | 只看該作者
多謝無私奉獻(xiàn)的人。。。。。。。。。。。!
回復(fù)

使用道具 舉報(bào)

地板
ID:114158 發(fā)表于 2016-6-12 10:57 | 只看該作者
yzwzfyz 發(fā)表于 2016-6-7 18:18
這樣做電壓表很浪費(fèi),練習(xí)做單片機(jī)還可以。

如果要擴(kuò)大量程到100 V  怎么修改
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2016-6-12 19:10 | 只看該作者
由于IC的輸入對電壓有限制,所以:
1、可以加電阻分壓.
2、要有辦法通知到CPU,以區(qū)分是否輸入被分壓了,CPU在顯示時(shí),就可以決定:是否按比例擴(kuò)大顯示值。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表