资源简介
利用单片机设计电子时钟,编程用c语言,秒表、时钟计时器要求用液晶1602显示时、分、秒。使用按键开关可实现时分调整、秒表/时钟功能
代码片段和文件信息
/**************************
//项目名称:可调电子时钟(液晶1602显示)
//程序编写:廖
//程序状态:OK
//设计日期:2018-1-20
**************************/
#if 1
#include //单片机头文件
#include
//宏定义
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef bit BOOL ;
//位声明
sbit rs = P3^5;
sbit rw = P3^6;
sbit ep = P3^4;
sbit S1 = P3^0;
sbit S2 = P3^1;
sbit S3 = P3^2;
//定义全局变量
uint8 S1num;
uint8 secminhour;
//函数声明
void ScanKey(void);
void DelayMs(uint8 ms);
BOOL lcd_bz();
void WriteCom(uint8 cmd);
void WriteDate(uint8 dat);
void LcdInit();
void TimerInit(void);
void WritePos(uint8 xuint8 y);
void PrintString(uint8*str);
void Write_hms(uint8 adduint8 date);
//主函数
void main()
{
LcdInit(); // 初始化LCD
DelayMs(10);
TimerInit();
WritePos(03); //设定要显示的位置
PrintString(“I LOVE YOU“); //设定要显示的内容
WritePos(14); //设定要显示的位置
PrintString(“20:20:20“); //设定要显示的内容
while(1) //循环
{
ScanKey();
}
}
// 延时子程序函数
void DelayMs(uint8 ms)
{
uint8 i;
while(ms--)
{
for(i = 0; i< 250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
// 测试LCD忙碌状态
BOOL lcd_bz()
{
BOOL result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (BOOL)(P0 & 0x80);
ep = 0;
return result;
}
// 写入指令数据到LCD
void WriteCom(uint8 cmd)
{
while(lcd_bz());
rs = 0;
rw = 0;
ep = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}
//void lcd_pos(uint8 pos)
//{ //设定显示位置
// WriteCom(pos | 0x80);
//}
//写入字符显示数据到LCD
void WriteDate(uint8 dat)
{
while(lcd_bz());
rs = 1;
rw = 0;
ep = 0;
P0 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}
//LCD初始化设定
void LcdInit()
{
WriteCom(0x38);
DelayMs(1);
WriteCom(0x0c);
DelayMs(1);
WriteCom(0x06);
DelayMs(1);
WriteCom(0x01); //清除LCD的显示内容
DelayMs(1);
}
//显示位置函数
void WritePos(uint8 xuint8 y)
{
if(x == 1)
{
WriteCom(y + 0xc0);
}
else
{
WriteCom(y + 0x80);
}
}
//显示字符串函数
void PrintString(uint8*str)
- 上一篇:c语言实现的动态规划求最短路径长度
- 下一篇:编译原理课程设计——目标代码生成器
相关资源
- 51单片机测量转速
- 基于51单片机的12864液晶显示C语言源程
- 51单片机做简易计算器
- ADC0809与80C52单片机
- 基于51单片机多节点RS485通信带Protue
- at89c51单片机+矩阵键盘编写的计算器
- 基于c语言的电子琴课程设计
- 电子商务系统-超市电商系统-C++
- C语言电子书打包
- C语言教程PDF电子书pdf
- Qt5 C++ GUI Programming Cookbook 电子书和源
- 云龙51单片机视频教程,目前国内公认
- 51单片机简易秒表的设计(仿真图、程
- 复旦大学C语言程序设计电子教案
- 多本C++经典书籍绝对高清晰pdf电子书
- 51单片机超声波测距KEIL+proteus.rar
- 中科大23系微电子复试资料.zip
- c语言电子书.txt
- STC89C52单片机实用程序30个C语言10个汇
- 基于STC89C51单片机的DS18B20的温度报警
- 基于keil5和protues仿真的智能温度控制
- 郭天祥十天学会C51单片机视频教程地
- 单片机电子时钟完整版基于at89c51电子
- MCS-51单片机C语言编程100例
- 单片机原理与应用及C51程序设计 谢维
- 51单片机生成二维码(QR Code)+12864并
- C语言 51单片机4x4矩阵键盘扫描程序
- 51单片机数字时钟—源程序+仿真电
- 51单片机与液晶显示LCD1602接口、C语言
- 智能浇花系统设计说明书+51单片机+详
评论
共有 条评论