前言:
目前看官们对“c语言电子钟”大概比较关切,大家都需要剖析一些“c语言电子钟”的相关资讯。那么小编同时在网摘上汇集了一些有关“c语言电子钟””的相关资讯,希望姐妹们能喜欢,我们一起来学习一下吧!单片机入门-C51语言采用定时器中断方法设计LCD电子钟视频教程如下:
视频加载中...
本文采用定时器中断的方法先产生50毫秒的信号,计数20次得到1秒的时钟信号,作为电子钟设计的基础。
采用中断法的定时器/计数器的运用总结如下:
1。计算计数初值:
计数值=定时的时间/机器周期 50ms/1us=50000
初值X=最大计数值M-计数值; 65536-50000=15536 (0x3cb0)
2.TMOD寄存器的设置:
GATE C/T M1 M0 GATE C/T M1 M0
0 0 0 0 0 0 0 1 (0x01)
3.TCON寄存器的设置:
主要关注TR1/TR0 TR0=1
4.打开中断(含定时器中断和总中断)
5。中断服务函数的编程
代码如下:
#include "lcd12864.h"
unsigned char count=0;
unsigned char hour=15,minute=59,second=34;
unsigned char CLOCK[]="15:59:34";
void timer0() interrupt 1
{
TH0=0x3c;//T0 15536-->65536 =50ms
TL0=0xb0;
count++;
if(count==1)//1S
{
count=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
void main()
{
TMOD=0x01;
TH0=0x3c;//T0 15536-->65536 =50ms
TL0=0xb0;
ET0=1;//T0
EA=1;
TR0=1;//启动定时器
lcd_init(); //液晶初始化
lcd_clr();
while(1)
{
CLOCK[0]=hour/10+0x30;
CLOCK[1]=hour%10+0x30;
CLOCK[3]=minute/10+0x30;
CLOCK[4]=minute%10+0x30;
CLOCK[6]=second/10+0x30;
CLOCK[7]=second%10+0x30;
printchars(0,0,CLOCK,0);
}
}
标签: #c语言电子钟