我想用五一单片机实现用独立按键控制数码管计数,我的程序如下,请问哪里出错了

作者&投稿:米裴 (若有异议请与网页底部的电邮联系)
急!51单片机中,用一个按键控制数码管暂停,再次按下时继续计数。下面是我写的程序,谁能帮我看看错在哪~

void T0_time()interrupt 5
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
}
这里错了,一是没编完吧,只是中断什么都没有处理呀,二是号错了,应该为1
另外,你的显示和键盘扫描都用延时,会有冲突,漏扫,漏显等会出现
void T0_time()interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
//应该还有处理程序吧
}

百度一下智凡单片机论坛吧,里面教程多,记得用搜索

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=0;LSC=0;P0=smg[1];break ;
……
}
看到了吗?问题在这儿
LSA=0;LSB=0;LSC=0;
三个位选控制公共端吧?如果你的字形码是正确的 即是共阴数码管的话,你这儿任何时刻都LSA=0;LSB=0;LSC=0;所有位选全开,那就有问题了,就是驱动能力足够的话,就会三个数码管显示同样的数,


51单片机控制步进电机正反转原理
反转的原理就是说可以把这个电流直接接反之后,那么它就开始进行反转了。

51单片机led呼吸灯代码
这位朋友你好,51单片机,如果他的呼吸灯代码,你可以参考他的使用说明书,也就是说他技术指导说明书上会有表达。

c51单片机c语言交通灯的程序
Proteus仿真原理图:程序如下:include <reg51.h> define uchar unsigned char define uint unsigned int uchar data buf[4];uchar data sec_dx=20;\/\/东西数默认 uchar data sec_nb=30;\/\/南北默认值 uchar data set_timedx=20;uchar data set_timenb=30;int n;uchar data b;\/\/定时器中断...

