用单片机用计数器中断实现100以内的按键计数(和网上的不一样 ) 我的板子是郭天祥的

我的数码管是锁存器控制的
我用独立按键P3^4按让数码管显示数字逐渐加1

主程序
sbit key=P3^4;
uchar m;
void main(void)
{
while(1)
{
if(key==0)
{
delay_ms(20);
num++;
if(num==100) num=0;
}
display(num);
}
}
显示子程序:
void display(uchar m)
{
uchar a1,a2;
a1=m/10;
a2=m%10;
P0=0XFE;
wei_la=1;
wei_la=0;
P0=table[a1];
duan_la=1;
duan_la=0;
delay_ms(5);
P0=0XFD;
wei_la=1;
wei_la=0;
P0=table[a2];
duan_la=1;
duan_la=0;
delay_ms(5);
}
延时子程序可随便找一个追问

是 按一下 加1
不是按住就一直加 我的程序 你看看 怎么改
还有 怎么没用中断呢?

追答

忘了用中断了
uchar num;
void main(void)
{
EX0=1;//开外部中断0
IT0=1//下降沿触发
EA=1;//开总中断
P3^2=1;
while(1)
{
display(num);
}
}
void ext0( )interrupt 0
{
EA=0;
num++;
if(num==100) num=0;
EA=1;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

proteus仿真电路图,51单片机按键计数
计数模式:LED显示计时数字,从0开始计时,直到预置最大值。预置模式:LED显示当前预置最大值,按k1,k2可对预置值+-操作,长按k1,k2大约2秒,会进入自动加减预置值。直到再次点击k1,k2,k3任意一键停止自动。k4:在计数模式下使用,每按下一次显示的数字加一(会在正常计时同时额外+1)。当计数达到...

学习单片机是用成品的开发板好还是用面包板自己安装好?
最初你只需要一个成品的开发板,它具备了很多基础的外围设备,你可以在开发板上学习单片机的很多基础东西,不必面对电路规划,电子元件焊接等问题。但开发板上集成的设备毕竟是有限的,等你学习深入到一定程度时,你仍然要面对开发板上没有的设备,比如摄像头,距离感应器,rf模块之类的,这时,你还是需要...

单片机怎么用键盘中断实现按住按键,使内部RAM中的一个数据不停加1?
如果是边沿触发呢,每次进入中断的时候把一个位变量置1,并且保存外部中断口的电平。然后我们在主程序中读取这个位变量,如果位变量为1说明已经有铵键被按下。然后开如计时,并将位变量清零。当时间达到某一个值(如:200ms)我们就让计数寄存器加1,以此类推,当时间达到另一个值时(如:400ms),...

单片机外接扬声器,利用定时\/计数器中断演唱“生日快乐”和“两 只...
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机C语言程序设计实训100例:基于8051+Proteus仿真的目录
613.26 INT0及INT1中断计数633.27 TIMER0控制单只LED闪烁663.28 TIMER0控制流水灯683.29 TIMER0控制4只LED滚动闪烁703.30 T0控制LED实现二进制计数723.31 TIMER0与TIMER1控制条形LED 733.32 10s的秒表753.33 用计数器中断实现100以内的按键计数773.34 10 000s以内的计时程序783.35 定时器控制...

谁有郭天祥老师的十天学会AVR单片机和C语言视频教程?
1、郭天祥十天学会AVR单片机视频教程 【资料目录】第一讲:开发板和软件的操作使用 1、 介绍配件。2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。3、 着重介绍一下USB接口的仿真器。第二:玻?VR单片机的概述和C语言的基础知识 1、 AVR...

单片机学习入门基础?
《电子制作》2003~2004的《手把手教你学单片机》讲座就是基于这样一种边学边练的理念展开的,从众多的读者反馈来看,效果特别好,许多读者经3~6个月的学习已能开发简单的产品了(如霓红灯广告牌控制、累加计数器等)。学习单片机要合理安排学习时间持之以恒 学习单片机可不能“三天打鱼、二天晒网” ...

用单片机对步进电机进行控制
允许RAM、定时器\/计数器、串口、中断继续工作。掉 电保护方式下,RAM内容被保存,振荡器被冻结,单 片机一切工作停止,直到下一个中断或硬件复位为止。2 步进电机驱动实现2.1简介 步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部...

...用定时器中断达到用一个独立按键控制一个LED实现三种不同频率的闪烁...
初始值为20) 3 当软件计数器减到0时,表示0.5秒时间到 这时可以判断开关状态 开关合上 可以让8个LED左移一位 开关断开 可以让8个LED右移一位 呵呵 按上诉算法 编写程序 就可以实现你的要求(指导可以见百度知道的消息 右上角) 满意 就选满意回答 ...

单片机按键延时,使用定时计数器消除按键延时,求操作流程
1 按键处理的操作流程:当发现有键按下时, 为了消除按键的抖动 需要软件延时5~10ms 经过延时后 再读入按键的状态 如果按键有效 则进入相应的按键处理程序 否则(按键无效)可以视为干扰。2 一般都是采用软件延时(即调用一个延时子程序 延时5ms )不要使用定时计数器来延时...

相似回答