STC89C52RC单片机外部中断设计计时系统

数码管显示分钟位和秒钟位
通过独立按键实现1小时内初始时间的设定,并计时
可随时暂停并且重新设置计时时间

img

img

img

img

自己试了好久没试出来
希望有会的兄弟给个代码借鉴一下

题目并不复杂,但是不妨碍我们把题目分解,
1、硬件电路,你已全部列出,按照标准连接即可;主要是数码管显示和按键;
2、计时功能,按照单片机定时器功能编写,1小时计时,直接可以参考教材中的案例;
3、按键功能,主要公共启动,暂停,和重置,常开按键,点一下给个信号就好了,作为标志信号,计时程序根据标志信号,启动,暂停,或者重置;
4、数码管显示,直接参照标准案例编写,只需要把需要显示的数值用计时程序中的数值即可;
5、将所有部分拼接起来即可。


#include"reg52.h"
//宏定义类型
typedef unsigned char u8;
typedef unsigned int u16;
//定义管脚
sbit KEY3 = P3^2;
sbit LED0 = P2^0;
//延时函数 如果传入数据为1,大概延时10us(晶振频率为11.0592mHZ)
void delay_10us(u16 ten_us)
{
    while(ten_us--);
}
//外部中断0配置
void exti0_init()
{
    IT0 = 1;//跳变沿触发方式(下降沿)
    EX0 = 1;//打开INT0的中断允许
    EA = 1;//打开总中断
}
 
//主函数
void main()
 {
     exti0_init();
     
    while(1)
    {
    
    }
 }
//外部中断0中断函数
void exit0() interrupt 0
{
    delay_10us(1000);
    if(KEY3==0)
    {
        LED0 = !LED0;
    }
}

【程序为STC89C52RC单片机的,外部中断0接P3.2管脚,外部中断1接P3.3管脚】
【一个外部中断0的例子,独立按键K3控制一个LED的亮灭】
【仅供参考】