资源简介
通过1602显示设定时间和当前时间,设定时间通过四个按键分别对分和秒进行加减。按下开始按键后就开始倒数。倒数完成就控制蜂鸣器鸣叫。如果按下停止键,则倒计时停止,下次按下开始时,把停止时的时间设为设定时间
代码片段和文件信息
#include“lcd.h“
/*******************************************************************************
* 函 数 名 : Lcd1602_Delay1ms
* 函数功能 : 延时函数,延时1ms
* 输 入 : c
* 输 出 : 无
* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/
void Lcd1602_Delay1ms(uint c) //误差 0us
{
uchar ab;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
/*******************************************************************************
* 函 数 名 : LcdWriteCom
* 函数功能 : 向LCD写入一个字节的命令
* 输 入 : com
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com) //写入命令
{
LCD1602_E = 0; //使能
LCD1602_RS = 0; //选择发送命令
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = com; //放入命令
Lcd1602_Delay1ms(1); //等待数据稳定
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5); //保持时间
LCD1602_E = 0;
}
#else
void LcdWriteCom(uchar com) //写入命令
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 0; //选择写入命令
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
// Lcd1602_Delay1ms(1);
LCD1602_DATAPINS = com << 4; //发送低四位
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdWriteData
* 函数功能 : 向LCD写入一个字节的数据
* 输 入 : dat
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdWriteData(uchar dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择输入数据
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //写入数据
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5); //保持时间
LCD1602_E = 0;
}
#else
void LcdWriteData(uchar dat) //写入数据
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 1; //选择写入数据
LCD1602_RW = 0; //选择写入
LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
LCD1602_DATAPINS = dat << 4; //写入低四位
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //写入时序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdInit()
* 函数功能 : 初始化LCD屏
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdInit() //LCD初始化子程序
{
LcdWriteCom(0x38); //开显示
LcdWriteCom(0x0c); //开显示不显示光标
LcdWriteCom(0x06); //写一个指针加1
LcdWriteCom(0x01); //清屏
LcdWriteCom(0x80); //设置数据
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-12 18:41 kecheng——cjx-51\
文件 3627 2015-11-12 11:09 kecheng——cjx-51\lcd.c
文件 963 2015-11-12 11:09 kecheng——cjx-51\lcd.h
文件 6605 2018-06-12 18:33 kecheng——cjx-51\lcd.LST
文件 4092 2018-06-12 18:33 kecheng——cjx-51\lcd.OBJ
文件 4704 2018-06-12 18:33 kecheng——cjx-51\main.c
文件 9854 2018-06-12 18:33 kecheng——cjx-51\main.LST
文件 12146 2018-06-12 18:33 kecheng——cjx-51\main.OBJ
文件 14434 2018-06-12 18:33 kecheng——cjx-51\pro
文件 1015 2018-06-12 18:33 kecheng——cjx-51\pro.build_log.htm
文件 3386 2018-06-12 18:33 kecheng——cjx-51\pro.hex
文件 52 2018-06-12 18:33 kecheng——cjx-51\pro.lnp
文件 18745 2018-06-12 18:33 kecheng——cjx-51\pro.M51
文件 139771 2018-06-12 18:41 kecheng——cjx-51\pro.uvgui.ASUS
文件 6100 2018-06-12 18:02 kecheng——cjx-51\pro.uvopt
文件 14169 2018-06-12 18:02 kecheng——cjx-51\pro.uvproj
文件 6376 2015-11-12 11:09 kecheng——cjx-51\STARTUP.A51
文件 14053 2018-06-12 18:33 kecheng——cjx-51\STARTUP.LST
文件 758 2018-06-12 18:33 kecheng——cjx-51\STARTUP.OBJ
相关资源
- 51单片机数码管显示时钟
- 51单片机T2定时器控制舵机程序源码(
- 两超声波模块测量角度
- 51单片机闹钟
- 51单片机 心形花样流水灯程序
- 四位数码管时钟程序
- QT计算器,画图,闹钟,秒表,倒计时
- BC28+51单片机的原理图
- 51单片机控制电机的转速转向以及启停
- 51单片机双机通信
- 51开发板密码锁
- 表白过节日送女友网页模板倒计时
- 基于51单片机的心形流水灯仿真
- 51单片机控制CS5463程序
- 51单片机最小系统原理图.SchDoc
- 51单片机红外遥控器程序
- 遗传算法实现求PID参数控制电压的代
- 基于51单片机的智能窗帘系统全套资料
- 51单片机控制步进电机电路图
- 51单片机读取DS18b20数据加1602显示+pr
- 基于51单片机寻光小车
- c51单片机数码管显示60s倒计时
- 51单片机控制DS18b20,在数码管上显示
- AT89C51单片机--CC1101无线接收程序经本
- 51单片机+DS18B20+NRF24L01+LCD1602=无线温度
- 基于AT89C51单片机的智能脉搏测试仪设
- 51单片机驱动K型热电偶数字转换器M
- 基于51单片机的24l01程序
- 51单片机Protues,仿真DS18b20温度传感器
- 51单片机Protues,仿真交通灯。程序+仿
评论
共有 条评论