资源简介
时钟用液晶显示,红外遥控器改变时间,有年月日显示,还有断电保护功能

代码片段和文件信息
#include
#define uint unsigned int
#define uchar unsigned char
uchar table2[7][3]={“Mon““Tus““Wen““Thu““Fri““Sat““Sun“} ;
char xshifenmiaoyearmonthday weekwrite;
uchar count;
sbit lcden=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
sbit rd=P3^7;
sbit gn=P3^0;
sbit jia=P3^1;
sbit jian=P3^2;
sbit sda=P2^0;
sbit scl=P2^1;
void delay1()
{;;}
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void start() //开始信号
{
sda=1;
delay1();
scl=1;
delay1();
sda=0;
delay1();
}
void stop() //停止
{
sda=0;
delay1();
scl=1;
delay1();
sda=1;
delay1();
}
void respons() //应答
{
uchar i;
scl=1;
delay1();
while((sda==1)&&(i<255))i++;
scl=0;
delay1();
}
void init3()
{
sda=1;
delay1();
scl=1;
delay1();
}
void write_byte(uchar date)
{
uchar itemp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay1();
sda=CY;
delay1();
scl=1;
delay1();
}
scl=0;
delay1();
sda=1;
delay1();
}
uchar read_byte()
{
uchar ik;
scl=0;
delay1();
sda=1;
delay1();
for(i=0;i<8;i++)
{
scl=1;
delay1();
k=(k<<1)|sda;
scl=0;
delay1();
}
return k;
}
void write_add(uchar addressuchar date)
{
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
date=read_byte();
stop();
return date;
}
void write_com(uchar com)
{
rs=0;
rw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
delay(5);
}
void write_data(uchar date)
{
rs=1;
rw=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
delay(5);
}
void init()
{
lcden=0;
rw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void init2()
{
TMOD=0x01;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void write_sfm(uchar lianjieuchar add)
{
uchar shige;
shi=lianjie/10;
ge=lianjie%10;
write_com(0x80+0x40+add);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_sfm1(uchar lianjieuchar add)
{
uchar shige;
shi=lianjie/10;
ge=lianjie%10;
write_com(0x80+add);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_year(uchar lianjieuchar add)
{
uchar qianbaishige;
ge=lianjie%10;
shi=(lianjie/10)%10;
bai=0;
qian=2;
write_com(0x80+add);
write_data(0x30+qian);
write_data(0x30+bai);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_week(uchar week )
{ uint i;
write_com(0x80+12) ;
for(i=0;i<3;i++)
write_data(table2[week][i]);
}
void gnmod() //功能模块
{
uchar an1;
if(gn==0)
{
delay(5);
if(gn==0)
{
while(!gn);
TR0=0;
an1++;
if(an1==1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-08-24 12:57 时钟1\
文件 95492 2011-07-12 23:16 时钟1\Last Loaded 时钟1.DBK
文件 6376 2005-03-22 15:22 时钟1\STARTUP.A51
文件 14048 2011-07-18 19:38 时钟1\STARTUP.LST
文件 749 2011-07-18 19:38 时钟1\STARTUP.OBJ
文件 24076 2011-07-18 19:38 时钟1\时钟1
文件 8306 2011-07-17 20:02 时钟1\时钟1.c
文件 95490 2011-07-15 11:26 时钟1\时钟1.DSN
文件 4894 2011-07-18 19:38 时钟1\时钟1.hex
文件 58 2011-07-18 19:38 时钟1\时钟1.lnp
文件 29361 2011-07-18 19:38 时钟1\时钟1.LST
文件 33573 2011-07-18 19:38 时钟1\时钟1.M51
文件 27831 2011-07-18 19:38 时钟1\时钟1.OBJ
文件 1150 2011-07-17 20:03 时钟1\时钟1.Opt
文件 498 2011-07-18 19:38 时钟1\时钟1.plg
文件 768 2011-08-24 12:57 时钟1\时钟1.PWI
文件 2152 2011-07-17 20:03 时钟1\时钟1.Uv2
文件 1027 2011-07-17 17:50 时钟1\时钟1_Opt.Bak
文件 2148 2011-07-12 18:50 时钟1\时钟1_Uv2.Bak
- 上一篇:微机原理答案 课后习题 ~~~~~
- 下一篇:SVM+HOG+LBP
相关资源
- STM32 led 时钟
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 一种红外遥控编解码仿真
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
评论
共有 条评论