蓝桥杯单片机刷题——串口发送显示

设计要求

通过串口接收字符控制数码管的显示,PC端发送字符'A',数码管显示'A',发送其它非法字符时,数码管显示'E'。

数码管显示格式如下:

备注:

单片机IRC振荡器频率设置为12MHz。

串口通信波特率:9600bps。

按键模式:BTN;扩展方式:IO模式

除字符'A'外,其它字符均为非法字符。

个人代码

cpp 复制代码
#include <STC15F2K60S2.H>
code unsigned char Seg_Table[] = 
{
0x88, //A  0
0x86, //E  1
0xff //熄灭  2
};
unsigned char Seg_Buff[]={2,2,2,2,2,2,2,2};
unsigned char flag=0,rdat='A';
void init74hc138(unsigned char n){
	P2=(P2&0x1f)|(n<<5);
	P2&=0x1f;
}
void init(){
	P0=0x00;
	init74hc138(5);
	P0=0xff;
	init74hc138(4);
}
void seg(unsigned char addr,num){
	P0=0xff;
	init74hc138(7);
	P0=0x01<<addr;
	init74hc138(6);
	P0=Seg_Table[num];
	init74hc138(7);
}
void Seg_Loop(){
	static unsigned char i=0;
	seg(i,Seg_Buff[i]);
	i++;
	if(i==8)i=0;
}
void Timer0_Init(void)		//1毫秒@12.000MHz
{
	AUXR |= 0x80;			//定时器时钟1T模式
	TMOD &= 0xF0;			//设置定时器模式
	TL0 = 0x20;				//设置定时初始值
	TH0 = 0xD1;				//设置定时初始值
	TF0 = 0;				//清除TF0标志
	TR0 = 1;				//定时器0开始计时
	ET0 = 1;				//使能定时器0中断
	EA=1;
}
void UartInit(void)		//[email protected]
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器时钟1T模式
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TL1 = 0xC7;			//设置定时初始值
	TH1 = 0xFE;			//设置定时初始值
	ET1 = 0;			//禁止定时器中断
	TR1 = 1;			//定时器1开始计时
	ES=1;
	EA=1;
}
//void uart_send_byte(unsigned char date){
//	SBUF=date;
//	while(TI==0);
//	TI=0;
//}
void main(){
	init();
	Timer0_Init();
	UartInit();
	while(1){
		if(flag){
			flag=0;
			if(rdat=='A')
				Seg_Buff[7]=0;
			else
				Seg_Buff[7]=1;
			Seg_Loop();
		}
	}
}
void Timer0_Isr(void) interrupt 1
{
	static unsigned char count=0;
	count++;
	if(count==2){
		count=0;
		flag=1;
	}
}
void uart() interrupt 4
{
	if(RI){
		RI=0;
		rdat=SBUF;
	}
}

测试结果

相关推荐
又熟了21 分钟前
WDG看门狗(独立看门狗和窗口看门狗)
c语言·stm32·单片机·嵌入式硬件
教练、我想打篮球10 小时前
04 基于 STM32 的时钟展示程序
stm32·单片机·嵌入式硬件
芯岭技术11 小时前
普冉MS32C001单片机,国产32位单片机,芯片特性和功能介绍
单片机·嵌入式硬件
吸纹鸽12 小时前
蓝桥杯FPGA赛道第二次模拟题代码
fpga开发·蓝桥杯
吃货界的硬件攻城狮13 小时前
【STM32 学习笔记】ADC数模转换器
笔记·stm32·单片机·学习
wuqingshun31415915 小时前
蓝桥杯 20. 倍数问题
算法·职场和发展·蓝桥杯·深度优先
小昭dedug16 小时前
功能安全的关键——MCU锁步核技术全解析(含真实应用方案)
单片机·嵌入式硬件
BW.SU18 小时前
单片机 + 图像处理芯片 + TFT彩屏 指示灯控件
单片机·嵌入式硬件·人机交互·控件·触摸屏设计·指示灯·液晶屏
吃个早饭18 小时前
第十六届蓝桥杯大赛软件赛C/C++大学B组部分题解
c语言·c++·蓝桥杯
KingQian201818 小时前
单片机嵌入式滤波算法库
单片机·嵌入式硬件·算法