《单片机》
**题目: 电子实时时钟/万年日历系统。
专业: 学生姓名:
提交日期 : 2009 年 12 月 14 日。
单片机实验报告。
一.实验目的:
课程标志性内容的设计理解和综合运用,鼓励独立性设计和功能扩展的创新实践。
二.功能要求:
1. 基本要求:
1) 显示准确的北京时间(时、分、秒),可用24小时制式;
2) 随时可以调校时间。
3) 增加公历日期显示功能(年、月、日),年号只显示最后两位;
4) 随时可以调校年、月、日;
5) 允许通过转换功能键转换显示时间或日期。
2. 发挥部分:
1) 减少按键个数。
三.方案考虑:
1. 硬件方案
1) 显示器采用6位led数码管(共阳),可分别显示时间或日期;
2) 显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用74ls244或者晶体管;
3) 使用五个按键,分别控制模式、调整、复位。
2. 软件方案
设计思路:a. “时钟”准时间由单片机内部的定时中断提供,定时时间是“秒”的整除数,长短适宜。最长不超过16位定时器的最长定时时间;最短不少于中断服务程序的执行时间。
通常基准时间越短,越有利于提高时钟的运行精确度。我们的实验定时10ms。
b. 用一个计数器(例如用片内ram的41h单元)对定时中断的次数进行计数,从而可以实现“秒”定时,同理可以实现“分”定时和“时”定时,甚至于“日”、“月”、“年”定时。
c. led数码管显示器采用“动态扫描驱动”时要注意:驱动信号的维持时间必须大于“起辉时间”(电流大起辉时间短),而驱动信号的间歇时间必须小于“余辉时间”(电流大余辉时间长),但驱动电流大小受硬件电路能力和led数码管极限功耗的制约。
d. 动态扫描显示方式在更新显示内容时,因led数码管余辉的存在可能会造成显示字符的模糊,新内容写入显示器之前须将所有的led数码管熄灭。
e. 关于自动识别“月大、月小”和“平年、润年”问题的考虑:
月大、月小:
1~7月:逢单月为31天;逢双月为30天,其中2月另行处理。
8~12月:逢单月为30天;逢双月为31天。
平年、闰年:
仅仅处理2月份的天数:平年的2月份天数为28天,闰年的2月份天数为29天。
4、元器件清单。
5、电路图。
6.程序说明:
程序中使用的地址标志说明:
7fh:flag1,当flag1=0时表示显示时间,当flag1=1时表示显示日期。
7eh:flag11,表示选中日期显示的年、月、日中的哪一位的标志位。
30h:flag2,表示选中时间显示的时、分、秒中的哪一位的标志位。
31h:flagn,表示判断平年、闰年的标志位。
32h、33h:与秒的两位显示有关。
34h、35h:与分的两位显示有关。
36h、37h:与时的两位显示有关。
3bh、3ch:与日的两位显示有关。
3dh、3eh:与月的两位显示有关。
3fh、40h:与年的两位显示有关。
38h、39h、3ah:分别存放秒、分、时内容。
43h、44h、45h:分别存放日、月、年内容。
41h:存放秒定时器的计数次数。
42h:用做数码管位选。
以下为程序流程图:
源程序:程序开始。
org0000h初始化入口。
ljmp begian
org 000bh中断入口。
ljmp irq调中断子程序。
org 0020h主程序开始地址。
初始化程序。
将数据区和标志位都进行初始化flag1=0;flag11=0;flag2=0;flagn=0
32h~~~3ah,3ch,3eh,40h都为00h
begian: clr7fhflag1显示日期或者时间的标志取值0,1
clr 7eh
clr 31h
clr 30h
clr amov tmod01h ;设置t0工作方式。
mov r030h ;标志和数据缓冲区清零。
movb11h ;
lop1: mov @r0 , a
incr0djnz blop1
mov 3bh01h ;日期为1日。
mov 43h1
mov 3dh01h ;月份为1月。
mov 44h1
mov 3fh09h ;年份为05年。
mov 45h9
mov 41h100 ;"秒"定时计数器计数初值。
mov th00d8h ;t0定时10ms时间常数。
mov tl00f0h ;(fosc=12mhz)
setb tr0启动t0计数。
setb et0允许t0中断。
setb ea开系统中断。
初始化结束。
检查有无键按下(这里作为主程序)
没有键按下就调用显示子程序;有键按下就判断是哪个键按下,然后调用相应。
子程序,各个子程序返回后重新检查有无键按下;如此循环。
keychk: mov ap1读键盘。
cjne a0ffh , lop2 ;有键按下则转。
lcall display用来显示时间或日期。
sjmp keychk转回去读键盘。
lop2: mov r3a保键号。
wait: movap1
cjne a0ffh , wait没有松键就等。
mov ar3
jnbacc.0 , lop4第零键按下就转。
jnbacc.1 , lop5第一键按下就转。
jnbacc.2 , lop6第二键按下就转。
jnb acc.3 , lop20第三键按下就转。
sjmp keychk不是所要的按键就转。
lop4: lcall key0调第零键功能子程序。
sjmp keychk
lop5: lcall key1调第一键功能子程序。
sjmp keychk
lop6: lcall key2调第二键功能子程序。
sjmp keychk
lop20: lcall key3
sjmp keychk
ret主程序到此结束。
display子程序。
判断flag1,为0就调用ttime子程序;为1就调用date子程序。
display: jb7fhlop7flag1=1就转。
lcall time调用time子程序。
retlop7: lcall date调用date子程序。
retkey0子程序。
按下此键用于切换显示时间或者显示日期。
按一下key0键,flag1取反;接着判flag1是0还是1;然后调用相应子程序。
key0: cpl 7fhflag1取反。
jb7fhlop8flag1=1转去调date
lcall timeflag1=0调time
retlop8: lcall date调用date子程序。
retkey1子程序。
判flag1;为1则flag11取反,返回;为0则flag2加1,接着判flag2>2否?
是的话flag2返回0值返回,否的话直接返回。
key1: jb7fhlop9flag1=1就转。
mov a30h
add a1
mov 30haflag2+1
cjne a3lop10 ;flag2不等3就转。
mov a0flag2大于2则回0
mov 30ha送回flag2标志。
retlop9: mov a, 7eh
add a , #
单片机大作业报告
温度控制系统设计。班级 1302041学号 姓名 陈串串。1设计要求。项目简介 温度的测量和控制对人类日常生活 工业生产 气象预报 物资仓储等都起着极其重要的作用。在许多场合,及时准确获得目标的温度 湿度信息是十分重要的,近年来,温湿度测控领域发展迅速,并且随着数字技术的发展,温湿度的测控芯片也相应...
单片机应用大作业
单片机。大作业报告。目录。一 设计任务和性能指标 1.1设计任务 1.2性能指标 二 设计方案 三 系统硬件设计 3.1主控制器at89c52最小系统 3.2时钟电路ds1302 3.3显示电路的设计 3.4键盘接口的设计 四 系统软件设计 4.1主程序设计 4.2阴历子程序设计 4.3显示子程序设...
《单片机大作业》评分标准
评分标准。优秀 95分 1 内容完整,包含报告要求中提到的全部内容。2 原理图设计 电路功能描述正确。3 对电路进行了 结果能正确说明电路的功能。4 文字通顺,格式及标点规范。5 写作态度认真,按时圆满完成 良好 85分 1 内容完整,包含报告要求中提到的全部内容。2 原理图设计 电路功能描述基本正...