资源简介
DS1302 LCM1602 protues仿真
代码片段和文件信息
/* 本程序所使用CPU为51单片机,时钟为24MHZ,程序主体网上所得,稍加修,念在下初学,还请原作者见谅。特此声明*/
#include
#include
#include “LCM1602.h“
#include “DS1302.h“
sbit Add_Key = P3 ^ 3;//加1键
sbit Dec_Key = P3 ^ 4;//减1键
sbit OK_Key = P3 ^ 5;//确定键
struct TimerStruct //定义时钟的数据结构
{
unsigned char Year;
unsigned char Month;
unsigned char Day;
unsigned char Week;
unsigned char Hour;
unsigned char Minute;
unsigned char Second;
};
unsigned char DateBuffer[] ={“2000/12/20“}; // 随便设置,不表示显示的初始值,只为方便子程序调用
unsigned char TimeBuffer[] = {“21:49:00“}; //初始值在主程序中设置
unsigned int SecondCounter;//秒计数器(无符号整型)
unsigned char Keyboard_Clock_Number;
unsigned char Temp;
struct TimerStruct RealClock;
void timer0(void) interrupt 1 //定时T0溢出中断每25mS产生一次中断 方式1 9E58
{ unsigned char Temp;
// struct
TH0=0x9e;//(65536-46080)/256; //重新装入定时25mS的初值到TH0TL0
TL0=0x58;//(65536-46080)%256;
SecondCounter++; //秒计数器加1
if(SecondCounter==40) //到40表示1S时间到
{
SecondCounter=0;
/****--以下是读取DS1302的时钟信息并将结果存储到显示缓冲区中****/
Temp=Read_DS1302_RTC(0x81); //读秒信息
RealClock.Second=Temp;
TimeBuffer[7]=(Temp%16)|0x30;
TimeBuffer[6]=(Temp>>4)|0x30;
Temp=Read_DS1302_RTC(0x83); //读分信息
RealClock.Minute=Temp;
TimeBuffer[4]=(Temp%16)|0x30;
TimeBuffer[3]=(Temp>>4)|0x30;
Temp=Read_DS1302_RTC(0x85); //读时信息
RealClock.Hour=Temp;
TimeBuffer[1]=(Temp%16)|0x30;
TimeBuffer[0]=(Temp>>4)|0x30;
Temp=Read_DS1302_RTC(0x87); //读日信息
RealClock.Day=Temp;
DateBuffer[9]=(Temp%16)|0x30;
DateBuffer[8]=(Temp>>4)|0x30;
Temp=Read_DS1302_RTC(0x89); //读月信息
RealClock.Month=Temp;
DateBuffer[6]=(Temp%16)|0x30;
DateBuffer[5]=(Temp>>4)|0x30;
Temp=Read_DS1302_RTC(0x8d); //读年信息
RealClock.Year=Temp;
DateBuffer[3]=(Temp%16)|0x30;
DateBuffer[2]=(Temp>>4)|0x30;
/*****************---送到LCD上显示出来***********************/
DisplayListChar(00DateBuffer);//刷新LCD上的日期信息
DisplayListChar(01TimeBuffer);//刷新LCD上的时间显示信息
}
}
void main(void){
TMOD=0x01; //T0工作于16位定时功能
TH0=(65536-46080)/256; //T0定时25mS的初值装入TH0TL0
TL0=(65536-46080)%256;
EA=1; //CPU开中断
ET0=1; //允许T0溢出中断
Delay400Ms();
LCMInit(); //初始化LCD
/************ Init_DS1302_RTC();//初始化DS1302*************/
Init_1302();
TR0=1; //启动T0开始工作
while(1)
{
OK_Key = 1;
Add_Key = 1;
Dec_Key = 1;
if (OK_Key == 0) // 设置和选择项目键
{
Delay5Ms();
Delay5Ms();
EA = 0;
if(OK_Key == 0)
{
Keyboard_Clock_Number++;if(Keyboard_Clock_Number>5)Keyboard_Clock_Number=0;
}
while(OK_Key == 0);
}
switch( Keybo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 68578 2007-11-23 11:41 DS1302\DS1302.DSN
文件 2431 2007-11-23 11:28 DS1302\DS1302.h
文件 484 2007-11-23 11:41 DS1302\DS1302.PWI
文件 64284 2007-11-22 19:31 DS1302\Last Loaded DS1302.DBK
文件 2424 2006-04-15 22:22 DS1302\LCD\LCD
文件 2693 2006-04-15 22:22 DS1302\LCD\LCD.BIN
文件 2120 2006-04-15 22:22 DS1302\LCD\LCD.C
文件 2763 2006-04-15 22:28 DS1302\LCD\LCD.DSK
文件 6505 2006-04-15 22:22 DS1302\LCD\LCD.HEX
文件 7186 2006-04-15 22:22 DS1302\LCD\LCD.LST
文件 8950 2006-04-15 22:22 DS1302\LCD\LCD.M51
文件 3790 2006-04-15 22:22 DS1302\LCD\LCD.OBJ
文件 2636 2006-04-14 22:38 DS1302\LCD\lcd.PRJ
文件 59312 2007-06-22 21:54 DS1302\LCD\LCD四线\000.JPG
文件 13101 2007-06-22 21:52 DS1302\LCD\LCD四线\LCD1602
文件 4837 2007-10-15 10:11 DS1302\LCD\LCD四线\LCD1602.h
文件 5029 2007-06-22 21:52 DS1302\LCD\LCD四线\LCD1602.hex
文件 43 2007-06-22 21:52 DS1302\LCD\LCD四线\LCD1602.lnp
文件 18821 2007-06-22 21:52 DS1302\LCD\LCD四线\LCD1602.M51
文件 992 2007-06-22 21:45 DS1302\LCD\LCD四线\LCD1602.Opt
文件 855 2007-06-22 21:52 DS1302\LCD\LCD四线\LCD1602.plg
文件 1681 2007-06-22 21:40 DS1302\LCD\LCD四线\LCD1602.Uv2
文件 992 2007-06-22 21:45 DS1302\LCD\LCD四线\LCD1602_Opt.Bak
文件 1681 2007-06-22 21:40 DS1302\LCD\LCD四线\LCD1602_Uv2.Bak
文件 247 2007-06-22 21:45 DS1302\LCD\LCD四线\Main.c
文件 1169 2007-06-22 21:52 DS1302\LCD\LCD四线\Main.LST
文件 15376 2007-06-22 21:52 DS1302\LCD\LCD四线\Main.OBJ
文件 58059 2007-06-22 21:53 DS1302\LCD\LCD四线\Proteus\Last Loaded LCD1602.DBK
文件 58070 2007-10-11 21:05 DS1302\LCD\LCD四线\Proteus\LCD1602.DSN
文件 386 2007-11-22 19:07 DS1302\LCD\LCD四线\Proteus\LCD1602.PWI
............此处省略14个文件信息
- 上一篇:EDA程序绝对经典
- 下一篇:慕课网网站布局demo
相关资源
- 用51单片机驱动DS1302时间模块+DS18B20温
- 1602电子时钟万年历isis仿真文件,程序
- 篮球计分器protues仿真+C程序
- 霍尔传感器protues仿真+程序
- DS1302 单片机万年历
- 89C2051+DS1302+74HC595+8位LED数码管的电子
- ds1302时钟、温度、LCD1602显示,按键设
- 51单片机1602与DS1302万年历仿真,时钟
- MSP430时钟程序
- 0011、采用实时时钟芯片DS1302+AT89C205
- PIC单片机之DS1302时钟
- protues仿真模拟红外遥控器
- 基于安信可esp8266 ds1302时钟驱动
- 超声波液面测距protues仿真温度补偿
- 51单片机 ,TM1638芯片+DS1302驱动共阴数
- 数码管时钟(附有protues仿真)
- 步进电机调速protues仿真
- 基于51单片机的ds1302多功能电子时钟
- 51单片机DS1302电子时钟(万年历)
- proteus中ds1302时钟程序仿真
- 基于8255的电子码表protues仿真
- 双机交互串口通信实验 串口通信,
- DS1302+18B20单片机例程(附原理图+pcb
- 一个基于AD1674的模数转换电路及程序
- DS18B20+DS1302 显示温度和时间Proteus仿真
- 电子万年历设计含有实验报告,原理
- lcd1602 温度日历闹钟功能
- 时钟显示及闹钟protues仿真图
- LCD1602 电子时钟 protues仿真
- 基于PIC单片机的电子时钟设计
评论
共有 条评论