蓝桥杯单片机刷题——串口控制指示灯与数码管显示

设计要求

通过串口发送字符控制数码管的显示,

串口接收字符'A',数码管显示'A',且LED1指示灯亮;

串口接收字符'S',数码管显示'S',且LED3指示灯亮;

接收其它非法字符时,数码管显示'E'。

数码管显示格式如下:

备注

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

串口通信波特率:9600bps。

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

上电时数码管处于熄灭状态。

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

代码

sys.h

cpp 复制代码
#ifndef __SYS_H__
#define __SYS_H__

#include <STC15F2K60S2.H>
void init74hc138(unsigned char n);
void init();
void seg(unsigned char num);
void led_show(unsigned char n);

#endif

main.c

cpp 复制代码
#include "sys.h"
unsigned char str;
bit flag=0;
void UartInit(void)		//9600bps@12.000MHz
{
	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 main(){
	init();
	UartInit();
	while(1){
		if(flag){
			if(str=='A'){
				seg(0);
				led_show(0);
			}else if(str=='S'){
				seg(1);
				led_show(1);
			}else{
				seg(2);
				init();
			}
		}
		flag=0;
	}
}
void uart() interrupt 4
{
	if(RI){
		RI=0;
		str=SBUF;
		flag=1;
	}
}

sys.c

cpp 复制代码
#include "sys.h"

void init74hc138(unsigned char n){
	P2=(P2&0x1f)|(n<<5);
	P2&=0x1f;
}
void init(){
	P0=0x00;
	init74hc138(5);
	P0=0xff;
	init74hc138(4);
}
void led(unsigned char n){
	P0=0x01<<n-1;
	P0=~P0;
	init74hc138(4);
	P0=0xff;
}
void led_show(unsigned char n){
	switch(n){
		case 0:led(1);break;
		case 1:led(3);break;
	}
}

seg.c

cpp 复制代码
#include "sys.h"
//本题只需要一段数码管
code unsigned char Seg_Table[]={
	0x88,//A 0
	0x92,//S 1
	0x86,//E 2
	0xff //熄灭 3
};
void seg(unsigned char num){
	P0=0xff;
	init74hc138(7);
	P0=0x80;
	init74hc138(6);
	P0=Seg_Table[num];
	init74hc138(7);
}
相关推荐
zcmodeltech32 分钟前
源网荷储一体化沙盘模型多场景控制系统设计——基于STM32与Modbus RTU的源网荷储、多能互补、冷热电三联供全场景联动方案,服务范围覆盖全国
数据库·人工智能·stm32·单片机·嵌入式硬件
恶魔泡泡糖1 小时前
stm32F103C8T6标准库DWT应用DHT11温湿度传感器数据手册说明
stm32·单片机·嵌入式硬件
单片机仿真设计1 小时前
【Proteus 仿真】基于 STM32 单片机鸡舍环境监控系统设计(仿真 + 源码)
stm32·单片机·嵌入式硬件·proteus·毕设
CoderYanger2 小时前
A.每日一题:3622. 判断整除性
java·程序人生·算法·leetcode·面试·职场和发展·蓝桥杯
李永奉2 小时前
中科蓝讯SDK开发-提示音音频文件格式转换和压缩教程
网络·单片机·嵌入式硬件·mcu·物联网
单片机仿真设计3 小时前
【Proteus 仿真】基于 STM32 单片机智能楼宇照明控制系统设计(定制仿真咨询)
stm32·单片机·嵌入式硬件·proteus·毕设
长江后浪博客15 小时前
ESP32-SOLO-1 在 ESP-IDF v5.5 下启动不断重启问题分析与解决
单片机·嵌入式硬件·嵌入式·esp32·freertos·esp-idf
单片机仿真设计16 小时前
【proteus仿真】基于 STM32 单片机智能仓库设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
星游路16 小时前
单片机·电子时钟
单片机·嵌入式硬件
AOI小白新手上路20 小时前
江科协51单片机 7-2 LCD1602显示时钟实验
单片机·嵌入式硬件·51单片机