1 / 16
文档名称:

(完整word版)1602液晶时钟程序(51单片机).docx

格式:docx   大小:328KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

(完整word版)1602液晶时钟程序(51单片机).docx

上传人:kunpengchaoyue 2021/4/11 文件大小:328 KB

下载得到文件列表

(完整word版)1602液晶时钟程序(51单片机).docx

文档介绍

文档介绍:1602液晶时钟程序 程序按郭天袢《新概念
卜 用茁 £ds L Jfi *rv ^J-c^L £1 条*j 切 1,4419. Qjtpfrr t< TLxi^ah jj-ilp :亡:\>a WS utd ^tl^Ln^XhAU \j *
」芦[壬卡*〕h画占羊& ■ 7站[}讣葩X ]| 厚|“・| ・|・・,匚
孑 rifu Hun■上 Li : uJ ShM .SchDoc:
El三
¥0薰寓 SCHFWtpSF***負
-=-L
F 营!?_黑 聲X门带
^IL
x rex
*■
" — nz-wLmi I 1
Favorites- 口-fl-bMid Librenws-
51单片机C语言教程》第十四章扩展显示年、月、日、星期调节功
1) 时间显示在1602液晶上,并按秒实时更新
2) 能调节按键调整时、分、秒、年、月、日和星期
3) 每次按键按下时有短滴声响声
4) 断电后下次上电会接着上次断电前的时间数继续运行
原理图如图
^lt iun Dc^icncE Suucr 0? C: \DacuAE-ntii and Se-1 tinEs\hui\^面 1 单片I. S[:hDoc *PJTJfl- TriTCB. Lictnacdi lo ?a |. ||i? |[X
piZ-iTJ
S^eIehi Qesjon 匸 cfT(Jm SQ4 Hdp Inrtnjiwts »
朮 芯 Z Rask Lewd] Oba
:. 楼冒由 F « 哩)C:\flg... r STC-E... ■悩極 H... •单片氧 i/Mtim...
II原代码如下:
#in clude<>
II#in clude""
#define uchar un sig ned char
#define uint un sig ned int
#in clude""
sbit dula=P2A6;
sbit wela=P2A7;
sbit LCDEN=P3A4;
sbit LCDRS=P3A5;
sbit s1=P3A0;II定义按键--功能键
sbit s2=P3A1;〃定义按键--增大键 sbit s3=P3A2;II定义按键--减小键
sbit rd=P3A7;//按键公共脚
sbit beep=P2A3;〃定义蜂鸣器脚
uchar count,s1_num;// 定义中断次数计数变量 功能键按键次数变量
uchar week,day,month,year;// 定义变量 :星期 日 月 年
char miao,shi,fen;// 定义秒分时变量
uchar code table[]=" 2012-11-28 Wed";
//void write_week(char we);// 显示星期几函数
void delay(uint z)
{ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);
}
void di()// 蜂鸣器响一声函数
{
beep=0;
delay(100);
beep=1;
}
void write_com(uchar com) // 液晶写命令函数
{ LCDRS=0; P0=com; delay(5); LCDEN=1; delay(5); LCDEN=0;
}
void write_date(uchar date) // 液晶写数据函数 {
LCDRS=1;
P0=date;
delay(5);
LCDEN=1;
delay(5);
LCDEN=0;
// 写星期几显示函数
}
void write_week(char we) {
write_com(0x80+12);
switch(we)
{
case 1: write_date('M');delay(5); write_date('o');delay(5); write_date('n');delay(5); break;
case 2: write_date('T');delay(5); write_date('u');delay(5); write_date('e');delay(5); break;
case 3: write_date('W');delay(5); write_date('e');delay(5); write_date('d');delay(5); break;
case 4: write_date('T');delay(5); write_d