1 / 12
文档名称:

51单片机时钟代码(带秒表闹钟功能)..doc

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

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

分享

预览

51单片机时钟代码(带秒表闹钟功能)..doc

上传人:xunlai783 2018/2/5 文件大小:52 KB

下载得到文件列表

51单片机时钟代码(带秒表闹钟功能)..doc

文档介绍

文档介绍:#include <>
#include <>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P1^5; //蜂鸣器
sbit LED1=P1^6; //LED灯
sbit ep=P2^7; //1602使能端
sbit rs=P2^6; //1602
sbit rw=P2^5; //1602
sbit s0=P3^4; //停止闹铃和小灯
sbit s1=P3^5; //功能键
sbit s2=P3^6; //增大键
sbit s3=P3^7; //减小键
sbit s4=P3^1; //
sbit s5=P3^2;
sbit s6=P3^3;
sbit s7=P3^0;
uchar s1num,s4num,count,count1,judge=0;
char sec, min,hour,miao,fen,shi,sec1,min1,diwei;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
void di()
{
beep=0;
delay(50);
beep=1;
}
bit lcd_bz() //测试LCD忙碌状态
{
bit result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0 & 0x80);
ep = 0;
return result;
}
void ()//写入指令到LCD
{
while(lcd_bz());
rs=0;
rw=0;
ep=0;
;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
void write_data(uchar dat) //写入字符显示数据到LCD
{
while(lcd_bz()); //等待LCD空闲
rs=1;
rw=0;
ep=0;
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
void write_time(uchar add,uchar dat)
{
uchar shi,ge;
shi=dat/10;
ge=dat%10;
(0x80+0x40+add+2);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_alarm(uchar add,uchar dat)
{
uchar shi1,ge1;
shi1=dat/10;
ge1=dat%10;
(0x80+0x00+add+2);
write_data(0x30+shi1);
write_data(0x30+ge1);
}
void init()
{
ep=0;
min=0;
sec=0;
hour=0;
s1num=0;
count=0;
(0x38);delay(1); //clear
(0x0c);delay(1);
(0x06);delay(1);
(0x01);delay(1);
(0x80);delay(5);
(0x80+0x40+0);delay(5);
write_data('T');delay(5);
(0x80+0x40+1);delay(5);
write_data('I');delay(5);
(0x80+0x40+2);delay(5);
write_data('M');delay(5);
(0x80+0x40+3);delay(5);
write_data('E');delay(5);
(0x80+0x40+4);delay(5);
write_data(':');delay(5);
(0x80+0x40+8);delay(5);
write_data(':');delay(5);
(0x80+0x40+11);delay(5);
write_data(':');delay(5);