五一单片机控制12864液晶背光的问题。
如果单片机是带PWM的话就好办了,AT89S51当然不带,但是STC12C5A60S2就完全可以带替他,他是51系列单片机拓展型。(PWM不知道可以问我,完整程序我也有)这样可以通过PWM来控制背光亮度(相当于能让单片机输出模拟信号,而不再只有高低两种电平)编程如下(在利用光敏电阻判断是否到晚上了,主程序就自己编...

关于C51单片机实现通话
这个简单不了,呵呵,而且51的性能有点捉襟见肘:需要较大的RAM缓冲数据,需要和蓝牙通讯,还需要AD采集以及DA输出,而且这一切至少要在300us内完成一次。

80c五一单片机有两级中断优先可实现两级中断嵌套只有在执行什么中断程序...
80C5X系列单片机有两级中断优先级,可以实现两级中断嵌套。只有在执行低优先级中断程序时,才能够出现两级中断嵌套的情况。在执行高优先级中断程序时,低优先级中断将被忽略,不会发生嵌套。

51单片机:编写两个8位无符号数乘积的汇编语言
先设积为全0,然后循环8次:左移积1位;左移乘数1位,当c标志为1时,将被乘数加到积中,否则什么也不做。

51单片机定时器怎么设置时间
编个小程序,把你的时间,输入到单片机。

五一单片机开总中断的语句是
EA=1,EA=0。51单片机是对兼容英特尔8051指令系统的单片机的统称,五一单片机开总中断的语句是EA=1,EA=0。EA=1是打开总中断,EA=0是关闭总中断,51 单片机,无论使用T0,T1,INT0,INT1都需要EA=1。

五一单片机的定时器t1用作定时方式时是
由内部时钟频率定时,一个机器周期加1。根据查询个人图书馆官方网站显示,五一单片机的定时器t1用作定时方式时是,由内部时钟频率定时,一个机器周期加1。51单片机是指兼容Intel的MCS-51体系架构的一系列单片机。

乌海市13783361516: 想给51单片机写一段程序 就是用独立按键控制变量 就是按一次可以控制 -
池荔达林: 你好! 因为按键操作涉及寄存器配置和按键防抖,因此写了你也不一定用得上.而且你这个的逻辑比较简单,建议自己写.主要注意几个地方就可以了: 按键I/O口电平的配置:要结合硬件电路确认按键是低电平触发还是高电平触发.在程序中设置正确的I/O口电平. I/O口的输入输出状态的配置:I/O口作为按键输入必须是准双向模式或输入模式,这个不同单片机配置寄存器方式不同但大同小异. 按键防抖:在按键按下时有时会有短暂的接触不良,因此会多次判断按键按下和断开,因此一般在按键按下或断开时增加几十毫秒的防抖处理,具体就是连续多个循环判断按键是否是一个状态,如果状态不变,再进行下一步处理.

乌海市13783361516: 51单片机独立按键,怎么组合实现某个功能 -
池荔达林: 配合显示器选择不同的功能.如:按键启动选择功能,显示器依次显示1,2,3....表示功能,每个数字显示10秒,等待按键确认,进入下一个菜单.循环显示2次,没有接收到确认按键,自动退出此模块,返回上一层菜单.

乌海市13783361516: 在51单片机上使用独立按键实现加减功能,并在12864上显示程序 -
池荔达林: 1,你先学会使用按键,用指示灯的亮灭来表示按键的状态,比如按一次亮,再按一次灭,做到了就会用按键了.2,再单独调试12864液晶显示,直到会在上面显示字符和文字(这样的资料很多,就百度也有).3,把1和2步结合起来,并实现更多功能.

乌海市13783361516: 用51单片机怎么通过独立按键实现串口通信 比如说你按下一个键S1 在串口接收区能收到1 -
池荔达林: 用键盘检测程序检测按键按下,检测到按下就用串口向上位机发送字符“1”的ASCII码值,这样在串口调试助手里就可以看到字符“1”了

乌海市13783361516: 请问51单片机如何用一个独立按键控制程序的暂停和继续 -
池荔达林: 1.你的程序并不能实现显0~9,1357,0246,亮灯和响铃是可以. 2.用P1.1按键是可以实现暂停和继续的,并不需要中断.不是什么事都需要中断,好像离开中断就什么也不能做了? 3.你想暂停,是随时暂停,还是什么时候暂停?

乌海市13783361516: 51单片机汇编语言编程独立按键 -
池荔达林: 四个按键,定义如下:KEY1 BIT P3.0 KEY2 BIT P3.1 KEY3 BIT P3.2 KEY4 BIT P3.3按键处理程序: ;----------------------------------- READ_KEY: JB KEY1, K2CALL DELAYJB KEY1, K2JNB KEY1, $ PUSH ACCINC 75HMOV A, 75H...

乌海市13783361516: 怎么用C语言实现51单片机独立按键跳出while(1)死循环 执行其他循环 -
池荔达林: while(1)语句只能用在主程序,而且只要用一次.如果子程序也用,必须有条件判断语句,跟一个return语句返回. 再说你的三个子程序,既然用for控制了循环次数了,为什么要用while(1)呢?而且明明知道是死循环还用?三个子程序都把那个while(1)删掉就行了!

乌海市13783361516: 51单片机 使用两个独立按键k1,k2,实现按下一个蜂鸣器响,按下另一个蜂鸣器停止程序 -
池荔达林: //假设你是 按开关时为0电平 //具体IO口 自己配置 //简单的就可以这么写 如果要求消抖 我们再讨论 while(1) {if(k1==0)beep=1;if(k2==0)beep=0; }

乌海市13783361516: 51单片机 ,用C语言编程 通过独立按键控制蜂鸣器和静态数码管, -
池荔达林: 1.数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行.(用定时器设计表).code:#include<reg52.h> #define uchar unsigned char #define uint unsigned intsbit key1 = ...

乌海市13783361516: 在写51单片机程序的时候,对于用独立按键控制led.比如我按下按键1号,8个灯以1方式流动亮,问题 -
池荔达林: 解决这个问题,首先你得会检测按键,其次至少会做2种流水灯效果.基于以上基础,那么程序的架构可以这样来实现:1、定义一个全局变量,存放运行状态2、检测按键,如果key1被按下,那么运行状态为1;如果key2被按下,那么运行状态为23、死循环中,判断这个全局运行状态变量,如果为1,那么就执行流水灯程序1;如果为2,那么就执行流水灯程序2.加油!

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