资源简介
51单片机时钟电路(LCD1602显示)完整源码与仿真,适用于51单片机初学者
代码片段和文件信息
#include
#include
//#include “LCD1602.h“
//#include “DS1302.h“
#define uint unsigned int
#define uchar unsigned char
sbit DS1302_CLK = P1^7; //实时时钟时钟线引脚
sbit DS1302_IO = P1^6; //实时时钟数据线引脚
sbit DS1302_RST = P1^5; /* //实时时钟复位线引脚
sbit wireless_1 = P3^0;
sbit wireless_2 = P3^1;
sbit wireless_3 = P3^2;
sbit wireless_4 = P3^3; */
sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;
char hide_sechide_minhide_hourhide_dayhide_weekhide_monthhide_year; //秒分时到日月年位闪的计数
sbit Set = P3^0; //模式切换键
sbit Up = P3^1; //加法按钮
sbit Down = P3^2; //减法按钮
sbit out = P3^3; //立刻跳出调整模式按钮
sbit DQ = P1^0; //温度传送数据IO口
char donecounttempflagup_flagdown_flag; //
uchar temp_value; //温度值
uchar TempBuffer[5]week_value[2]; //
void show_time(); //液晶显示程序
/***********1602液晶显示部分子程序****************/
//Port Definitions**********************************************************
sbit LcdRs = P2^5;
sbit LcdRw = P2^6;
sbit LcdEn = P2^7;
sfr DBPort = 0x80; //P0=0x80P1=0x90P2=0xA0P3=0xB0.数据端口
//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
LcdEn=0;
return DBPort;
}
//向LCD写入命令或数据************************************************************
#define LCD_COMMAND 0 // Command
#define LCD_DATA 1 // Data
#define LCD_CLEAR_SCREEN 0x01 // 清屏
#define LCD_HOMING 0x02 // 光标返回原点
void LCD_Write(bit style unsigned char input)
{
LcdEn=0;
LcdRs=style;
LcdRw=0; _nop_();
DBPort=input; _nop_();//注意顺序
LcdEn=1; _nop_();//注意顺序
LcdEn=0; _nop_();
LCD_Wait();
}
//设置显示模式************************************************************
#define LCD_SHOW 0x04 //显示开
#define LCD_HIDE 0x00 //显示关
#define LCD_CURSOR 0x02 //显示光标
#define LCD_NO_CURSOR 0x00 //无光标
#define LCD_FLASH 0x01 //光标闪动
#define LCD_NO_FLASH 0x00 //光标不闪动
void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND 0x08|DisplayMode);
}
//设置输入模式************************************************************
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00 // default
#define LCD_MOVE 0x01 // 画面可平移
#define LCD_NO_MOVE 0x00 //default
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND 0x04|InputMode);
}
//初始化LCD************************************************************
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND0x38); //8位数据端口2行显示5*7点阵
LCD_Write(LCD_COMMAND0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示 无光标
LCD_Write(LCD_COMMANDLCD_CLEAR_SCREEN); //清屏
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增 画面不动
}
//液晶字符输入的位置************************
void GotoXY(unsigned char x unsigned char y)
{
if(y==0)
LCD_Write(LCD_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1664 2011-05-02 21:15 DS1302时钟+DS18B20+LCD1602\DS1302.PWI
文件 468145 2008-01-19 19:36 DS1302时钟+DS18B20+LCD1602\DS1820_CH.pdf
文件 22080 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.c
文件 5830 2007-07-21 21:23 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.h
文件 7533 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.hex
文件 44 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.lnp
文件 41186 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.M51
文件 358 2011-05-02 21:16 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.plg
文件 3771 2005-09-18 23:23 DS1302时钟+DS18B20+LCD1602\Keil\LCD1602.h
..A.SH. 10 2006-12-17 08:33 DS1302时钟+DS18B20+LCD1602\Keil\_desktop.ini
文件 45817 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.LST
文件 38046 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.OBJ
文件 31929 2011-05-02 17:13 DS1302时钟+DS18B20+LCD1602\Keil\DS1302
....... 2093 2008-03-13 11:01 DS1302时钟+DS18B20+LCD1602\Keil\DS1302_Uv2.Bak
文件 2064 2011-05-02 21:16 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.Uv2
....... 1490 2008-03-13 11:43 DS1302时钟+DS18B20+LCD1602\Keil\DS1302_Opt.Bak
文件 1480 2011-05-02 21:16 DS1302时钟+DS18B20+LCD1602\Keil\DS1302.Opt
文件 262017 2008-01-13 21:33 DS1302时钟+DS18B20+LCD1602\LCD1602液晶中文资料.pdf
文件 19633 2007-09-12 14:28 DS1302时钟+DS18B20+LCD1602\LISA1.SDF
..A.SH. 10 2006-12-17 08:33 DS1302时钟+DS18B20+LCD1602\_desktop.ini
文件 135093 2008-03-13 12:50 DS1302时钟+DS18B20+LCD1602\效果显示图.gif
文件 210930 2008-01-19 19:14 DS1302时钟+DS18B20+LCD1602\时钟芯片DS1302_CH.pdf
文件 155418 2011-05-02 20:19 DS1302时钟+DS18B20+LCD1602\Last Loaded DS1302.DBK
文件 155418 2011-05-02 20:19 DS1302时钟+DS18B20+LCD1602\DS1302.DSN
目录 0 2008-03-13 11:43 DS1302时钟+DS18B20+LCD1602\Keil
目录 0 2008-03-13 12:50 DS1302时钟+DS18B20+LCD1602
----------- --------- ---------- ----- ----
1612059 26
- 上一篇:数字电路与逻辑设计邹虹版课后习题答案
- 下一篇:华为射频基础知识培训
评论
共有 条评论