基于DS1302和LCD1602的数字电子钟的设计1.docx
- 文档编号:2462871
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:19
- 大小:145.37KB
基于DS1302和LCD1602的数字电子钟的设计1.docx
《基于DS1302和LCD1602的数字电子钟的设计1.docx》由会员分享,可在线阅读,更多相关《基于DS1302和LCD1602的数字电子钟的设计1.docx(19页珍藏版)》请在冰豆网上搜索。
基于DS1302和LCD1602的数字电子钟的设计1
实习报告
实习名称:
专业综合实践
学生姓名:
学院名称:
电气与信息工程学院
专业班级:
电子XX41
学号:
10位学号
成绩评定
考核
内容
实习
表现
实习
报告
实习成果
或答辩
综合评
定成绩
成绩
2011年7月20日
实习纪律要求和成绩考核办法
(纪律要求和成绩考核办法在封皮背面打印)
1.实习必须听从教师指导,严格遵守安全操作规程。
不准违规操作,未经指导教师允许不准启动任何非自用设备、仪器、工具等;操作项目和内容必须按实习要求进行,特别要注意防止电烙铁烧烫伤、不用时要及时切断电源。
2.实习教室内不准吸烟、吃零食,不准带无关人员到实习教室活动,否则扣平时表现分。
3.参加本次实习时间不足三分之二或旷课3天以上者,不得参加本次考核,按不及格处理。
4.病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。
5.实习过程考核和实习成绩在教师手册中要有记载。
6.实习成绩的考核由指导教师根据实习表现(出勤、遵守纪律情况等)、实习报告、实习成果、现场操作、口试或笔试等几个方面,给出各项成绩或权重,综合后给出实习总成绩。
该实习经考核教研室主任审核,主管院长审批备案。
7.成绩评定采用五级分制,即优、良、中、及格、不及格。
8.实习结束一周内,指导教师提交实习成绩和实习总结。
实习报告要求
实习报告内容、格式各专业根据实习类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。
注意:
1.实习任务书和实习指导书在实习前发给学生,实习任务书放置在实习报告封面后和正文目录前。
2.为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采用宋体五号字)或手写,左侧装订,订两个钉。
基于单片机和DS1302的电子钟数字钟的设计
斧头帮2010-05-17
Proteus仿真图:
C程序:
/*****************************************************
程序名称:
基于单片机和时钟芯片DS1302的电子时钟
程序功能:
时钟芯片采用DS1302
显示采用液晶屏LCD1602
初始时间2010-06-0112:
00
程序作者:
斧头帮2010.05.17
***************************************************/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
/***********************************************************************
以下是DS1302芯片的操作程序
************************************************************************/
ucharcodedigit[10]={"0123456789"};//定义字符数组显示数字
sbitDATA=P1^1;//位定义1302芯片的接口,数据输出端定义在P1.1引脚
sbitRST=P1^2;//位定义1302芯片的接口,复位端口定义在P1.1引脚
sbitSCLK=P1^0;//位定义1302芯片的接口,时钟输出端口定义在P1.1引脚
/*****************************************************
函数功能:
延时若干微秒
入口参数:
n
***************************************************/
voiddelaynus(ucharn)
{
uchari;
for(i=0;i ; } /***************************************************** 函数功能: 向1302写一个字节数据 入口参数: x ***************************************************/ voidWrite1302(uchardat) { uchari; SCLK=0;//拉低SCLK,为脉冲上升沿写入数据做好准备 delaynus (2);//稍微等待,使硬件做好准备 for(i=0;i<8;i++)//连续写8个二进制位数据 { DATA=dat&0x01;//取出dat的第0位数据写入1302 delaynus (2);//稍微等待,使硬件做好准备 SCLK=1;//上升沿写入数据 delaynus (2);//稍微等待,使硬件做好准备 SCLK=0;//重新拉低SCLK,形成脉冲 dat>>=1;//将dat的各数据位右移1位,准备写入下一个数据位 } } /***************************************************** 函数功能: 根据命令字,向1302写一个字节数据 入口参数: Cmd,储存命令字;dat,储存待写的数据 ***************************************************/ voidWriteSet1302(ucharCmd,uchardat) { RST=0;//禁止数据传递 SCLK=0;//确保写数居前SCLK被拉低 RST=1;//启动数据传输 delaynus (2);//稍微等待,使硬件做好准备 Write1302(Cmd);//写入命令字 Write1302(dat);//写数据 SCLK=1;//将时钟电平置于已知状态 RST=0;//禁止数据传递 } /***************************************************** 函数功能: 从1302读一个字节数据 入口参数: x ***************************************************/ ucharRead1302(void) { uchari,dat; delaynus (2);//稍微等待,使硬件做好准备 for(i=0;i<8;i++)//连续读8个二进制位数据 { dat>>=1;//将dat的各数据位右移1位,因为先读出的是字节的最低位 if(DATA==1)//如果读出的数据是1 dat|=0x80;//将1取出,写在dat的最高位 SCLK=1;//将SCLK置于高电平,为下降沿读出 delaynus (2);//稍微等待 SCLK=0;//拉低SCLK,形成脉冲下降沿 delaynus (2);//稍微等待 } returndat;//将读出的数据返回 } /***************************************************** 函数功能: 根据命令字,从1302读取一个字节数据 入口参数: Cmd ***************************************************/ ucharReadSet1302(ucharCmd) { uchardat; RST=0;//拉低RST SCLK=0;//确保写数居前SCLK被拉低 RST=1;//启动数据传输 Write1302(Cmd);//写入命令字 dat=Read1302();//读出数据 SCLK=1;//将时钟电平置于已知状态 RST=0;//禁止数据传递 returndat;//将读出的数据返回 } /***************************************************** 函数功能: 1302进行初始化设置 ***************************************************/ voidInit_DS1302(void) { WriteSet1302(0x8E,0x00);//根据写状态寄存器命令字,写入不保护指令 WriteSet1302(0x80,((0/10)<<4|(0%10)));//根据写秒寄存器命令字,写入秒的初始值 //'/'除法运算,取整;'%'取模运算,取余 //数据前四位为十位,后四位为个位,详见寄存器表 WriteSet1302(0x82,((0/10)<<4|(0%10)));//根据写分寄存器命令字,写入分的初始值 WriteSet1302(0x84,((12/10)<<4|(12%10)));//根据写小时寄存器命令字,写入小时的初始值 WriteSet1302(0x86,((01/10)<<4|(01%10)));//根据写日寄存器命令字,写入日的初始值 WriteSet1302(0x88,((06/10)<<4|(06%10)));//根据写月寄存器命令字,写入月的初始值 WriteSet1302(0x8c,((10/10)<<4|(10%10)));//根据写小时寄存器命令字,写入小时的初始值 } /******************************************************************************* 以下是对液晶模块的操作程序 *******************************************************************************/ sbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚 sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚 sbitE=P2^2;//使能信号位,将E位定义为P2.2引脚 sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚 /***************************************************** 函数功能: 延时1ms (3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒 ***************************************************/ voiddelay1ms() { unsignedchari,j; for(i=0;i<10;i++) for(j=0;j<33;j++) ; } /***************************************************** 函数功能: 延时若干毫秒 入口参数: n ***************************************************/ voiddelaynms(unsignedcharn) { unsign
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS1302 LCD1602 数字 电子钟 设计