项目要求使用数码管进行时钟展示,按键可以调节时,分,秒的数值。
proteus仿真图如下:
源码如下:
头文件head.h:
#include<stdio.h>
#include<STC89C5xRC.H>
#include<intrins.h>
//定时器t0的初始值,10000是定时的时间,10000 = 10ms
#define T1MS 65536-11059200/12/10000
typedef unsigned int u16; //无符号十六位
typedef unsigned char u8; //无符号八位
extern u8 hour,minute,second,number;
void delayMs(unsigned int z);
void displaySingle_digitalTube(u8 dig,u8 num);
void displayTime(u8 hour,u8 minute,u8 second);
void timer_isr();
void initTimer();
void isButton();
主函数main.c:
#include"head.h"
u8 hour = 0; //时
u8 minute = 0;//分
u8 second = 1;//秒
u8 number = 0;//定时器的次数
void main()
{
initTimer();
//主程序,反复显示数码管上的数字
while(1)
{
displayTime(hour,minute,second);
isButton();
}
}
子程序 定时器可调时钟.c:
#include"head.h"
void delayMs(unsigned