单片机按键控制数码管0~9循环显示教程

单片机 按键(采用独立式按键)按下一次,让液晶第一位显示的数码加1,显示范围0~9?

程序列表如下:#include // 5 1 MicroController标头文件#defineucharunSignedChar //宏定义,使用uChar替换非字符类型的字符= p2 ^ 7 ; ucharcount = 0; edatachar [1 0] = //确定数字管段代码'0'〜'9 ',' - ',',''p'{0x3 f,0x06 ,0x5 b,0x5 b,0x4 f,0x6 6 ,0x6 6 ,0x6 d,0x7 d,0x7 d,0x7 d,0x07 ,0x7 f,0x7 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 f,0x6 d }; //延迟voiddelaynms(uintn)//使用x和y执行简单的扣除操作,使用微处理器的周期,并实现延迟{ui ntx,y; 对于(x = n; x> 0; x-)for(y = 1 1 0; y> 0; y-);} //数字管显示//显示方法是动态扫描,voiddisplay interional的视觉保留(ucharnum) / / *p指向主函数中显示的数组的第一个地址{p0 = datachar [num]; //将段代码值设置为p0 delaynms(2 ); //短延迟p0 = 0x00; //让数字管关闭,否则会导致数字重叠} voida(void){while(1 ){if(key == 0){delaynms(3 0); === 0){count+= 1 ; count =(计数> 9 )? 0:count;}临时(!key);} display;}}}

单片机 怎样用两个独立按键控制一位数码管显示,就是按下其中一个按键就加1,按下另一个按键就减1,0~9显

