工业通信实验八程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*
#include"reg52.h"
#define FOSC 24000000
#define uchar unsigned char
//0 1 2 3 4 5 6 7
uchar code Displaycode[17]={0xFC,0x60,0xDA,0xF2,0x66,0xB
6,0xBE,0xE0,
//8 9 a b c d e f wu
0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00}
;
uchar DisplayBuf[8]={0,0,0,0,0,0,0,0};
uchar Disp;
long DisCount=0;
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
void delay(long t)
{
while(t--);
}
void Uinit()
{
TMOD=0x21; //定义T1为工作方式2,T0为工作方式1
SCON=0x50; //定义SM0、SM1为工作方式1,串行接收禁止
PCON=0x80; //波特率加倍
TH1=0x100-FOSC/12/16/9600; //对计数器1高8位赋值
TL1=0x100-FOSC/12/16/9600; //对计数器1低8位赋值
TH0=(0-1000)/256; //对计数器0高8位赋值
TL0=(0-1000)%256; //对计数器0低8位赋值
ET1=0; //定时计数器1中断禁止
ET0=1; //定时计数器0中断允许
TR1=1; //启动定时器1
TR0=1; //启动定时器1
EA=1; //开CPU所有中断
}
void T0_IRQ() interrupt 1 //外部中断1 {
TR0=0;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
P0=0xff;
P2=Displaycode[DisplayBuf[Disp]];
switch(Disp) //选择显示数
{
case 7:P0=0xfe;break;
case 6:P0=0xfd;break;
case 5:P0=0xfb;break;
case 4:P0=0xf7;break;
case 3:P0=0xef;break;
case 2:P0=0xdf;break;
case 1:P0=0xbf;break;
case 0:P0=0x7f;break;
}
Disp=(Disp+1)%8;
TR0=1;
}
void Display() //显示位数
{
DisplayBuf[0]=DisCount%10; //第1位显示数
DisplayBuf[1]=DisCount/10%10; //第2位显示数
DisplayBuf[2]=DisCount/100%10; //第3位显示数
DisplayBuf[3]=0XF7; //第4位显示数
DisplayBuf[4]=DisCount/10000%10; //第5位显示数
DisplayBuf[5]=DisCount/100000%10; //第6位显示数
DisplayBuf[6]=DisCount/1000000; //第7位显示数
DisCount++;
if(DisCount==8888888)
DisCount=0;
}
void main()
{
Uinit();
while(1)
{
Display();
delay(200);
if(RI)
{
ACC=SBUF;
if(P)
DisplayBuf[7]=0x0a;
else
DisplayBuf[7]=0x0b;
RI=0;
}
}
}
*/
/*
#include"reg52.h"
#define FOSC 24000000
#define uchar unsigned char
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
uchar code Displaycode[17]={0xFC,0x60,0xDA,0xF2,0x66,0xB 6,0xBE,0xE0,
0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x0 0};
uchar DisplayBuf[8]={0,0,0,0,0,0,0,0};
uchar Disp;
long DisCount=0;
void delay(long t)
{
while(t--);
}
void Uinit()
{
TMOD=0x21;
SCON=0x50;
PCON=0x80;
TH1=0x100-FOSC/12/16/9600;
TL1=0x100-FOSC/12/16/9600;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
ET1=0;
ET0=1;
TR1=1;
TR0=1;
EA=1;
}
void T0_IRQ() interrupt 1
{
TR0=0;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
P0=0xff;
P2=Displaycode[DisplayBuf[Disp]];
switch(Disp)
{
case 7:P0=0xfe;break;
case 6:P0=0xfd;break;
case 5:P0=0xfb;break;
case 4:P0=0xf7;break;
case 3:P0=0xef;break;
case 2:P0=0xdf;break;
case 1:P0=0xbf;break;
case 0:P0=0x7f;break;
}
Disp=(Disp+1)%8;
TR0=1;
}
void Display()
{
DisplayBuf[0]=DisCount%10;
DisplayBuf[1]=DisCount/10%10;
DisplayBuf[2]=DisCount/100%10;
DisplayBuf[3]=0xFC;
DisplayBuf[4]=DisCount/1000%10;
DisplayBuf[5]=DisCount/10000%10;
DisplayBuf[6]=0xFC;
DisCount++;
if(DisCount==8888888)
DisCount=0;
}
void main()
{
Uinit();
while(1)
{
Display();
delay(1/1000000);
if(RI)
{
ACC=SBUF;
if(P)
DisplayBuf[7]=0x0a;
else
DisplayBuf[7]=0x0b;
RI=0;
}
}
}
*/
#include"reg52.h"
#define FOSC 24000000
#define uchar unsigned char
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
uchar code Displaycode[17]={0xFC,0x60,0xDA,0xF2,0x66,0xB 6,0xBE,0xE0,
0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x0 0};
uchar DisplayBuf[8]={0,0,0,0,0,0,0,0};
uchar Disp;
long DisCount=0;
void delay(long t)
{
while(t--);
}
void Uinit()
{
TMOD=0x21;
SCON=0x50;
PCON=0x80;
TH1=0x100-FOSC/12/16/9600;
TL1=0x100-FOSC/12/16/9600;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
ET1=0;
ET0=1;
TR1=1;
TR0=1;
EA=1;
}
void T0_IRQ() interrupt 1
{
TR0=0;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
P0=0xff;
P2=Displaycode[DisplayBuf[Disp]];
switch(Disp)
{
case 7:P0=0xfe;break;
case 6:P0=0xfd;break;
case 5:P0=0xfb;break;
case 4:P0=0xf7;break;
case 3:P0=0xef;break;
case 2:P0=0xdf;break;
case 1:P0=0xbf;break;
case 0:P0=0x7f;break;
}
Disp=(Disp+1)%8;
TR0=1;
}
void Display()
{
DisplayBuf[0]=DisCount%10;
DisplayBuf[1]=DisCount/10%10;
DisplayBuf[2]=DisCount/100%10;
DisplayBuf[3]=0xfc;
DisplayBuf[4]=DisCount/1000%10;
DisplayBuf[5]=DisCount/10000%10;
DisplayBuf[6]=0xfc;
if(P34==1)
DisCount++;
if(P32==0)
DisCount=0;
}
void main()
{
Uinit();
while(1)
{
Display();
delay(1/1000000);
}
}。

相关文档
最新文档