资源简介
整个系统以STC89C51单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。其它个模块围绕着单片机最小系统展开。其中包括,显示设备使用1602液晶,可以同时显示年、月、日、星期、时、分、秒等基本时间信息;时钟模块采用DS1302芯片,初始化之后,就会开始运行计算时间,单片机只需进行时间信息的读取即可。本设计还有4个按键作为操作输入设备,可以进行时间、闹钟的设置等,同时还有蜂鸣器模块,用来实现闹钟的闹铃。最后是供电采用常用的USB 5V进行供电。
代码片段和文件信息
#include
#include
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
sfr ISP_DATA = 0xe2; // 数据寄存器
sfr ISP_ADDRH = 0xe3; // 地址寄存器高八位
sfr ISP_ADDRL = 0xe4; // 地址寄存器低八位
sfr ISP_CMD = 0xe5; // 命令寄存器
sfr ISP_TRIG = 0xe6; // 命令触发寄存器
sfr ISP_CONTR = 0xe7; // 命令寄存器
sbit LcdRs_P = P2^7; // 1602液晶的RS管脚
sbit LcdRw_P = P2^6; // 1602液晶的RW管脚
sbit LcdEn_P = P2^5; // 1602液晶的EN管脚
sbit RST_P = P1^3; // 时钟芯片DS1302的RST管脚
sbit SDA_P = P1^2; // 时钟芯片DS1302的SDA管脚
sbit SCK_P = P1^1; // 时钟芯片DS1302的SCK管脚
sbit KeySet_P = P3^2; // 设置时间按键
sbit KeyClock_P = P3^3; // 设置闹钟按键
sbit KeyDown_P = P3^4; // 减按键
sbit KeyUp_P = P3^5; // 加按键
sbit Buzzer_P = P2^0; // 蜂鸣器
uchar TimeBuff[7]={16856183050}; // 时间数组,默认2016年8月5日,星期五,16:30:50
// TimeBuff[0] 代表年份,范围00-99
// TimeBuff[1] 代表月份,范围1-12
// TimeBuff[2] 代表日期,范围1-31
// TimeBuff[3] 代表星期,范围1-7,1是星期天,2是星期一... ...
// TimeBuff[4] 代表小时,范围00-23
// TimeBuff[5] 代表分钟,范围00-59
// TimeBuff[6] 代表秒钟,范围00-59
uchar Clock_Hour; // 闹钟的小时
uchar Clock_Minute; // 闹钟的分钟
uchar Clock_Swt; // 闹钟的开关
uchar Buzzer_Flag=0; // 蜂鸣器工作标志
/*********************************************************/
// 单片机内部EEPROM不使能
/*********************************************************/
void ISP_Disable()
{
ISP_CONTR = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
}
/*********************************************************/
// 从单片机内部EEPROM读一个字节,从0x2000地址开始
/*********************************************************/
unsigned char EEPROM_Read(unsigned int add)
{
ISP_DATA = 0x00;
ISP_CONTR = 0x83;
ISP_CMD = 0x01;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
// 对STC89C51系列来说,每次要写入0x46,再写入0xB9ISP/IAP才会生效
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
return (ISP_DATA);
}
/*********************************************************/
// 往单片机内部EEPROM写一个字节,从0x2000地址开始
/*********************************************************/
void EEPROM_Write(unsigned int addunsigned char ch)
{
ISP_CONTR = 0x83;
ISP_CMD = 0x02;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
ISP_DATA = ch;
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
}
/*********************************************************/
// 擦除单片机内部EEPROM的一个扇区
// 写8个扇区中随便一个的地址,便擦除该扇区,写入前要先擦除
/*********************************************************/
void Sector_Erase(unsigned int add)
{
ISP_CONTR = 0x83;
ISP_CMD = 0x03;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
}
/*********************************************************/
// 毫秒级的延时函数,time是要延时的毫秒数
/*********************************************************/
void DelayMs(u
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-29 00:04 万年历\
文件 23704 2017-09-12 21:50 万年历\main.c
目录 0 2016-08-15 16:01 万年历\仿真\
文件 92073 2016-08-09 23:10 万年历\仿真\Last Loaded simulation.DBK
文件 92073 2016-08-09 23:17 万年历\仿真\simulation.DSN
文件 909 2016-08-15 16:01 万年历\仿真\simulation.PWI
文件 27136 2016-08-10 00:01 万年历\元件清单.doc
目录 0 2017-12-28 23:01 万年历\图片\
文件 45258 2017-09-12 22:12 万年历\图片\仿真.PNG
文件 1466564 2017-09-13 16:01 万年历\图片\正面.jpg
文件 1384554 2017-09-13 16:00 万年历\图片\背面.jpg
文件 838511 2017-09-12 22:51 万年历\图片\调试.jpg
文件 44371 2017-09-12 21:52 万年历\图片\运行.PNG
目录 0 2017-12-29 00:02 万年历\电路图(原理图和PCB图)\
目录 0 2017-12-29 00:02 万年历\电路图(原理图和PCB图)\Altium Designer格式\
文件 152576 2016-09-19 21:15 万年历\电路图(原理图和PCB图)\Altium Designer格式\PCB.PcbDoc
文件 87040 2016-08-15 16:13 万年历\电路图(原理图和PCB图)\Altium Designer格式\原理图-1.SCHDOC
文件 83968 2016-10-02 07:03 万年历\电路图(原理图和PCB图)\Altium Designer格式\原理图-2.SCHDOC
目录 0 2017-12-29 00:02 万年历\电路图(原理图和PCB图)\Protel 99SE格式\
文件 105440 2016-08-05 11:31 万年历\电路图(原理图和PCB图)\Protel 99SE格式\PCB.pcb
文件 27878 2016-08-15 16:08 万年历\电路图(原理图和PCB图)\Protel 99SE格式\原理图-1.sch
文件 27364 2016-10-02 07:03 万年历\电路图(原理图和PCB图)\Protel 99SE格式\原理图-2.sch
目录 0 2017-12-29 00:02 万年历\电路图(原理图和PCB图)\word格式\
文件 28672 2016-08-05 11:32 万年历\电路图(原理图和PCB图)\word格式\PCB.doc
文件 25088 2016-08-15 16:09 万年历\电路图(原理图和PCB图)\word格式\原理图-1.doc
文件 24064 2016-10-02 07:03 万年历\电路图(原理图和PCB图)\word格式\原理图-2.doc
文件 4133888 2017-12-28 23:02 万年历\课程设计报告.doc
- 上一篇:nginx依赖包nginx依赖包
- 下一篇:ZIGBEE技术手册(粤嵌)
相关资源
- Flexsim仿真案例集合
- VSC-HVDC PSCAD的仿真模型
- 仓库管理系统 课程设计报告
- 基于ofdm系统的qam软判决算法的研究与
- 仓库管理系统课程设计报告.doc
- Plastid智能车仿真程序
- BOOST升压+PFC功率因数矫正PSIM仿真模型
- 图书管理系统课程设计报告.docx
- IGBT选型与仿真软件
- SDRAM的MOdelsim仿真
- 交通仿真软件SUMO的基本使用方法
- 液压教学仿真软件
- OMnet++教程中文版
- 基于System View的2DPSK调制解调系统的设
- fieldII超声波束形成仿真
- 乐龙物流仿真软件
- LTE的系统级仿真平台
- NC-verilog 仿真教程和实验
- Verilog编写矩阵键盘,含有消抖,模拟
- VISSIM行人仿真模块介绍和使用方法d
- 信息网络建模与仿真.docx
- ARP木马课程设计报告
- Irai机电一体化仿真软件
- 仿真 使用arena第三版 习题答案
- HLA仿真程序设计
- 电工教学模仿真模拟软件
- 电工电力拖动及照明线路仿真2015最新
- c51的proteus仿真第2版[张齐][电子课件
- 半导体工艺和器件仿真工具SilvacoTCA
- Atoll_LTE仿真指导使用说明书
评论
共有 条评论