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