用1602液晶显示秒表功能 c语言编写程序 单片机 加注释,1602LCD液晶显示秒表
时间: 2024-03-20 19:44:00 浏览: 122
单片机LCD 1602液晶秒表程序(汇编)
好的,下面是用C语言编写的单片机1602液晶显示秒表功能的程序,加上了注释,希望对你有帮助:
```c
#include <reg52.h> //包含STC89C52RC单片机的头文件
#define uchar unsigned char //定义无符号字符类型
#define uint unsigned int //定义无符号整数类型
sbit RS=P2^0; //定义RS引脚
sbit RW=P2^1; //定义RW引脚
sbit EN=P2^2; //定义EN引脚
uchar code table[]="0123456789"; //定义数字显示表
uchar second=0; //记录秒数
uchar minute=0; //记录分钟数
uchar hour=0; //记录小时数
//延时函数
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//写指令
void write_com(uchar com)
{
RS=0; //RS为0表示写入指令
RW=0; //RW为0表示写操作
P0=com; //将指令写入P0口
delay(5); //延时
EN=1; //EN引脚置1
delay(5); //延时
EN=0; //EN引脚置0
}
//写数据
void write_data(uchar dat)
{
RS=1; //RS为1表示写入数据
RW=0; //RW为0表示写操作
P0=dat; //将数据写入P0口
delay(5); //延时
EN=1; //EN引脚置1
delay(5); //延时
EN=0; //EN引脚置0
}
//初始化1602液晶
void init()
{
write_com(0x38); //8位数据接口,2行显示,5x7点阵字符
write_com(0x0c); //显示器开,光标不显示
write_com(0x06); //光标右移,字符不移动
write_com(0x01); //清屏
write_com(0x80); //光标移动到第一行第一列
}
//显示时间函数
void display_time()
{
uchar shi,fen,miao; //定义时分秒变量
shi=hour/10; //获取小时的十位数
write_data(table[shi]); //将十位数写入液晶显示
shi=hour%10; //获取小时的个位数
write_data(table[shi]); //将个位数写入液晶显示
write_data(':'); //写入分隔符
fen=minute/10; //获取分钟的十位数
write_data(table[fen]); //将十位数写入液晶显示
fen=minute%10; //获取分钟的个位数
write_data(table[fen]); //将个位数写入液晶显示
write_data(':'); //写入分隔符
miao=second/10; //获取秒钟的十位数
write_data(table[miao]); //将十位数写入液晶显示
miao=second%10; //获取秒钟的个位数
write_data(table[miao]); //将个位数写入液晶显示
}
//定时器0中断服务函数
void timer0() interrupt 1
{
TH0=(65536-50000)/256; //重新赋值TH0
TL0=(65536-50000)%256; //重新赋值TL0
second++; //秒数加1
if(second==60) //如果秒数等于60
{
second=0; //秒数归零
minute++; //分钟数加1
if(minute==60) //如果分钟数等于60
{
minute=0; //分钟数归零
hour++; //小时数加1
if(hour==24) //如果小时数等于24
{
hour=0; //小时数归零
}
}
}
display_time(); //显示时间
}
//主函数
void main()
{
TMOD=0x01; //定时器0,工作模式1
TH0=(65536-50000)/256; //赋初值
TL0=(65536-50000)%256; //赋初值
EA=1; //总中断开关打开
ET0=1; //定时器0中断开关打开
TR0=1; //定时器0开始计时
init(); //初始化液晶
while(1); //循环等待
}
```
这个程序实现了一个简单的秒表功能,使用了定时器0中断来控制时间的变化,然后在液晶上显示出来。注释中详细解释了各个函数的作用,希望能帮助你理解。
阅读全文