c51单片机按键控制数码管循环加1、减1电路设计

作者&投稿:祁松 (若有异议请与网页底部的电邮联系)
~ 设计程序之前,要先确定电路。
我的百度空间,有这样的电路和程序,可供参考。


51 单片机编程-按键按下时间控制LED
其实是很简单的程序:当按键按下直接启动定时器TRx=1,当松开时关闭定时器TRx=0,然后判断定时时长,写一个if()语句来判断时长,当在9~10秒之间,点亮LED1,else点亮LED2。最好根据思路自己写程序,别人给的东西自己理解不会那么深刻,也无法进步,想成为高手不是靠别人就能成的。希望我的回答能...

51单片机,中断服务程序中,能不能通过按键控制中断的内容?
51单片机,中断服务程序中,原则上可以通过按键控制中断的内容,但这么做有点弄巧成拙,偷梁换柱,没实际意义。就你的中断程序,是定时器中断,却在中断程序用按键计数,那定时中断完全失去意义。把按键计数这段程序放在主程序中,别浪费定时器中断。不能为了故意用中断却又不用中断,实在不理解你的本意...

51单片机怎样用键盘控制输出频率和占空比可调的方波
如果占空比可以控制、调整,就不能称之为方波,就是矩形波形,属于PWM波形。用两个变量控制PWM的参数,一个控制周期长度,一个控制脉冲宽度。用两个按键控制“周期长度”变量的+、-;用两个按键控制“脉冲宽度”变量的+、-;即可。

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
include<reg51.h> sbit k1=P1^0;define uint16 unsigned int define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if...

51单片机按键控制流水灯和数码管(最好用外部中断)?
51单片机按键控制流水灯和数码管,P1口接8个LED灯,P0口接一个共阳数码管,P3.2和P3.3各接一个按键,分别用外部中断0和中断1。早蜂鸣器接在P2.7上。仿真图如下。

51单片机一键控制一个LED,每按一下按键LED闪烁一种频率,共闪烁三种频 ...
include<reg51.h> unsigned char n = 0;sbit key = P3^4;sbit led = P1^0;void delay(){ unsigned int i, j;for(i = 0; i < 100; i++) for(j = 0; j < 500; j++);} void readkey(void){ unsigned char i, j;if(!key) { for(i = 0; i < 10; i++)fo...

51单片机,怎么用矩阵键盘中的两个按键控制外部中断0和1,在按按键的时...
让 P3.7 始终为 0,然后就是按 S12 触发外部中断 0,按 S16 触发外部中断 1。

51单片机怎么用三个按键控制分别为时钟,秒表,倒计时
假如三个按键分别为k1,k2,k3。用k1选择3个功能,按一下切换一个功能。在时钟状态下,用k2选择调节位,用于调时,分别选小时的十位,个位,分的十位,个位,开始计时这5个状态。k3调节位加一,只能按加一调节了。在秒表状态下,k2为计时和停止切换。k3为清0。在倒计时状态下,k2和k3作用与...

51单片机怎么用按键控制一个数码管,按一下显示一
\/*---名称:单个共阳数码管动态显示变化数字内容:通过循环检测P1口按键输入值,然后用数码管输出,没有按键按下时原值不变---*\/#include\/\/包

利用51单片机的9个+I+\/+O+口直接控制键盘时,最多可控制()个按键?
最多可以控制20个按键,你可以组成一个4x5的按键矩阵。通过io口来判断按键的信息。

卢氏县15829494341: 如下一段代码,在51单片机上想要实现按键按一次,单个数码管自加一,从1开始加,加到8,再回到1. -
韶强维宏: 好久没搞过单片机,不过我估计是因为按键没有消抖.按一次被识别成很多次.还有估计就是你中断里面后来都是跑的else{} 所以没反应.检查一下前面的判断是不是有问题.

卢氏县15829494341: 请问C51怎么实现通过定义一个按键,每按一次按键,数码管的值增加1,求C程序参考下!谢啦! -
韶强维宏: 可以将按键接在一个IO引脚上,按键的另一端要接地或者接高电平.用一个if语句判断引脚的电平,比如P3_0通过一个按键接到地.程序可以如下: if(P3_0==0) //检测到按键按下 { delay(); //加一个延时函数,是为了消除按键抖动 例如for(i=0;i<1000;i++);if(P3_0==0) //按键确实按下 { while(!P3_0); //等待按键弹起delay(); } shuzhi++; //这个是数码管显示值变量 }

卢氏县15829494341: c51单片机按键加1,保持 -
韶强维宏: if(key==1) //根据你按键连接方式 { delay() //消抖 if(key==1) { delay() //等待按键释放 num++; if(num==10) num=0; //把NUM的值送出去显示就可以了 } }

卢氏县15829494341: 一位数码管连在51单片机上,按键后数码管加1,按一下加1.怎样用汇编语言编写? -
韶强维宏: 一、图貌似有点问题: 1、用的是共阴极数码管,如果用单片机直接驱动的话,应该用共阳极的; 2、所有LED(包括数码管)都未接限流电阻,建议串接470欧左右的; 3、单片机直接驱动“sounder”,估计驱动电流不够,建议接三极管后再...

卢氏县15829494341: 就是按钮按一下,数码管从0开始加1,加到9,用c语言单片机编写并且要用计数器的方法编写. -
韶强维宏: #include<reg52.h> #define uchar unsigned char sbit P32=P3^2; uchar num[10]={0xc0,0x5b}; /* 具体值记不得了,可以百度,就是0-9,这里就写了俩还不一定是对的,就那意思 */void delay50us(void) {uchar i,j; for(i=0;i<100;i++){for(j=0;j<19;...

卢氏县15829494341: 51单片机里用一个按键让一个两位数加一并显示在两个数码管上,但是在按着按键不放时第一个数码管总是会 -
韶强维宏: 你的数码管显示应该是扫描方式,所以按键按下时,单片机不能直行显示扫描了,只会亮一个.你可以在定时器中显示数码管.

卢氏县15829494341: 51单片机用键盘控制数码管的增加. -
韶强维宏: 要加到几百几千的,就要用几位数码管了,显示到百位,要有3位数码管,显示到千位,要有4位数码管.计数时,用一个变量,就正常计数呗,按一次键变量加1,关键是分别取出个十百千位,分别送到每一位数码管显示就行了,很简单的吗.

卢氏县15829494341: 怎么用单片计C语言编出两个按键控制一位数码管,一个按健控制0至9就是按一下加1.另一个按键控制归零,... -
韶强维宏: 很简单啊.按键中断控制标志位加一或清零就行了.

卢氏县15829494341: 用51单片机做一个键盘,按一下数码管加1,可是无论我怎么消抖动,总是有多次响应!望高手帮我解决啊! -
韶强维宏: 你可以在去抖程序里加入检测松手程序例如 …… …… if(!key) //检测键盘是否按下 delay()://去抖延时一般是50ms if(!key)//再次检测键盘是否按下 ***++: //这里写数码管加"1"程序 while(key);//加入写句,目的是等待key变为原来的状态才会执行下一条指令!希望可以帮到你!

卢氏县15829494341: 用单片机设计按一下按钮出一次脉冲,八段数码管加一 要C语言的... 哪位大侠可以帮帮小弟 -
韶强维宏: 是每按一次让数码管加一,到50后从1在开始循环加吗?这个用不上中断.中断分为外部中断和内部中断.

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