设计要求
使用单片机外部中断实现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;
sbit key2 =