显示部分由于硬件连接状态不明,无法提供程序,有些硬件方案要求一次发送所有的显示内容,这种可以直接参考我下面的部分。有些硬件方案可以分别更改每一位的显示内容,这样可以利用DispFlag的不同位代表不同的显示字符位置,并且在相应计数部分程序中置位,送入主程序显示,当然显示执行完毕后清零相关位是必须的。否则主程序会不断的运行,出问题了。
unsigned char DOT,SEC,MIN,HOU,DispFlag;
//T0中断服务程序
{
//计数部分
DOT++;
if (DOT == 9) {
SEC++;
DOT=0;
}
if (SEC == 59) {
MIN++;
SEC=0;
}
if (MIN == 59) {
HOU++;
MIN=0;
}
if (HOU == 100) {
DOT=0;
SEC=0;
MIN=0;
HOU=0;
}
//置位显示标志
DispFlag = 1;
}
//主程序部分
int main(void) {
//初始化端口
//启动定时器
//开中断
while (1) {
if (DispFlag) {
//显示函数
DispFlag = 0;
}
}
}