单片机ADC0809 数模转换与显示实验
一、实验目的
1.掌握keilC51软件与PROTEUS软件联合仿真调试的方法;
2.掌握单片机的去抖原理及处理办法
二、实验仪器与设备
1.微机1台? 2. keilC51集成开发环境?? 3.Proteus仿真软件
三、实验内容
实验程序:
#include<reg51.h>?
#define uchar unsigned char?
#define uint unsigned int //头文件
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};?//各数字的数码管段码(共阴)?
sbit CLK=P1^3;?
sbit ST=P1^2; ?
sbit EOC=P1^1;?
sbit OE=P1^0; ?
void DelayMS(uint ms)?//延时?
{?
uchar i;?
while(ms--) for(i=0;i<120;i++);?
}?
void Display_Result(uchar d)?
{?
P2=0xf7; ?
P0=DSY_CODE[d%10];
?DelayMS(5);?
P2=0xfb; ?
P0=DSY_CODE[d%100/10];?
DelayMS(5);?
P2=0xfd;?
P0=DSY_CODE[d/100];?
DelayMS(5);?
}?
void main()?//主程序?
{?
TMOD=0x02; ?
TH0=0x14;?
TL0=0x00;?
IE=0x82;?
TR0=1;?
P1=0x3f; ?
while(1)?
{?
ST=0;ST=1;ST=0; ?
while(EOC==0);?
OE=1;?
Display_Result(P3);?
OE=0;?
}?
}?
void Timer0_INT() interrupt 1?
{?
CLK=~CLK;?
}
实验电路模拟: