标题:
接收计算机发送数据(0-16),用数码管显示出来,超过10显示有问题 0-9显示没问题...
[打印本页]
作者:
张珂珂
时间:
2020-5-9 20:42
标题:
接收计算机发送数据(0-16),用数码管显示出来,超过10显示有问题 0-9显示没问题...
#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; //清除接收中断标志位
}
}
复制代码
作者:
wulin
时间:
2020-5-10 08:47
while(1)
{
if(RI==1) //查询接收中断请求标志
{
RI=0; //清除接收中断标志位
temp=SBUF; //SBUF是接收区
P0=duan[temp]; //temp范围0~f
}
}
作者:
张珂珂
时间:
2020-5-10 16:55
wulin 发表于 2020-5-10 08:47
while(1)
{
if(RI==1) //查询接收中断请求标志
谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1