- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用单片机AT89S51与ADC0809设计一个数字电压表-Read.PDF
用单片机用单片机 AT89S51 与与 ADC0809 设计一个数字电压表设计一个数字电压表--课程设计课程设计
用单片机用单片机 与与 设计一个数字电压表设计一个数字电压表 课程设计课程设计
1. 实验任务
利用单片机 AT89S51 与 ADC0809 设计一个数字电压表,能够测量 0-5V 之间的直流电压
值,四位数码显示,但要求使用的元器件数目最少。
2 . 电路原理图
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 . 程序设计内容
由于 ADC0809 在进行 A/D 转换时需要有 CLK 信号,而此时的 ADC0809 的 CLK 是接在
AT89S51 单片机的 P3.3 端口上,也就是要求从P3.3 输出 CLK 信号供 ADC0809 使用。因此
产生 CLK 信号的方法就得用软件来产生了;由于ADC0809 的参考电压VREF =VCC ,所以
转换之后的数据要经过数据处理 ,在数码管上显示出电压值。实际显示的电压值
(D/256*VREF)
5 . 汇编源程序
(略)
6 . C 语言源程序
#include AT89X52.H
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;
原创力文档


文档评论(0)