1602显示年月日c语言程序,1602LCD显示的秒表 C语言程序
#include #define uchar unsigned char
#define uint unsigned int
#define delayNOP ( ) ﹛_nop_( ); _nop_( ); _nop_( ); _nop_( );﹜
//LCD控制函数
void LCD_Initialize( );
void LCD_Set_POS(uchar);
void LCD_Write_Date(uchar);
void Display_String(uchar﹡,uchar);
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit BEEP = P3^0;
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
uchar KeyCount = 0;
uchar code msg1[] = ﹛〞Second Watch 0 〞﹜;
uchar code msg2[] = ﹛〞>>>> 0 〞﹜;
uchar code Prompts[] [16] =
{
﹛〞:: 1- - - - > 〞﹜,
﹛〞:: 1- - - - > ::2 〞﹜,
﹛〞:: 1 - >2 ::3- - > 〞﹜,
﹛〞:: 1 - >2 ::3- - >4 〞﹜
};
// 计时缓冲与显示缓冲
uchar Time_Buffer[] ={0,0,0,0};
uchar LCD_Display_Buffer[]={〞00: 00: 00:00〞};
//
// 蜂鸣器
//
void Beep ()
﹛
uchar i,j = 70;
for (i = 0;i< 180;i++ )
﹛
while(--j);BEEP = ~BEEP;
﹜
BEEP = 0;
﹜
//
// 延时
//
void DelayX(uint ms)
{
uchar i;
while(ms--) for (i= 0;i< 120;i++);
﹜
//
// 显示计时
//
void Show_Second( )
{
uchar i;
LCD_Set_POS(0x45); //设置LCD显示起点
for(i = 3;i != 0xff ;i--);
{
//将两位整数的1/100s,秒,分,时转换为8位数字字符
LCD_Display_Buffer[2﹡i+1] = Time_Buffer[i] / 10 + ˊ0 ˊ;
LCD_Display_Buffer[2﹡i] = Time_Buffer[i] % 10 + ˊ0 ˊ;
//在 = 3,2,1,0时分别显示时,分,秒,1/100s
LCD_Writer_Date(LCD_Display_Buffer[2﹡i+1])
LCD_Writer_Date(LCD_Display_Buffer[2﹡i])
LCD_Writer_Date(ˊ: ˊ)
}
}
//
// Time0中断
//
Void Time0( ) interrupt 1 using 0
{
THO = -10000 / 256;
TLO = -10000 % 256;
Time_Buffer[0] ++
if(Time_Buffer[0] == 100)
{
Time_Buffer[0] = 0; Time_Buffer[1]++;
}
if(Time_Buffer[1] == 60) //秒
{
Time_Buffer[1] = 0; Time_Buffer[2]++;
}
if(Time_Buffer[2] == 60) //分
{
Time_Buffer[2] = 0; Time_Buffer[3]++;
}
if(Time_Buffer[3] == 24) //时
Time_Buffer[3] = 0;
}
//
//主函数
//
void main( )
{
uchar i;
IE = 0x82;
TMOD = 0x01;
THO = -10000 / 256;
TLO = -10000 % 256;
LCD_Initialize( );
Display_String(msg1,0x00);
Display_String(msg2,0x40);
While(1)
{
if(k1 == 0)
{
DelayX(100);
i = ++KeyCount;
switch (i)
{
case 1:
case 3: TRO = 1;
Display_String(Prompts[i-1],0);
Break;
case 2:
case 4: TRO = 0;
Display_String(Prompts[i-1],0);
break;
default:TRO = 0;
break;
}
While (K1 == 0); // 等待释放K1键
Beep( );
}
else
if(K2 == 0)
{
TRO = 0;
KeyCount = 0;
for(i = 0;i < 4; i++)
Time_Buffer [i] = 0; // 清零计数缓冲
Display_String(msg1,0);
Beep( );
DelayX(100);
while (K2 == 0); // 等待释放K2键
}
Show_Second( );
}
}
//
// 1602LCD显示驱动函数
//
#include 〈reg51.h〉
#include 〈intrins.h〉
#define uchar unsigned char
#define uint unsigned int
#define DellayNOP( )﹛_nop_( ); _nop_( ); _nop_( ); _nop_( );﹜
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
bit LCD_Busy_Check( );
void LCD_Initialize( );
void LCD_Set_POS(uchar);
void LCD_Write_Command(uchar);
void LCD_Write_ Date(uchar);
//
// 延时
//
void DelayMS(uint ms)
{
uchar t;
while(ms--) for (t =0;t < 120;t++);
}
//
// LCD忙检查
//
bit LCD_Busy_Check( );
{
bit Rsult;
LCD_RS = 0; LCD_RW = 1; LCD_EN = 1;DelayNOP( );
Result = (bit)(p0 ﹠ 0x80);
LCD_EN = 0
return Result;
}
//
// 向LCD写指令
//
void LCD_Write_Command(uchar cmd);
{
while(LCD_Busy_Check() );
LCD_RS = 0; LCD_RW = 0; LCD_EN = 0;
_nop_( ); _nop_( );
pO = cmd; DelayNOP( );
LCD_EN = 1;DelayNOP( );
LCD_EN = 0;
}
//
// 向LCD写数据
//
void LCD_Write_Date(uchar str);
{
while(LCD_Busy_Check() );
LCD_RS = 1; LCD_RW = 0; LCD_EN = 0;pO = str; DelayNOP( );
LCD_EN = 1;DelayNOP( );LCD_EN = 0;
}
//
// 初始化LCD
//
void LCD_Initialize( );
{
DelayMS(5); LCD_Write_Command(0x38);
DelayMS(5); LCD_Write_Command(0x0c);
DelayMS(5); LCD_Write_Command(0x06);
DelayMS(5); LCD_Write_Command(0x01);
DelayMS(5);
}
//
// 设置显示位置
//
void LCD_Set_POS(uchar Poition)
{
LCD_Write_Command(Position ︱ 0x80);
}
//
//显示函数,在LCD指定行上显示字符串
//
void Display_String(uchar﹡str,uchar LineNO)
{
uchar k;
LCD_Set_POS(LineNO);
for (k = 0;k < 16;k++) LCD_Write_Date(str[k])
}
1602显示年月日c语言程序,1602LCD显示的秒表 C语言程序相关推荐
- 用1602液晶显示秒表功能 c语言编写程序 单片机 加注释,单片机课程设计--1602LCD显示的秒表.doc...
单片机课程设计 题目: 1602LCD显示的秒表 系别/班级:信息工程系11级嵌入式技术与应用专业 小组成员: 小组成员学号: 指导老师: 目录 1 单片机原理-------------------3 ...
- c语言流动字体显示的程序,1602字符液晶显示屏程序详解(C语言详细解说)
液晶模块和数码管相比,液晶模块会显得更加专业.漂亮.液晶显示屏以其体积小.功耗低.超薄轻巧.显示内容丰富.使用方便等等诸多优点,在电子设备.通讯.家用电器.仪器仪表等低功耗应用系统之中得到越来越广泛的 ...
- 秒表清零c语言程序,显示的秒表 C语言程序
显示的秒表 C语言程序 源程序代码: //名称:用1602LCD设计的秒表 //说明:首先按下K1键时开始计时,自此按下时暂停,第三次按下时继续累积计时,再次按下时停止计时,K2键用于清零秒表. // ...
- 让C语言写图形库时不关闭控制台,GCC编译Win图形程序不显示控制台方法
用VS编译openCV这些有控制台又有图形显示的程序,如果想隐藏控制台,只需要使用一行代码: #pragma comment( linker, "/subsystem:/"wind ...
- c语言 显示一行中文 程序,关于C语言TurboC中显示汉字的问题程序如下(我已把hak16 爱问知识人...
程序如下(我已把hak16文件复制到本文件同目录了) 但是仍然显示Can't open haz16,Please add it #include #include #include 程序如下(我已把h ...
- 数字温度计的c语言编程,DS18B20数字温度计C程序(能显示负温)
DS18B20数字温度计C程序(能显示负温) //***********DS18B20数字温度计C程序****************// //*MCU: AT892051 // //*MCU-cry ...
- python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)
引用文章:http://code.py40.com/pyqt5/ 文章目录 简单的例子:创建一个小窗口 应用程序的图标 显示提示语 通过按钮关闭窗口 消息框(关闭窗口确认框) 窗口显示在屏幕的中间[居 ...
- Java黑皮书课后题第1章:1.3(显示图案)编写程序,显示下面的图案 Java
Java黑皮书课后题第1章:1.3编写程序,显示下面的图案 题目 题目描述 题目槽点 代码片段 赘述 修改日志 题目 题目描述 编写程序,显示(自己语言描述,详见下图:由不同数量的小字母组成JAVA大 ...
- c语言年历表程序设计,c语言程序设计年历显示-20210413153548.docx-原创力文档
内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) c语言程序设计年历显示 ...
最新文章
- 丰富多彩的Android onTouch事件
- Android中蓝牙的基本使用
- Java程序猿的JavaScript学习笔记(汇总文件夹)
- ANSYS Products 19.1 安装教程
- cocos2d pod_cocos2d 和 cocos3d的版本问题
- hdu-acm steps 命运
- 【动态规划笔记】完全背包问题及优化
- .net core @Html 自定义属性中包含特殊符号解决
- 实战HTML:动画背景网站登录界面
- GitHub官网操作指南
- Java毕业设计-疫情防控系统
- 海外app应用市场分享!
- 写点感想2:车载毫米波雷达产品研发架构
- python儿童-少儿Python创意编程课
- 自动化运维工具——Ansible
- EH集团筹集逾500万瑞士法郎,用于推进其零排放燃料电池技术
- Python项目--批量下载小姐姐壁纸
- JSM jQuery插件开源
- 2021年全国大学生电子设计大赛(一)赛题解析与预测
- python输入hello*3_Python快速上手: hello world
热门文章
- 计算机重置网络后,win10重置网络后以太网和wlan状态都显示..._网络编辑_帮考网...
- 无线传感网课后习题(书本名称无线传感器网络基础 : 理论和实践 : Fundamentals of wireless sensor networks : theory and practice)二
- java中使用事务案例_Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)...
- ThreadPoolExecutor简单使用示例
- 二手车评估师类毕业论文文献有哪些?
- Iterable和Iterator的关系
- C# 语言集成查询 LINQ(Language Integrated Query)
- Ubuntu 18.04安装FSL软件
- 8、mui 登录页/注册页/列表页/详情页
- 将头像和一些导航栏居右显示样式写法