发布时间 : 星期五 文章基于单片机的数字电压表设计_毕业设计论文更新完毕开始阅读
6.总电路图
八.系统软件的设计 1.程序设计
#include
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7}; unsigned
char
code
dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,0,0,0}; unsigned char dispcount; unsigned char getdata; unsigned int temp; long int i,j; unsigned int R1;
sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; sbit D=P2^4; sbit E=P2^5; sbit F=P2^6;
void dellay(unsigned int h) {
while(h--); //0.01MS }
void main(void) { ST=0; OE=0; ET0=1; ET1=1; EA=1; TMOD=0x12; TH0=216; TL0=216;
TH1=(65536-5000)/256; TL1=(65536-5000)%6; TR1=1; TR0=1; ST=1; ST=0;
while(1) {
if(EOC==1) { OE=1; getdata=P0; OE=0;
i=getdata*196;
dispbuf[0]=i/10000; i=i000; dispbuf[1]=i/1000; i=i00;
dispbuf[2]=i/100;
i=i0;
dispbuf[3]=i/10;
ST=1; ST=0; } } }
void t0(void) interrupt 1 using 0 //{
CLK=~CLK; }
void t1(void) interrupt 3 using 0 //{
TH1=(65536-6000)/256; TL1=(65536-6000)%6; P2=0xff;
定时器0 中断服务定时器1 中断服务
P1=0; dellay(80);
P1=dispcode[dispbuf[dispcount]]; P2=dispbitcode[dispcount]; if(D==1&&E==1&&F==1) {
while(1)
{
P2=dispbitcode[dispcount]; P1=0x3f;
dispcount++; if(dispcount==4)
dispcount=0; if(D==0||E==0||F==0)
break;
}
}
if(D==0&&E==1&&F==1&&dispcount==0) {
P1=P1 | 0x80; }
if(D==1&&E==0&&F==1&&dispcount==1) {
P1=P1 | 0x80; }
if(D==1&&E==1&&F==0&&dispcount==2) {
P1=P1 | 0x80; }