例如,您定义的数字如下: {延迟(5 0); if(p3 ^0 == 1 ){aa ++; if(aa> = 1 0)aa = 0;}} if(p3 ^1 == 0){delay(5 0); if(p3 ^ 1 == 0){aa ++; if(aa

c语言 怎样用两个独立按键控制一位数码管显示 就是按下其中一个按键就加1 按下另一个按键就减1 0~9显示

这种简单的实现方法是通过两个独立的密钥来控制数字管的显示。
1 ,周期显示0到9 实现时,第一个定义了两个键,一个是添加1 的负责,另一个是负责减少1 的键。
只有一个数字管,采用静态显示器。
该程序如下:#include#defineucharnsignedchartabletable [] = {0x3 f,0x06 .0x5 b,0x4 f,0x6 6 .0x6 d,0x7 d,0x07 .0x7 f}; sbitkeup = p3 ^ 0; sbitKeyDn = p3 ^ 1 ; main(){uchari; i = 0; 而(1 ){p1 = table [i]; if(keyup == 0){i ++; while(keyup == 0);} if(keydn == 0){if(i> 0)i--; 虽然(keydn == 0);} i%= 1 0;}}在该表中的数据通过P1 端口释放,并控制数字管以显示相应的数字。
当支持密钥键时,价值I增加; 为了避免钥匙台,使用键循环等待释放键。
应该注意的是,i的值范围在0到9 之间受到限制,并且圆形显示的效果由i%= 1 0获得。
这样,即使我大于9 ,它也会自动恢复0,从0到9 到达圆形显示。
此设计思想适用于需要简单的数字显示的各种应用程序方案,例如仪表,时间,等等。

单片机控制多位数码管的电子时钟程序

使用微控制器检查电子时钟到多数字数字管,并使用独立的按钮来控制它,这可以显示时间和日期,并且具有警报功能。
Keil Engineering C语言代码: /**** ****************************************************** ***** **项目名称:数字管电子时钟实现功能:数字管道视图时间和日期,时间和日期可以进行调整,并且可以设置闹钟,并且闹钟将呼叫一分钟。
**************************** out Defineucharunsignedcharuntnumwe, TT, T, Numdu, Set, Aclock, Rili; unsignedlongent小时,时间1 = 0; unsignedlontsondsecond,minuse,小时,年= 2 01 2 ,月份= 1 2 ,day = 3 1 ; uCharCodedu [] = {0x3 f,0x06 .0x5 b,0x4 f,0x6 6 .0x6 d,0x7 d,0x07 .0x7 f,0x6 f,0x7 .0x7 c,0x3 9 .0x5 e .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 C, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c, 0x7 .0x7 c ,0x7 .0x7 c。
0xfb,0xf7 .0xef,0xdf,0xbf,0x7 f}; ucharmth [1 3 ] = {0.3 1 ,2 8 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 0,3 1 ,3 0,3 1 }; //每月的相应天数ucharymth [1 3 ] = {0.2 ,9 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,1 ,1 ,2 }; ; sbitbeep = p2 ^2 ; //戒指Voyeray(Uintel); //延迟程序坟墓显示(Uintsd,Uintmm,Uinthy); // show program voidadd(); //添加voidalarmclock(); //闹钟voidinit(); //初始化intclock(); //计算时间voidCalender(); //计算日期voidmain(){p2 = 0xff; init(); 而(1 ){add(); 如果(rili == 1 )//数据日历和时间显示(日,月,年); Elsedisplay(其他,分钟,小时); AlarmClock();}} voidDisplay(Uintsd,Uintmm,uinthy){Inty0,Y1 ,Y2 ; 如果(rili == 1 ){y0 = hy/1 000,y1 = hy%1 000; y2 = hy%1 00;} for(numWe = 0; numwe8 ; numwe ++){p0 = 0xff; wela = 1 ; p0 =我们[numwe]; wela = 0; p0 = 0xff; dua = 1 ; switch(numwe){case0:p0 =(tt == 1 set == 1 )? 0x00 :( rili == 1 )? 您[Y0]:您[hy/1 0]; 休息; case1 :p0 =(tt == 1 set == 2 )? 0x00 :( rili == 1 )? 您[Y1 /1 00]:您[hy%1 0]; 休息; case2 :p0 =(rili!= 1 )? 0x4 0 :( tt == 1 set == 3 )? 0x00:您[Y2 /1 0]; 休息; CAS E3 :p0 =(tt == 1 set == 4 )? 0x00 :( rili == 1 )? 您[hy%1 0]+0x8 0:您[mm/1 0]; 休息; case4 :p0 =(tt == 1 set == 5 )? 0x00 :( rili == 1 )? 您[mm/1 0]:您[mm%1 0]; 休息; case5 :p0 =(rili!= 1 )? 0x4 0 :( tt == 1 set == 6 )? 0x00:您[mm%1 0]+0x8 0; 休息; case6 :p0 =(tt == 1 set == 7 )? 0x00:您[SD/1 0]; 休息; case7 :p0 =(tt == 1 set == 8 )? 0x00:您[SD%1 0]; 休息;} dua = 0; 延迟(5 );}} voidInit()//初始化{wela = 0; dua = 0; tmod = 0x01 ; //将小时0设置为工作模式1 .0 =(6 5 5 3 6 -5 0000)/2 5 6 ; //计时器是八位//定时5 MSTL0 =(6 5 5 3 6 -5 0000)%2 5 6 ; //小时低8 件即= 0x8 f; //打开中断TCON = 0x1 5 ; //开始小时和工作模式} intclock()//计算时间{if(t == 1 0 | t == 2 0)tt =! tt; ////////// 9 /// 9 ///// 9 如果(t == 2 0){t = 0; if(!(set!= 0aclock == 0))时间++; 如果(时间=时间=时间1 小时1 +6 0)pip = 0; elsebeep = 1 ; 日历 (); if(aclock == 0){其他=时间%6 0; 分钟=(时间%3 6 00)/6 0; 小时=时间/3 6 00; 如果(时间== 2 4 ){time = 0; 时间= 0;}}其他{其他= time1 %6 0; 分钟=(Time1 %3 6 00)/6 0; 时间= Time1 /3 6 00; 如果(时间== 2 4 ){time = 0; time = 0;}}}}}}} voica(uintel){uinti,j; 对于(i = 0; idel; i ++)for(j = 0; j1 00; j ++);} void houth0()intrupt1 //小时0中断{th0 =(6 5 5 3 6 -5 0000)/2 5 6 ; //小时为8 位//小时5 mstl0 =(6 5 5 3 6 -5 0000)%2 5 6 ; 计时器为低八++; clock();} voidSetTime()interrupt0 // it0 {if(key0 == 0){delay(2 ); (set == 2 | set == 5 )set = set+2 ; ElSet ++;} ElSet ++; 如果(set == 9 ){set = 0; t = 0;} // while(!key0);}}}}}} voidCalendar()interrupt2 / / calendar {if(key3 == 0){delays(delay(2 ); 如果(key3 == 0)rili =! rili; set = 0; aclock = 0;}} voidCalender()//计算日历{if(hour = = 8 6 4 00){day ++; if(((年%4 == 0 Year%1 00!= 0)|(年%4 00 == 0))mth [2 ] = 2 9 ; Elsemth [2 ] = 2 8 ; if(Daymth [month]){day = 1 ; 一个月++; if(月1 2 ){月= 1 ; 年++;}}}}}}} voidadd()//添加一个{intge,ge1 ,ge2 ,shi1 ,shi1 ,shi2 ,bai2 ,qian2 ; if(rili == 1 ){ge = day%1 0; ge1 = mo nth%1 0; GE2 =年%1 0; shi =天/1 0; shi1 =月/1 0; shi2 =年%1 00/1 0; bai2 =年%1 000/1 00; Qian2 = Year/1 000;}其他{ge =第二%1 0; GE1 =分钟%1 0; GE2 =时间%1 0; shi =其他/1 0; shi1 =分钟/1 0; shi2 = hour/1 0;} if(key1 == 0){delay(2 ); if(ke y1 == 0){if(rili == 1 ){if((((年%4 == 0 Year%1 00!= 0))|(年%4 00 == 0))ymth [2 ] = 1 0; Elseymth [2 ] = 9 ; switch(set){case1 :qian2 =(qian2 +1 )%1 0; 休息; case2 :bai2 =(bai2 +1 )%1 0; 休息; case3 :shi2 =(shi2 +1 )%1 0; 休息; 案例4 :GE2 =(GE2 +1 )%1 0; 传播AK; case5 :shi1 =(shi1 +1 )%2 ; 休息; case6 :ge1 =(shi1 == 1 )? (GE1 +1 )%3 :(GE1 +1 )%1 0; 休息; case7 :shi =(月== 2 )? (SHI+1 )%3 :(SHI+1 )%4 ; 休息; case8 :ge =(shi == 3 )? (ge+1 )%ymth [月] :(月== = 2 )? (GE+1 )%ymth [2 ] :( GE+1 )%1 0; 休息;}年= Qian2 *1 000+bai2 *1 00+shi2 *1 0+ge2 ; 月= SHI1 *1 0+GE1 ; day = shi*1 0+ge;} else {switch(set){case1 :shi2 =(shi2 +1 )%3 ; 休息; 案例2 :GE2 =(GE2 +1 )%4 ; 休息; case4 :shi1 =(shi1 +1 )%6 ; 休息; 案例5 :GE1 =(GE1 +1 )%1 0; 休息; CAS E7 :shi =(shi+1 )%6 ; 休息; 案例8 :GE =(GE+1 )%1 0; 休息;} second = shi*1 0+ge; 分钟= shi1 *1 0+ge1 ; 时间= shi2 *1 0 +ge2 ; if(aclock == 0)时间=时间*3 6 00+分钟*6 0+秒; elSetime1 =小时*3 6 00+minute*6 0+sect;} while(!key 1 );}}}}}}}}} voidalarmclock()//设置alarm arlard {if(key2 == 0){delays(delays(2 ); if(key2 == 0){while(!key2 ); 时钟= 1 ; rili = 0; set = 0; 而(1 ){if(rili == 1 )显示(日,月,年); Elsedisplay(其他,分钟,小时); 添加 (); if(key2 == 0){whiL e(!key2 ); 时钟= 0; set = 0; break;}}}}}}}} pin连接指令:1 PO空间连接8 是一个常见的负数字管; 分别,段锁定和管道上的位锁定; 可以选择闹钟,日期和时间。

51单片机独立式按键程序

#nclude
相关推荐
Excel技巧:轻松转换数字为中文大写
如何将数字转为中文大写?谢谢您的邀请。是Excel函数中的许多隐藏方法。本文中引入了隐藏的功能-数字设置,可以轻松地将小字母转换为中国资本数字。=数字(参数1,参数2)此函数具有两个参数:为第一个参数转换的值。第二个参数指定返回的类型。有三种类型,包括小字母中的1个汉字,2个是中国
单数码管循环显示0-9代码解析及实现方法
单数码管循环怎么显示0到9?该方法是:##incation“searsionucume[{0xfb,0xfb,0xfb,0xfb,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf0x:0x:0x:0x4f,0x66,0x66,0x66,0x660x66,0x66,0x67,0x7f,0x39,0x5e,0x39,0x5e,0x39,0x1,0x39,0x1,0x39,0x1;256;}viidt0_(6536-458777)/256;
OPPO滑盖手机型号大全及功能解析
Oppo滑盖手机大全型号近年来,OPPO已经开始了许多从设计到功能的电话模型。oppoa1612.oppoa1113.oppoa314.oppoa715.oppoa916.oppoa5317.oppoa7118.oppoa7719.popoa7719.opopopo22222.oppoa224Z24.Opporteno4lite25.opporteno3pro26.opporteno327.opporteno2z28.opporteno2f29,有些是为游戏应用程序或多媒体设计的,有些专注于拍照或长时间使
3C数码:计算机、通信与消费电子融合解析
3c数码是什么意思3C数字是指深入集成到计算机,通信和消费电子的三个领域的数字产品。以下是对其的详细说明:1计算机字段中的计算机字段,3C数字产品通常是指与计算机相关的设备和技术。例如,计算机本身是典型的数字产品。随着技术,笔记本电脑,平板电脑等的持续开发。如今,被认为是典型的3C数字
热门文章
神州数码:践行社会责任,引领IT电商发展

神州数码:践行社会责任,引领IT电商发展

神州数码控股有限公司社会责任作为一家公司,其价值之一是重返社会。自从建立数字神以来,这个概念在其企业文化中深深地影响了。在追求业务发展的同时,ChauDigital始终坚持履行其社会责任并积极实践公共福利指南。每年,他们都会做自己的工作,为那些想学习但由于捐赠建立希望小学而因贫困而不愿退学的孩子
2025-02-23
猿编程代码练习教程:入门到实战指南

猿编程代码练习教程:入门到实战指南

猿编程怎么练习编程猿编程练习代码教程作为专业的儿童编程学习软件,元编程可以正确地指导想要学习编程的孩子,帮助学生更有效地学习编程思维,并为学习路径奠定坚实的基础。许多用户不启动操作。如果您想知道如何练习编程,请查看以下教程!步骤如下:1首先,您需要输入元编程软件。登录后,用户可以单击
2025-02-24
联想触屏笔记本系列盘点

联想触屏笔记本系列盘点

联想触屏笔记本有哪些联想TouchBooks包含以下系列:1.2三个Zhaoyang系列触摸。此外,一些Saver系列笔记本模型还支持触摸屏功能。接下来,我们将详细解释该系列的特征:1LenovoXiaoxin屏幕笔记本:这一系列笔记本的特征是薄,怀孕和稳定的表演,适合使用日常办公室和娱乐。它使实用的触摸屏功能更加方便,并且可以
2025-02-20
三菱PLC编程教程:数码管9到0倒计时梯形图实现方法

三菱PLC编程教程:数码管9到0倒计时梯形图实现方法

三菱plcfx2n型怎么编梯形图把数码管上的数字从9到0,详细点,谢谢如图所示,当X0打开时,您首先给D0的初始值为9,然后使用T0来计数时序,将D0缩小为一个,因此D0从9变为0。,使用七个段解码命令SEGD,D0的值解码并发送到出口终端Y0至Y79到0。希望收养。。。。。。。
2025-02-26
电商行业前景盘点:服装、3C与新鲜食品三大热门领域

电商行业前景盘点:服装、3C与新鲜食品三大热门领域

电子商务在哪个行业前景好呢电子商务在哪个行业中具有更好的应用程序前景?1.服装行业:在电子商务平台上跟踪衣服一直处于重要位置,因为消费者可以轻松地比较不同的品牌和样式,以及零售服装的连续体验增长。2数字3C产品:电子产品快速更新,消费者倾向于在线购买以获取最新技术。因此,智能手机,计算机配
2025-02-21
全面解析:3C数码产品及其配件市场

全面解析:3C数码产品及其配件市场

3c类产品指的是什么13C产品通常包括计算机,平板电脑,手机,数码相机,电子词典,移动音频操作员和数字声音操作等设备。23C中的第一个C位于计算机上,C-C.2用于通信,第三个C表示消费电子产品。3C数码配件市场是什么意思?3C代表三种类型的电子产品:计算机,通
2025-02-21
揭秘3C数码:定义、分类及商标注册全解析

揭秘3C数码:定义、分类及商标注册全解析

3c数码指的是哪些顾名思义,3C数字涵盖了三类电子产品,包括计算机,通信和消费者的电子产品。由于其舒适,效率和智慧,该群体逐渐成为现代生活中必不可少的一部分。3C产品以其独特的魅力在日常生活的每个方面广泛使用。从计算机和平板电脑到手机,从数码相机,电视到Walkmans和电子词典,这些设备不仅丰富
2025-02-19
位、字节、字、比特:计算机存储单元的深度解析

位、字节、字、比特:计算机存储单元的深度解析

字节、字、位、比特,这四者之间的关系是什么?字节,单词,位和位之间存在关系:1位=2个字节;1位是最小的计算机存储单元,缩写为B,也称为计算机中的位(位),二进制中的0和1用于表示数据,而0或1代表。位通常是指一次可以在计算机中处理的数据大小。最小的信息和信息单位。编程语言,现代计算机中的
2025-02-23
推荐阅读

推荐 18650锂电池品牌推荐:安全耐用,选对品牌很重要

18650锂电池什么牌子质量好?1.18650锂在各种设备中的怀孕,具有良好的安全性能,经济和耐用性。2众所周知的品牌包括松下,Sanyo,LGHam和Sony,它们的质量稳定和强大的电池寿命很熟悉。3松下品牌对笔记本电脑和高端手电筒的想法以及稳定品质的灰烬中的思想怀孕。4Sanyo品牌足球孕妇以其稳定的充电和释放性

推荐 笔记本电脑设置指南:调出电脑、设置账户、连接宽带

笔记本我的电脑怎么调出来?如何打电话给我的笔记本电脑?重要的交易漏洞系统2输入个人设置后,单击左侧的“主题”选项以输入主题设置。3在字段右侧找到“桌面图标设置”,然后单击。4在桌面图标图标中检查“计算机”选项,然后单击“确定”按钮。5此时,桌面上显示“此计算机”图标。

推荐 共阴极与共阳极数码管代码表详解

共阳极与共阴极数码管的显示代码各是什么意思?作为示例:八个数字管八级数字管具有八步数字管八个步骤数字管八级数字管八个步骤数字管八级数字管具有八步数字管八步尺寸八个尺寸八个-阶数管八步管八步管八步管八步管八步管八步管八个尺寸八个尺寸管。数字管有两种类型:通常的阴极(共同的阳极连接在一起,并在较低

推荐 3C数码产品全解析:计算机、通信与消费电子全面览

3c数码产品有哪些1计算机产品:包括台式计算机,笔记本电脑,平板电脑和手持计算机。这些设备具有强大的计算功能,适用于各种场景,例如办公室,娱乐,学习等。2通信产品:涵盖手机,电话和收发器等通信工具。在现代社会中,这些产品不仅是沟通的桥梁,而且具有多种功能,例如付款,娱乐和工作。3

推荐 淘宝3C数码类目全解析:产品种类及入驻天猫指南

淘宝3C数码类目有哪些产品呢?TAOBOO3C数字包括以下类别:1手机和移动配件:包括各种手机品牌,手机,充电器和其他配件。随着技术的发展,智能手机已成为人们日常生活中必不可少的一部分。在淘宝上,消费者可以购买各种手机来满足不同的需求。手机的配件也很丰富且不同。2大多数购买相机的人都喜

推荐 iqoo手机隐私解锁方法及密码重置指南

iqoo手机隐私怎么解锁1忘记了保密地点的密码:1Originos/IQO(Monster)UI/FUNTOUCHOS3.0及以上系统设置字体字体,脸部和密码/指纹和密码键入以及应用程序加密-前盖特密码,并传递,传递密码问题安全问题,总线密码重置。2FUNTOUCHOS3.0系统:忘记您的隐私空间密码,输入密码,I-BusinessSpace-Forgot,然后通过密码安全问题重置您的密