独立键盘操作数码管(C源码)

这个C源码适用于Protues 7.5,使用了74HC573锁存器和四个独立按键,可在数码管的后两位显示00-59之间的数字。程序包括按键扫描、显示功能,支持手动加减计数和自动定时器计数。通过延时函数和中断处理来实现定时更新。
摘要由CSDN通过智能技术生成

此源码在protues 7.5下测试通过。源码最下面是连线图。使用了两个74HC573锁存器,4个独立按键。

 

/*/****************************************/*/

 

 

 

#include <reg51.h>

unsigned char code show_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //数码管编码

 

sbit num_add=P1^0;  // 加1功能

sbit num_dec=P1^1; //减1功能

sbit num_clear=P1^2;//清零功能

sbit num_auto=P1^3; //自动计数功能

 

sbit contrl_place=P2^1; //位选 

sbit contrl_segment=P2^0;//段选

unsigned char show_one_digit=0; //个位

unsigned char show_ten_place=0; // 十位

unsigned char loop_ms=0;//毫秒用循环变量

unsigned char nums=0; //显示用变量 

 

void delayms(unsigned int xms); //延时

void scan_key(); //键盘扫描

void display(unsigned char show_num);//显示

 

/*程序说明:用数码管的后两位循环显示数值,变化范围为00-59,上电显示为00。每按一次“加”按键,数值加1;

每按一次“减”按键,数值减1;按一次“清零”键,数码管显示为00;按一次自动计数键,将利用定时器零,

进行每一秒自动加1显示,再按一次,停止自动加1,保持原数显示。

*/

void main()

{

TMOD=0x01; //定义定时器

TH0=(65536-45872)/256; //初值50ms

TL0=(65536-45872)%2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值