stm32用一个按键控制两位数码管从00-99,代码怎么写

供稿:hz-xin.com     日期:2025-01-15
/按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)

**************************************************************//

按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//

#include<reg52.h>

sbit P0_0=P0^0; //个位数字

sbit P0_1=P0^1; //十位数字

void delay(int k); //Tab为数码管显示值,存入一个数组内

void key_ccan(void); //声明按键扫描函数

unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}unsigned char i,shi,ge,num,count=10; //num为被显示的数字

void main()

{

P2=Tab[0];P0_0=0;P0_1=0;//显示00

num=0; //被显示的数置0

while(1)

{

key_ccan(); //调用按键扫描程序

for(i=0;i<count;i++) //显示个位、十位count次后显示的数加1

shi=num/10; //取出十位数

ge=num%10; //取出个位数

P0_0=1;P0_1=1; //关闭显示

P2=Tab[shi]; //P2口送出十位数据显示代码

P0_0=0; //打开十位显示

delay(10); //延时

P0_0=1; //关闭显示

P2=Tab[ge]; //P2口送出个位数据显示代码

P0_1=0; //打开个位显示

delay(10); //延时

P0_1=1; //关闭个位显示

}

}

void key_ccan(void)

{

unsigned char ii;

P1=0xff;

ii=P1;

if(ii!=0xff)

{

P1=0xff;

delay(50);

ii=P1;

if(ii!=0xff)

{

switch(ii)

{

case 0xfe: num++;if(num==100) num=0; break;

case 0xfd: if(num==0) num=99;else num--;break;

default: break;

}

}

}

}

void delay(int k) //最简单的C延时程序

{ unsigned char i;

while(k--) //直至K减为0则跳出

{for(i=100;i>0;i--);}

}


5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
单片机_两个数码管显示00~99
/按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)

**************************************************************//

按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//

#include<reg52.h>

sbit P0_0=P0^0; //个位数字

tm1650通过什么方式控制亮度
TM1650真是一款性价比很高的芯片,一个芯片就能够驱动4位8段数码管以及按键扫描。经过和STM32F030芯片的实验,达到了所有预期的效果。和以往的74HC595芯片对比,节省芯片一片,以往需要两片595芯片才能驱动4位数码管,闪烁控制,亮度控制完全通过TM1650控制,不需额外编程,方便许多。但是有一些注意点:TM1...

为什么tm1637没有大的数码管
是因为TM1637不算iic通信,是自定义的2线通讯,TM1637是天微电子的一款带按键扫描的8段、6位数码管驱动芯片,使用STM32F103C8T6驱动四位数码管,就没有大的数码管。

单片机流水灯由两边向中间流再由中间向两边流的汇编语言怎么写?_百度...
P0=DSY_CODE[dis_bit[i]]; \/\/第i个数码管的段码控制字 DelayMS(5); \/\/延时5毫秒。} } void disp_mode(uchar mode_1) \/\/这个函数控制三个LED灯 { switch(mode_1){ case 0: \/\/模式0,全灭 LED_H=1;LED_M=1;LED_S=1;TR0 = 1;break;case 1: \/\/模式1,LED_S...

从零开始打造基于MicroPython的电子时钟(3)
FD650B建议使用5V供电,合宙的esp32-c3开发板有提供两个5V引脚,与USB接口VBUS相连,可以直接使用。正常供电后,FD650B上的红色电源指示灯将点亮。选择GPIO5连接CLK,GPIO4连接DAT。现在,可以测试驱动是否正常工作。在WebREPL或REPL提示符后执行相关命令。至此,所有准备工作已经完成。下一篇文章将介绍如何实...

海能达HYT TM-600其他功能
当车载台接收HDC2400TM或HDC1200信号后,能显示对方的ID或别名。软件支持最多128(TM-610)或8(TM-600)个选呼列表。内置调制解调器 内置MSK高速调制解调器,提供1200bps\/2400bps两种通讯速率。此功能支持实现数传等多样化通信。紧急报警 用户在紧急情况下,可通过启动此功能向控制中心或预定人员发送求救...

层显如何设置地址范围
1. 打开显卡控制面板:通常情况下,您可以通过鼠标右键单击桌面空白处,然后选择“显示设置”或“显卡控制面板”等选项打开相应的设置窗口。2. 进入显存设置:在显卡控制面板中,您需要找到相关的显存或显存管理选项。不同的显卡品牌和型号可能会有所不同,您可以在选项列表或菜单中查找。3. 设置地址范围...

单片机控制继电器定时开关的程序流程
LED数码管显示采用动态扫描方式,即在某一时刻,只有一个数码管被点亮。数码管的位选信号由单片机U1的P3.3~P3.5输出,经U3(74HC138)译码后通过Q1~Q6放大,驱动相应的数码管。R17~R24为限流电阻。 由于U2只能输出7段笔段码,而数码管除了七段笔段外,还要控制点亮小数点,因此,小数点必须有另外的驱动电路来完成,在...

志高空调一调温度(制冷)滴滴响什么故障,温度也调不下去,原因是(我在...
故障内容 数码管显示状态 室内盘管传感器故障 E3 室内温度传感器故障 E2 室外机组异常 E4 室内风机故障 E5 化霜DF 四、志高18NV\/24NV空调(5100-6600W):包括:17款、34、36、37款故障内容运行灯LED1 说明 室温传感器 闪亮2次\/4秒 关机时显示 盘管传感器 闪亮3次\/5秒 关机时显示 室外机异常 闪亮4次\/6秒 ...

推荐一个比较实用的流程设计、仿真软件
【关键词】PLC(可编程序控制器) 梯形图 指令 顺序功能图 交通灯 PLC控制 可编程序控制器 设计 可编程控制器 工业自动化【分类号】TM571.61 TU857【文摘】可编程序控制器在工业自动化中的地位极为重要,广泛的应用于各个行业。随着科技的发展,可编程控制器的功能日苴完善,加上小型化、价格低、可靠性高,在现代...