#2
张珂珂2020-05-09 20:37
|
程序代码:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void main()
{
uchar temp=0;
SCON = 0x50; //设置为工作方式1,方式1要确定波特率,设置定时器 01010000 方式一,10位异步收发器(8位数据) 第二个1是REN允许串行接收位
TMOD = 0x20; //8位重装载 00100000 0打开定时器
PCON = 0x00; //波特率不倍增
TH1 = 0xFA; //波特率4800
TL1 = 0xFA;
ES = 1; //打开通信中断
EA = 1; //打开总中断
TR1 = 1; //打开计数器
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
P2 = 0xE0; //选中数码管 打开Y7
P2=0XC0;P0=0X01;P2=0xFF;P0=0XFF; //一个数码管亮
while(1)
{
temp=SBUF; //SBUF是接收区
P0=duan[temp];
RI=0; //清除接收中断标志位
}
}
#define uchar unsigned char
#define uint unsigned int
unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void main()
{
uchar temp=0;
SCON = 0x50; //设置为工作方式1,方式1要确定波特率,设置定时器 01010000 方式一,10位异步收发器(8位数据) 第二个1是REN允许串行接收位
TMOD = 0x20; //8位重装载 00100000 0打开定时器
PCON = 0x00; //波特率不倍增
TH1 = 0xFA; //波特率4800
TL1 = 0xFA;
ES = 1; //打开通信中断
EA = 1; //打开总中断
TR1 = 1; //打开计数器
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
P2 = 0xE0; //选中数码管 打开Y7
P2=0XC0;P0=0X01;P2=0xFF;P0=0XFF; //一个数码管亮
while(1)
{
temp=SBUF; //SBUF是接收区
P0=duan[temp];
RI=0; //清除接收中断标志位
}
}