📄 display7.c
字号:
/***************************************************
描 述:串行通讯
硬 件:BK51_KIT V2.0开发板
整 理:huzy
日 期:2008-11-13
***************************************************/
#include <reg51.h>
#include <string.h>
#define uint unsigned int //定义一下方便使用
#define uchar unsigned char
#define SMG P0
sbit K1=P2^6; //定义数码管的位控制开关
sbit K2=P2^7;
sbit key=P3^2;
uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay (uint t) ;
void display(uint ss,uint s);
#define led P1 //声明一个延时函数
void init_serialcomm(void)
{
SCON = 0x50; //SCON: 串口工作方式1,允许接收
TMOD |= 0x20; //TMOD: 定时器1的工作方式2
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //开总中断,开串口中断
TR1 = 1; // 开启定时器1
}
//串口接收中断函数
void serial () interrupt 4
{ uint s,ss;
unsigned char ch;
if(RI) //接收中断
{ RI=0;//清除接收中断标志位
ch=SBUF;
ss=ch/10;
s=ch-ss*10;
led=ch;
display(ss,s);
return ;
//读出接收到的数据
}
}
void display (uint ss,uint s) //主程序
{
while(RI==0)
{
K1=1;
K2=0;
SMG=smg[ss]; //第一个数码管显示
delay(50);
K1=0;
K2=1;
SMG=smg[s]; //第二个数码管显示
delay(50);
}
}
void delay(uint t) //延时函数
{
while(t--);
}
main()
{
init_serialcomm(); //初始化串口
while(1)
{}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -