51单片机独立按键计数

作者&投稿:辛饰 (若有异议请与网页底部的电邮联系)

单片机接独立按键为什么要接电阻,不是说p0口上拉电阻的问题,而是在p1...
P0口内为集电极开路,如果选择为用P0口作为IO口使用,就要加上拉电阻。P0、P1、P2、P3接独立式按键要电阻的原因是限流,因为IO口都有额定电流。

单片机独立键盘和矩阵键盘的对比,他们的优缺点是什么
独立按键:优点:可以直接读取,检测占用时间较少,不受其它因素影响。缺点:占用IO口资源较多,每一个按键都独占一个IO口。矩阵键盘:优点:占用IO口资源较少。缺点:必须扫描检测按键情况,程序复杂,占用时间较多。

51单片机 ,用C语言编程 通过独立按键控制蜂鸣器和静态数码管,_百度...
1.数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。code:include<reg52.h> define uchar unsigned char define uint unsigned int sbit key1 = P3^4;sbit dula = P2^6;sbit wela = P2^7;uchar code ...

单片机 按键(采用独立式按键)按下一次,让液晶第一位显示的数码加1,显 ...
程序清单如下:include < reg51.h >\/\/ 51单片机头文件 define uchar unsigned char \/\/ 宏定义,用uchar替代无符号字符型 define uint unsigned int \/\/ 宏定义,用uint 替代无符号整数型 sbit Key = P2 ^ 7;uchar Count = 0;uchar code DataChar[10] = \/\/ 定义数码管的段码 '0'~'9'、...

怎样用单片机编程:独立按键两个键控制一个数码管的加减 一个键加 一...
这个很容易嘛,你先设置一个寄存器,然后一直扫描两个按键(假设K1按下为加,K2按下为减),假设检测到K1被按下,寄存器就加1,如果检测到K2被按下,寄存器就减1;然后再调用显示函数就OK了。、

单片机 三个独立按键要实现六种功能,000,001,010,100,110,101,011.怎 ...
方法有多种,一种最贴近你题意的大概是按三种键的组合不同完成不同功能:比如ABC代表三个键分别如下:ABC=001:完成000号功能 ABC=010:完成001号功能 ABC=011:完成010号功能 ABC=100:完成011号功能 ABC=101:完成100号功能 ABC=110:完成101号功能 程序大概如下:include<reg51.h> sbit A=P1^2;...

51单片机为什么要先按独立按键才能正常工作
51(开发板)中的数码管一次只能显示一位数,属于硬件限制,不能同时显示两位。在数码管上显示多位数只能靠高频率的刷新显示,在视觉上显示多位。所以可以定义一个变量i,按键i自加,然后用循环显示,循环次数为i。根据提供的函数,表明你的板子LED是共阳极连接的,即LED阳极接到一起,每个LED阴极接IO...

51单片机汇编语言编程独立按键
四个按键,定义如下:KEY1 BIT P3.0 KEY2 BIT P3.1 KEY3 BIT P3.2 KEY4 BIT P3.3 按键处理程序:;--- READ_KEY:JB KEY1, K2 CALL DELAY JB KEY1, K2 JNB KEY1,PUSH ACC INC 75H MOV A, 75H CJNE A, #10, ZINT01 MOV 75H, #0 ZIN...

我想用五一单片机实现用独立按键控制数码管计数,我的程序如下,请问哪里...
char smg [17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d 0x07,0x7f,0x6f};从你使用的这个字形码看,1的字形码是0x06,2+4即.2位和.3两个led段亮,固使用的是共阴 阳码。再看你的输出部分 switch ( j ){ case 0:LSA=0;LSB=0;LSC=0;P0=smg[0]; break ; case 1:LSA=0;LSB...

51单片机独立按键部分编程问题
你好:程序是这么运行的:先在心中想象独立按键的结构,没按下时,P3外接上拉电阻,所以输入总是1,按键按下时,倒地,对应按键的IO输入为0.然后,先置IO为输入,没按下时读出全是1,0xff,当有按键按下时,读入为0了,所以用if(KeyPort!=0xff)来判断是否有输入,然后消抖一下,继而继续判断是否...

蛮虽18871543037问: 单片机计数器通过按键怎么设计运行? -
荔蒲县参一回答: 当检测到有按键下时才开启计数器,即有键按下时才执行51单片机中的SETB TR0/TR1命令

蛮虽18871543037问: 51单片机用计数器中断实现100以内的按键计数,汇编语言程序是怎样的,能帮忙一下么,谢谢啦... -
荔蒲县参一回答: ORG 0000H LJMP MAIN ORG 0003H LJMP EXTINT0 ORG 0030H MAIN:MOV SP,#5FH ;堆栈顶设为5FHSETB EA ;开中断SETB IT0 ;外部中断0沿触发SETB EX0 ;开外部中断0MOV 30H,#0 ;计数初值为0SJMP $ ;死循环 EXTINT0:INC 30H ;计数器加1RETI ;中断返回END

蛮虽18871543037问: 51单片机 独立按键 计算连续按下按键的次数和连续按动时间的单片机C语言程序应该怎么写?多谢! -
荔蒲县参一回答: 先根据你要显示数字的个数定义一个unsigned char型的字符数组,调用扫描键盘函数,扫描到哪个键被按下的同时将键值存进对应的数组元素中,再调用液晶显示程序显示,液晶显示程序中显示的位数可变,可以

蛮虽18871543037问: 51单片机用计数器中断实现100以内的按键计数,汇编语言程序 -
荔蒲县参一回答: 试试下列程序: ORG 0000H JMP START ORG 000BH JMP T0_INT;------------------------------ START: MOV TMOD, #06H MOV TH0, #255 MOV TL0, #255 MOV IE, #82H SETB TR0 MOV R2, #0 MOV R3, #0 MOV DPTR, #TAB;------------------------------ ...

蛮虽18871543037问: 51单片机 独立按键按下去 再放开才算按键一次 计算按键次数 程序应该怎么写? -
荔蒲县参一回答: 你好! 因为按键操作涉及寄存器配置和按键防抖,因此写了你也不一定用得上.而且你这个的逻辑比较简单,建议自己写.主要注意几个地方就可以了: 1. 按键I/O口电平的配置:要结合硬件电路确认按键是低电平触发还是高电平触发.在程序中设置正确的I/O口电平. 2. I/O口的输入输出状态的配置:I/O口作为按键输入必须是准双向模式或输入模式,这个不同单片机配置寄存器方式不同但大同小异. 3. 按键防抖:在按键按下时有时会有短暂的接触不良,因此会多次判断按键按下和断开,因此一般在按键按下或断开时增加几十毫秒的防抖处理,具体就是连续多个循环判断按键是否是一个状态,如果状态不变,再进行下一步处理.

蛮虽18871543037问: 51单片机如何用定时器中断,实现按键计数加减,两位数码管,C语言,谢谢 -
荔蒲县参一回答: 用一个单元,存放计数值,每隔1秒加一,然后进行十进制调整,之后向P2输出即可.

蛮虽18871543037问: 51单片机计数器怎么用 -
荔蒲县参一回答: 可以利用51单片机的计数器T0、T1,例如用计数器0的外部计数脉冲输入端T0计数,当计满100个脉冲数量后,触发中断.进入计数服务中断程序.

蛮虽18871543037问: 51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停? -
荔蒲县参一回答: 其实,控制秒表的启动和停止,很简单.要做秒表,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动.当按一下键,再启动,TR0=1,就开始计时了.再 按一下键,就停止,TR0=0,就不计时了.程序好写,先 定义一个按键 sbit key=P1^1; //具体是哪个 键,你自己改 主程序中,判断按键和启动/停止 if(key==0) { delay(); //具体延时时间自己定 if(key==0) { TR0=!TR0; //每按一次,取反 一次 while(key==0); } }

蛮虽18871543037问: 51单片机,以下代码哪里错了?数码管可以计数,但独立按键不好使 -
荔蒲县参一回答: deplay(); 是显示子程序吧,为什么有while(1)呢,这是不进入死循 环了吗?就一直在显示子程序中了,不回到主程序了,也就不会调用键盘程序:key(); 当然那按键就不好使了.把显示程序中的while(1) 删掉,这只能写在主程序中.

蛮虽18871543037问: 用c语言编写一个计数器(单片机为51型,数码管为共阴)要求有三个按键分别控制停止、加、减 -
荔蒲县参一回答: 一看到你说是计数器,又看到你要求有停止功能,意思是把Timer改为计数器,然后可以通过一个键停止计数对吧?如果这样的话挺简单的,51单片机的计数器io口记得好像是P3^0和P3^1,但不管怎么,首先设置TMOD,将C/T位置1,这就改为计数器了,然后可以编写函数来对一个变量进行加减;同样利用51单片机的外部中断也可以实现计数功能,打开外部中断开关,在外部中断服务函数对计数变量进行加减;最简单的,直接利用io口高低电平变化来进行计数,编写if函数,只要某个io口电平变化了,就对计数变量进行加减.如果你对这个有点陌生,那么回复我一起讨论或者我可以帮你写程序.希望我的回答能帮助到你.


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网