C51学习笔记:基于STC89C52的数码管秒表设计

本文记录了使用STC89C52单片机设计数码管秒表的过程,包括数码管显示、独立按键控制和中断应用。通过编程实现了数码管显示秒数、1/10秒和1/100秒,并能通过按键控制秒表的开始、停止和清零功能。
摘要由CSDN通过智能技术生成

昨天同学问我能不能帮他做道题,有关单片机定时器的,我大概写了一个小时把这道题完成了,写这篇博客记录练习和学习的历程。
使用的是普中科技的A2开发板。

题目

数码管秒表设计
任务1,能够操作数码管显示任意数字
任务2,在数码管的第1、2位显示秒数,第3位显示“-”,第4位显示1/10秒,第5位显示1/100秒。
任务3,按下独立按键K1后,秒表开始计时,再次按下独立按键K1后,秒表停止,按下独立按键K2后,秒表计数清零。

分析: 完成这个题目需要运用中断、独立键盘和数码管的相关知识。

我的代码

#include"reg52.h"

typedef unsigned int u16; //偷懒
typedef unsigned char u8;

u8 code smgduan[17]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//数码管显示0-9的段选的数值

int sec;  //定义秒变量
int msec; //定义毫秒变量
int count;//定义计时器溢出变量
					
sbit LSA=P2^2; //定义数码管位选的引脚
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit k1=P3^1;  //定义独立键盘的引脚
sbit k2=P3^0;

/*
名称:delay
作用:延时
*/
void delay(u16 z)  

{
   
	u16 x,y;
	for(x=z
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值