为了先说明数码管的工作原理,本任务只用一个7段数码管,用P0端口控制数码管发光二极管的亮灭。图5-2 一位数码管控制Keil仿真程序进入死循环后P0端口的值为“11111001B”,对应数码管的b,c位为0。......
2023-11-17
1.任务要求
用独立式按键输入不同键值,在程序中定义一个变量“keynum”,并给其赋值100,数码管实时显示“keynum”的值。当按下K1或K3键时,“keynum”的值减1,当按下K2或K4键时,“keynum”的值加1,“keynum”的值在0~255变化。
2.任务目的
(1)学习掌握独立式键盘的工作原理及编程应用。
(2)深入学习C语言的判断语句(if、if-else、case)。
3.任务分析
常用的按键电路有两种形式,独立式按键和矩阵式按键。独立式按键比较简单。它们各自与独立的输入线相连接,如图6-1所示。
图6-1 独立式按键原理图
4条输入线接到单片机的I/O口上,当按键K1按下时,+5 V电源通过电阻R1,然后再通过按键K1最终进入GND形成一条通路,那么这条线路的全部电压都加到了R1这个电阻上,KeyIn1这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么KeyIn1和+5 V电源就应该是等电位,是一个高电平。我们就可以通过KeyIn1这个I/O口的高低电平来判断是否有按键按下。
电路中按键的原理我们清楚了,但是实际上在单片机I/O口内部也有一个上拉电阻的存在。我们的按键是接到了P1口上,P1口上电默认是准双向I/O口,电路如图6-2所示。
图6-2方框内的电路都是指单片机内部部分,方框外的就是外接的上拉电阻和按键。注意,当要读取外部按键信号时,单片机必须先给该引脚写“1”,也就是高电平,这样才能正确读取到外部按键信号,这一点项目4中有介绍,现结合这个实例再来分析一下缘由。
图6-2 准双向I/O口结构图(P1端口)
当内部输出是高电平,经过反向器变成低电平,V2不会导通,那么单片机I/O口从内部来看,由于上拉电阻R的存在,所以是一个高电平。如果外部没有按键按下将电平拉低,VCC 也是+5 V,它们之间虽然有2个电阻,但是没有压差,就不会有电流,线上所有的位置都是高电平,这个时候我们就可以正常读取到按键的状态。
当内部输出是个低电平,经过反相器变成高电平,V2导通,那么单片机的内部I/O口就是个低电平,这个时候,外部虽然也有上拉电阻的存在,但是两个电阻是并联关系,不管按键是否按下,单片机的I/O口上输入到单片机内部的状态都是低电平,我们就无法正常读取到按键的状态。(www.chuimin.cn)
这个和水流其实很类似的,内部和外部,只要有一边是低电位,那么电流就会顺流而下,由于只有上拉电阻,下边没有电阻分压,直接接到GND上,不管另外一边是高还是低,电平肯定就是低电平。
从上面的分析可以得出一个结论,这种具有上拉的准双向I/O口,如果要正常读取外部信号的状态,必须首先得保证自己内部输出的是1,如果内部输出0,则无论外部信号是1还是0,这个引脚读进来的都是0。
4.电路设计
根据任务分析和结合前面已经学过的知识,设计如下电路图,如图6-3所示。显示系统用4位LED显示器,参见任务5.2的电路图5-18。
图6-3 独立按键解码电路图
这个电路图是在任务5.2的基础上增加键盘部分设计的。
5.源程序设计
显示函数和延时函数参见任务5.2的程序清单。
6.Proteus仿真
在Proteus仿真环境下,当按下K1或K3时,显示数减少,当按下K2或K4时,显示数增大,显示初值为100,达到设计效果。当两次按下K1时效果如图6-4所示。
图6-4 任务6.1仿真效果图
有关单片机原理与应用 基于C语言的文章
为了先说明数码管的工作原理,本任务只用一个7段数码管,用P0端口控制数码管发光二极管的亮灭。图5-2 一位数码管控制Keil仿真程序进入死循环后P0端口的值为“11111001B”,对应数码管的b,c位为0。......
2023-11-17
要使LED数码管显示器显示某一字符,需要对数码管的两部分进行控制。要求在四位数码管上同时显示出“1”字符。图5-13 数码管的静态显示(二)5.2.2 动态显示动态扫描显示方式是单片机应用系统中最常用的显示方式。......
2023-11-17
如观察“4”是如何显示出来的,首先点亮数码管b、c、f、g段,对应到单片机的I/O口,将P0.1、P0.2、P0.5和P0.6端口置“0”,公共端com1~com4置“1”,实现集成4位数码管全部显示“4”。表9-1列出显示“4”数字段码对应关系。程序设计上通过循环结构实现“2”“4”“6”“8”数字的轮询显示。数码管静态显示程序流程图如图9-10所示。图9-11 数码静态显示程序编译成功界面......
2023-11-04
本实验机的数码管显示器是以两片74HC164组成两管静态共阳显示器。因而显示亮度好,显示稳定,无闪烁。⑧跳出for循环,执行下一个语句,结果为显示35。跟踪运行证明,变量byte、din移位正确,能准确地在数码管移位输出字形码0x92。结束后,在实验机上应显示“35”。程序点评本例只是将变量a进行/10和%10运算,得到低位和高位数,进行取字形码并送send()显示。......
2023-11-07
图8.2-1 MDI程序输入显示4)自动运行:如果CNC处于自动运行状态,选择软功能键〖程序〗,可显示图8.2-2所示的、当前执行中的加工程序,光标将指示正在执行的程序段,在此基础上,可通过选择软功能键〖下一步〗,显示下一程序段的详细信息。在FS-0iTD上,如CNC参数PRM3192.7设定为“1”,还可在该页面上显示负载表,有关内容可参见8.1.2节。在使用8.4in LCD的CNC上,程序综合显示页面需利用软功能键〖检测〗进行显示,具体见后述。......
2023-06-25
74HC573锁存器除了具有总线收发器的功能以外,还具有数据的保持功能。通过74HC573不但可以直接驱动数码管,而且还可以减少单片机I/O端口的使用,在实际工程中对外围器件的控制可以减少干扰。......
2023-11-17
1.RGB信号RGB信号线有8根,分别用于表示液晶屏一个像素点的红色、绿色、蓝色分量。常见的颜色表示会在RGB后面附带各个颜色分量值的数据位数,如RGB565表示红色、绿色、蓝色的数据线分别为5、6、5根,一共为16个数据位,可表示216种颜色。5.数据使能信号DE数据使能信号DE用于表示数据的有效性,当DE信号线为高电平时,RGB信号线表示的数据有效。......
2023-11-21
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
2023-11-07
相关推荐