设计要求
使用单片机外部中断实现0~99的加/减计数,并采用共阳极LED数码管将其显示出来。每按一次按钮K1(INT0)进行加计数,当加到99时,再按K1加计数无效,数据仍显示为99;每按一次按钮K2(INT1)进行减计数,当减到00时,再按K2减计数无效,数据仍显示为00。
硬件设计
| 单片机 AT89C51 | 瓷片电容 CAP 30pF | 晶振 CRYSTAL 11.0592MHZ | 电解电容 CAP-ELEC |
|---|---|---|---|
| 电阻 RES | 限流电阻排 RX8 | 数码管 7SEG-MPX2-CA-BLUE | 三极管 NPN |
| 按钮 BUTTON |
在最小系统电路的基础上加下面的元件

程序设计

/*
选用的是共阳极数码管,那么需要找到对应的共阳极数码管数字显示的十六进制
*/
#include <reg52.h>
#include "intrins.h"
#define LED P0
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
//段选
sbit CS1 = P2^0;
sbit CS2 = P2^1;
//按键
sbit key1 = P3^2

该博客详细介绍了如何使用51单片机通过外部中断实现0到99的加减计数功能,并在共阳极LED数码管上显示。内容涵盖设计要求、硬件配置以及程序编写,利用Proteus进行仿真验证。在达到99或0时,进一步的加减操作将不再改变显示数值。
最低0.47元/天 解锁文章
6792





