1. 首页
  2. 文档大全

51单片机C语言电子时钟程序设计程序.docx

上传者:niupai21 2022-06-15 17:09:10上传 DOCX文件 43 KB
主程序:
# mcludeHDS18B20.3.HM
^define umt unsigned mt
^define uchai unsigned char
uchai ajniao.slu.fenji,yue4iiaiijveek,flag.keyln.temp:
^define vh 0x80
J
^define er 0x80+0x40
〃液晶屏的与C51之间的引脚连接定义
sbit rs=P2A0;
sbit en=P2A2;
sbit rw=P2T; 〃如果硬件上rw接地,就不用写这句和后
面的rw=0 \
sbit led=P2A6; //LCD 背光开关
//DS1302时钟芯片与C51之间的引脚连接定义
sbit IO=P1A1;
sbit SCLK=P1AO;
sbit RST=P1A2;
sbitACC0=ACCA0;
sbitACC7=ACCA7;
〃校时按键与C51的引脚连接定义
sbit kevl=Pr 5;
J 1
sbit kev2=PT 6;
J 1
sbit kev3=Plz 7;
J 1
sbit buzzei-=PlA3; 电平响
〃设置键
〃加键
〃减键
〃蜂鸣器,通过三极管9012驱动,端II低
uchai code tabl[]={H20 uchai code tab2[]={n
〃年显示的固定字符 〃时间显示的固定字符
//延时函数,有参函数
〃延时函数,后面经常调用 void delay(umt xnis)
uiiit x,y;
fbr(x=xins;x>0;x-)
for(y=110;y>0;y-);
/********液晶写入指令函数与写入数据函数,以后可调用**************/
wnte_1602com(uchar com)
〃和祜液晶写入指令函数和和
rs=O;
rw=O;
PO=com;
delay(l); en=l;

delay(l); en=O;

〃数据/指令选择置为指令
〃读写选择置为写
//送入数据
〃拉高使能端,为制造有效的下降沿做准
//en由高变低,产生卞降沿,液晶执行命
write_l 602dat(uchar dat)
{
rs=l;
rw=O;
PO=dat; delay(l); en=l;
delay(l); en=O;

}
lcd_init()
{
write_l 602com(0x3 8); 5*7点阵,8位数据
write_l 602com(0x0c);
write_l 602com(0x06);
write_l 602com(0x01);
write」602com(vh+1); 置之后开始显示 fbr(a=0;a<14;a-H-)
{ wnte_1602dat(tabl [a]); //delay(3);
}
wiite_l 602com(ei+2); 个位置后开始显示 fbr(a=0;a<8;a-H-)
〃*"液晶写入数据函数"**
〃数据/指令选择置为数据
〃读写选择置为写
//送入数据
〃en置高电平,为制造卞降沿做准备
//en由高变低,产生下降沿,液晶执行命
〃***液晶初始化函数****
〃设置液晶工作模式,意思:16*2行显示,
〃开显示不显示光标
〃整屏不移动,光标自动右移
〃清显示
〃口历显示固定符号从第一行第1个位
〃向液晶屏写口历显示的固定符号部分
〃时间显示固定符号写入位置,从第2
〃写显示时河固定符号,两个冒号
write_l 602dat(tab2 [a]); //delay(3);
}
}
严**************DS 1302 有关子函数********************/
void write_byte(uchai- dat)〃写一个字节 {
ACC=dat;
RST=1;
fbi(a=8;a>0;a—)
{
IO=ACCO;
SCLK=0:
SCLK=1; ACC=ACC»1;
}
}
〃读一个字节
uchai read_byteQ
{
RST=1;
fbi(a=8;a>0;a—)
{
ACC7=IO;
SCLK=1;
SCLK=0:
ACC=ACC»1;
} return (ACC);
}
//
〃向1302芯片写函数,指定写入地
void wiite_1302(uchai- add.uchar dat) 址,数据
RST=0

51单片机C语言电子时钟程序设计程序


文档来源:https://www.taodocs.com/p-690576456.html

文档标签:

下载地址