电子开发 | 基础入门 | 电路原理图 | 梯形图实例 | PLC基础   《如果喜欢本站,请按 Ctrl+D 手动收藏!感谢您的支持》一起学习一起进步,电子开发王欢迎您!.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

★电路公式手册,最新版《电子电路公式计算器》,电路公式查询手册 电路公式计算器【电子从业人员必备手册】
☆十天学会单片机实例100 c语言 chm格式。资料内容详细,覆盖例子多,内容广【电子从业人员必备手册】
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 单片机 >> 正文

利用单片机AT89S51与ADC0809设计数字电压表,Voltmeter

作者:佚名    文章来源:本站原创    点击数:2098    更新时间:2016-11-15

1. 实验任务
利用(51单片机)单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
2. 电路原理图

51单片机数字电压表电路图 
 
单片机数字电压表电路图Voltmeter
 
 
3. 系统板上硬件连线
a)         把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b)        把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
c)        把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
d)        把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
e)         把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
f)         把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
g)        把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h)        把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i)          把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
4. 程序设计内容
                         i.              由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了。
                       ii.              由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值 (D/256*VREF)
5. 汇编源程序
(略)
6.C语言源程序
#include
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
                                  0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
void main(void)
{
  ST=0;
  OE=0;
  ET0=1;
  ET1=1;
  EA=1;
  TMOD=0x12;
  TH0=216;
  TL0=216;
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%256;
  TR1=1;
  TR0=1;
  ST=1;
  ST=0;
  while(1)
    {
      if(EOC==1)
        {
          OE=1;
          getdata=P0;
          OE=0;
          temp=getdata*235;
          temp=temp/128;
          i=5;
          dispbuf[0]=10;
          dispbuf[1]=10;
          dispbuf[2]=10;
          dispbuf[3]=10;
          dispbuf[4]=10;
          dispbuf[5]=0;
          dispbuf[6]=0;
          dispbuf[7]=0;
          while(temp/10)
            {  dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
ST=1;
ST=0;
}
}
}
 
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
 
void t1(void) interrupt 3 using 0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==7)
{
P1=P1 | 0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}


Tags:数字电压表,ADC0809,51单片机,电压表  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
    没有任何评论
电子开发网:汇集综合各类电子制作与电路图的网站,plc工控技术,模电数电知识,单片机EDA等等!荟萃电路图网站精华,为工程师创造价值。欢迎关注微信公众号:电子开发网!
资料包下载
 [闁告娲滄晶鏍嫉妤﹁法銈柡鍌︽嫹]闁告ぞ绀侀妵澶屸偓娑崇細缁变即宕¢弴鐘差暬闁哄牆鎼悿鍕瑹閿燂拷100 c閻犲浄鎷�
 [閺夌儐鍨▎銏㈢尵閿燂拷]濞戞挸顦宠ぐ绀烲C閻庢冻缂氱弧鍕鐠恒劍鍩傞弶鐑嗗灟濞嗩敩X-TR
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]LM324閺夆晜鍔栭弬锟�4~20mA閺夌儑鎷�1~5V闁汇垹鐏氱粊锟�
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]LM386濡炲湱绮悗顒佹媴閹捐顔婇柛蹇擃儔椤ユ捇寮ㄩ幆褋浜i柛锝冨妼鐢拷
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]936闁绘帒锕よぐ鎾偨娴e啰鐔呴柛妯煎枔閹﹪宕堕敓锟�
 [闁告娲滄晶鏍嫉妤﹁法銈柡鍌︽嫹]閻℃帒鎳庨敍鎰枖閵忥紕銈撮悹鐚存嫹+婵炴挴鏅涚€癸拷+闁硅翰鍎撮鐔兼儍閸曨偄绀�
 [闂侇偅姘ㄩ弫銈夋偨闂堟稓鎽嶉悹浣瑰礃椤撳憡娼娆愵偨]S7-200PLC闁汇劌瀚挒銏ゆ儑閻旀槒鎷ù鐙呮嫹 S7_2
 [閺夌儐鍨▎銏㈢尵閿燂拷]S7-200閹煎瓨鎸婚弸鍐╃鐠佸湱绀勯柛蹇g厜缁憋拷,STEP7
 [閺夌儐鍨▎銏㈢尵閿燂拷]ModbusPoll闁告粌顒爋dbusSalve闁稿骏鎷�
 [閺夌儐鍨▎銏㈢尵閿燂拷]STEP7婵☆垪鍓濈€氭瑩鏌岃箛鏂跨樄濞寸姰鍊曠花锟� Smart_
 [閺夌儐鍨▎銏㈢尵閿燂拷]Modbus閻犲鍟抽惁顖滃垝閸撗傜触 v1.024 缂備緤鎷�
 [閺夌儐鍨▎銏㈢尵閿燂拷]Modscan32闁告粌顒爋dsim32,modb
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]89c51闁稿繐顦遍悵娑㈠棘闁稖闆归柣顏嗗櫐缁辨獤rotues
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]濞戞挸娲ら崟楣冨储閸炴姰otues濞寸姾娉曞﹢锛勭矙鐎n亞纰嶆繝褎鍔楅悥锟�
 [闁活澀绲婚惌鐐鐠恒劍鍩傞悹浣瑰礃椤擄拷]51闁告娲滄晶鏍嫉閸濆嫬鍧婄紒瀣舵嫹 protues濞寸姾娉曞﹢锟�
最新文章
 简单三极管逆变器
 TL494制作50HZ逆变
 80W简单的功放电路
 555制作的简易电子
 850热风枪电路图原
 直流12v荧光灯电路
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询