基于单片机的数字电压表设计_毕业设计论文 联系客服

发布时间 : 星期五 文章基于单片机的数字电压表设计_毕业设计论文更新完毕开始阅读

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; }