机电电子钟范本李忠宝.docx
- 文档编号:26149123
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:95.14KB
机电电子钟范本李忠宝.docx
《机电电子钟范本李忠宝.docx》由会员分享,可在线阅读,更多相关《机电电子钟范本李忠宝.docx(15页珍藏版)》请在冰豆网上搜索。
机电电子钟范本李忠宝
机电设备单片机控制实训报告
学院:
哈尔滨职业技术学院
专业:
机电一体化技术
班级:
07机电三班
学号:
107060923003
学生姓名:
李忠宝
实训地点:
新实训楼309
指导教师:
梁荫
成绩:
2009年12月07日—2009年12月12日
一、设计任务
利用伟福Lab200P实验系统硬件电路,设计一个电子时钟,实现24小时计时。
并且可以进行时与分位的时间设定。
显示格式如下:
XXXXXX
时分秒
二、硬件电路
1、地址的确定
本次设计采用Lab2000P系统采用的是总线结构的硬件电路,如图1所示。
通过分析确定总线地址可以为:
段码地址为X004H,位码或键盘列线地址为X002。
此处X是由KEY/LEDCS决定,KEY/LEDCS应当接到相应的138地址译码上。
例如,将KEY/LEDCS接到CS0上,则段码地址为08004H,位码地址为08002H。
图1 Lab2000P系统采用的是总线结构的硬件电路
2、字型码表
本设计的硬件采用共阴极数码管,高电平点亮,0-9的字形码如下:
显示字形gfedcba段码显示字形gfedcba段码
001111113fh1000011006h
210110115bh310011114fh
4110011066h511011016dh
611111017dh7000011107h
811111117fh911011116fh
三、设计原理
1、1秒定时的实现
系统的时钟频率为6MHz,则机器周期为2μs。
通过定时计数器的设置,实现40ms的定时,累计50次实现1秒定时。
40ms的定时初值为20000=45536=BIEOH。
2、时分秒计时的设计
选择三个内部数据存储器作为计时用的时分秒单元。
在中断子程序中对40ms累积25次即满1秒后对秒计数单元+1,秒单元满60则清零向分单元+1,分单元满60则清零向时单元+1,时单元满24则时单元清零。
中断子程序流程图如图2所示。
图2 中断子程序流程图
中断子程序清单
;;;;;;;;;;中断子程序;;;;;;;;;;;;;;;;;
;;;;;;;;;;;功能:
计时结果时分秒分别存放在40H、41H、42H单元中;;;;;;;;;;;;;;;;;;;;
org0100h
int_t0:
PUSHA
PUSHPSW
movth0,#0b1h
movtl0,#0e0h;20ms定时
incr7
cjner7,#25,next;1s定时
movr7,#00
cplp1.1
incsecond;秒单元+1
movr6,second
cjner6,#60,next
movsecond,#00;满60秒,秒单元42h清零
incminute;满60秒,分单元41h+1
movr6,minute
cjner6,#60,next
jcnext
movminute,#00;满60分,分单元41h清零
inchour;满60分,时单元40h+1
movr6,hour
cjner6,#24,next
jcnext
movhour,#00;满24小时,时单元40h清零
next:
POPPSW
POPA
reti
3、六位显示子程序的设计
本设计采用动态显示方式点亮代表“时分秒”位的6个共阴极数码管。
6LED数码管的采用一个I\0接口作为段码控制,用过另一个1\0口控制6个数码管轮流点亮,当轮流点亮的频率足够高时,由于视觉暂留效应和数码管的余晖效应,可以看到稳定点亮的现象。
动态显示流程图如图3所示。
图3动态显示子程序流程图
;;;;;;;;;;;动态显示子程序;;;;;;;;;;;;;;
;;;;;;;;;功能:
显示70h-75h单元中的阿拉伯数据;;;;;;
;;;;;;;;;;硬件连接:
cs0接key_cs;;;;;
Ledbufequ70h
Outbitequ8002h
Outsegequ8004h
led:
movr0,#ledbuf;指向显示首单元
movr1,#00100000b;从左至右显示
movr2,#6
ledloop:
movdptr,#outbit
mova,#00
movx@dptr,a;熄灭
mova,@r0
movdptr,#outseg
movx@dptr,a;送字型码
mova,r1
movdptr,#outbit
movx@dptr,a;送位码
mova,r1
rra
movr1,a;移位
incr0;指向下一个显示单元
djnzr2,ledloop
ret
LEDMAP:
;八段管显示码0-9
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
end
;;;;;;;;;;;功能:
显示70H~75H单元中的字型码,高位对应50h;;;;;;;;;;
4、字型码子程序设计
显示子程序可以将6个显示单元中的字形码输出到LED显示器。
本子程序用于将时分秒三个单元中的数据拆开,每个单元拆为十位与个位,并将它们的字形码分别存入6个显示单元。
选择40H~42H作为时分秒单元,选择70H~75H作为字型码存放的显示单元。
子程序流程图如图4所示。
图4拆数_字形码子程序流程图
拆数_字形码子程序清单:
;;功能:
将时分秒单元40h~42h中的数据拆分为十进制数据,并将字型码存放在70h~75h单元中;;
Hourequ40h;定义秒单元
Minuteequ41h;定义分单元
Secondequ42h;定义时单元
Ledbufequ70h
sled:
mova,second
movb,#10
divab;拆秒单元
movdptr,#LEDMAP
movca,@a+dptr
movledbuf+4,a;查找秒单元送高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+5,a;查找秒单元低位字形码
;;
mled:
mova,minute
movb,#10
divab;拆分单元
movdptr,#LEDMAP
movca,@a+dptr
movledbuf+2,a;查找分单元送高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+3,a;查找分单元高位字型码
;;
hled:
mova,hour;
movb,#10
divab;拆时单元
movdptr,#LEDMAP
movca,@a+dptr
movledbuf+0,a;查找时单元高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+1,a;查找时单元高位字型码
ret
四、主程序流程图
主程序流程图如图5所示。
图5主程序流程图如
六、程序清单
outbitequ08002h;位控制口
outsegequ08004h;段码控制口
hourequ40h;小时
minuteequ41h;分钟
secondequ42h;秒
ledbufequ70h;显示缓冲
org0000h
ljmpmain
org0003h
incminute
reti
org000bh
ljmpint_t0
org0013h
inchour
reti
org0100h
int_t0:
PUSHA
PUSHPSW
movth0,#0b1h
movtl0,#0e0h;20ms定时
incr7
cjner7,#25,next;1s定时
movr7,#00
cplp1.1
incsecond;秒单元+1
movr6,second
cjner6,#60,next
movsecond,#00;满60秒,秒单元42h清零
incminute;满60秒,分单元41h+1
movr6,minute
cjner6,#60,next
jcnext
movminute,#00;满60分,分单元41h清零
inchour;满60分,时单元40h+1
movr6,hour
cjner6,#24,next
jcnext
movhour,#00;满24小时,时单元40h清零
next:
POPPSW
POPA
reti
org0200h
main:
movtmod,#01h;定时计数器0初始化
movth0,#0b1h
movtl0,#0e0h
movr7,#00h;50次计数单元
movminute,#00
movsecond,#00
movhour,#00
setbea
setbet0
setbtr0;启动计数
;;;;;;;;;;;;;;;;;;;;
setbex0;开外中断0
setbit0;外中断0边沿触发
setbex1;开外中断1
setbit1;外中断1边沿触发
k:
lcallsled;取得时分秒单元字型码
lcallled;显示
ljmpk
;;;;;;;;;;;;;;;;;;;
;;;;将时分秒单元40h41h42h中的数据拆分为十进制数据,并将字型码存放在70~75单元中;
;;;;;;;;;;;;;;;;
sled:
mova,second
movb,#10
divab;拆秒单元
movdptr,#LEDMAP
;mova,b
movca,@a+dptr
movledbuf+4,a;查找秒单元高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+5,a;查找秒单元低位字形码
;;
mled:
mova,minute
movb,#10
divab;拆分单元
movdptr,#LEDMAP
;mova,b
movca,@a+dptr
movledbuf+2,a;查找分单元高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+3,a;查找分单元高位字型码
;;
hled:
mova,hour;
movb,#10
divab;拆时单元
movdptr,#LEDMAP
;mova,b
movca,@a+dptr
movledbuf+0,a;查找时单元高位字型码
movdptr,#LEDMAP
mova,b
movca,@a+dptr
movledbuf+1,a;查找时单元高位字型码
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;显示70h-75h单元中的阿拉伯数据
;;;;;;;;
led:
movr0,#ledbuf;指向显示首单元
movr1,#00100000b;从左至右显示
movr2,#6
ledloop:
movdptr,#outbit
mova,#00
movx@dptr,a;熄灭
mova,@r0
movdptr,#outseg
movx@dptr,a;送字型码
mova,r1
movdptr,#outbit
movx@dptr,a;送位码
mova,r1
rra
movr1,a;移位
incr0;指向下一个显示单元
djnzr2,ledloop
ret
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
end
七、总结
该电子钟稳定性好,生产成本较低,使用方便,精度较高。
该时钟采用定时计数器中断6MHZ晶振的振荡电路高精度,测量范围24小时,测量精度到秒,最低精度不差0.1MS,使用LCD液晶模块显示,可以与PC机进行串行通信。
设计给出了软硬件系统的部分电路,个模块的流程图,功能说明及子程序介绍。
该电路设计新颖、功能强大、可扩展性强。
目前,由各种单片机定时计数器中断构成的电子时钟,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。
本次实训重点介绍单片机定时计数器中断系统以及按键和数码显示器构成的基于单片机的数字电子时钟的工作原理。
随着电子工业的发展,要求电子元器件向小型化和集成化方向发展,电子时钟也要向这个方向发展。
我要感谢我的导师梁荫老师在设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在设计期间所给予我得帮助。
借此机会,向您们表示由衷的感激。
同时还要感谢系实验室在设计期间提供给我们优越的实验条件。
同时,我要感谢和我一起做设计的同学。
在设计的短短一周里,你们给我提出很多宝贵的意见,给了我不少帮助和工作上的支持,在此也真诚的谢谢你们。
同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电 电子钟 范本 李忠宝