#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语言程序相关推荐

  1. 用1602液晶显示秒表功能 c语言编写程序 单片机 加注释,单片机课程设计--1602LCD显示的秒表.doc...

    单片机课程设计 题目: 1602LCD显示的秒表 系别/班级:信息工程系11级嵌入式技术与应用专业 小组成员: 小组成员学号: 指导老师: 目录 1 单片机原理-------------------3 ...

  2. c语言流动字体显示的程序,1602字符液晶显示屏程序详解(C语言详细解说)

    液晶模块和数码管相比,液晶模块会显得更加专业.漂亮.液晶显示屏以其体积小.功耗低.超薄轻巧.显示内容丰富.使用方便等等诸多优点,在电子设备.通讯.家用电器.仪器仪表等低功耗应用系统之中得到越来越广泛的 ...

  3. 秒表清零c语言程序,显示的秒表 C语言程序

    显示的秒表 C语言程序 源程序代码: //名称:用1602LCD设计的秒表 //说明:首先按下K1键时开始计时,自此按下时暂停,第三次按下时继续累积计时,再次按下时停止计时,K2键用于清零秒表. // ...

  4. 让C语言写图形库时不关闭控制台,GCC编译Win图形程序不显示控制台方法

    用VS编译openCV这些有控制台又有图形显示的程序,如果想隐藏控制台,只需要使用一行代码: #pragma comment( linker, "/subsystem:/"wind ...

  5. c语言 显示一行中文 程序,关于C语言TurboC中显示汉字的问题程序如下(我已把hak16 爱问知识人...

    程序如下(我已把hak16文件复制到本文件同目录了) 但是仍然显示Can't open haz16,Please add it #include #include #include 程序如下(我已把h ...

  6. 数字温度计的c语言编程,DS18B20数字温度计C程序(能显示负温)

    DS18B20数字温度计C程序(能显示负温) //***********DS18B20数字温度计C程序****************// //*MCU: AT892051 // //*MCU-cry ...

  7. python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)

    引用文章:http://code.py40.com/pyqt5/ 文章目录 简单的例子:创建一个小窗口 应用程序的图标 显示提示语 通过按钮关闭窗口 消息框(关闭窗口确认框) 窗口显示在屏幕的中间[居 ...

  8. Java黑皮书课后题第1章:1.3(显示图案)编写程序,显示下面的图案 Java

    Java黑皮书课后题第1章:1.3编写程序,显示下面的图案 题目 题目描述 题目槽点 代码片段 赘述 修改日志 题目 题目描述 编写程序,显示(自己语言描述,详见下图:由不同数量的小字母组成JAVA大 ...

  9. c语言年历表程序设计,c语言程序设计年历显示-20210413153548.docx-原创力文档

    内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) c语言程序设计年历显示 ...

最新文章

  1. 丰富多彩的Android onTouch事件
  2. Android中蓝牙的基本使用
  3. Java程序猿的JavaScript学习笔记(汇总文件夹)
  4. ANSYS Products 19.1 安装教程
  5. cocos2d pod_cocos2d 和 cocos3d的版本问题
  6. hdu-acm steps 命运
  7. 【动态规划笔记】完全背包问题及优化
  8. .net core @Html 自定义属性中包含特殊符号解决
  9. 实战HTML:动画背景网站登录界面
  10. GitHub官网操作指南
  11. Java毕业设计-疫情防控系统
  12. 海外app应用市场分享!
  13. 写点感想2:车载毫米波雷达产品研发架构
  14. python儿童-少儿Python创意编程课
  15. 自动化运维工具——Ansible
  16. EH集团筹集逾500万瑞士法郎,用于推进其零排放燃料电池技术
  17. Python项目--批量下载小姐姐壁纸
  18. JSM jQuery插件开源
  19. 2021年全国大学生电子设计大赛(一)赛题解析与预测
  20. python输入hello*3_Python快速上手: hello world

热门文章

  1. 计算机重置网络后,win10重置网络后以太网和wlan状态都显示..._网络编辑_帮考网...
  2. 无线传感网课后习题(书本名称无线传感器网络基础 : 理论和实践 : Fundamentals of wireless sensor networks : theory and practice)二
  3. java中使用事务案例_Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)...
  4. ThreadPoolExecutor简单使用示例
  5. 二手车评估师类毕业论文文献有哪些?
  6. Iterable和Iterator的关系
  7. C# 语言集成查询 LINQ(Language Integrated Query)
  8. Ubuntu 18.04安装FSL软件
  9. 8、mui 登录页/注册页/列表页/详情页
  10. 将头像和一些导航栏居右显示样式写法