单片机课程设计电子时钟Word文件下载.docx
- 文档编号:4078976
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:17
- 大小:166KB
单片机课程设计电子时钟Word文件下载.docx
《单片机课程设计电子时钟Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电子时钟Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
目录
1设计方案-1-
1.1总体方案设计-1-
1.2键盘模块-1-
1.3去抖动设计-2-
1.4显示模块-2-
1.5门电路设计-2-
2硬件设计-3-
2.1电路图-3-
2.1Proteus仿真图-3-
3软件设计-4-
3.1主流程图-4-
3.2时间显示流程图-5-
3.3定时器中断程序-5-
3.4按键流程图-6-
总结-7-
参考文献-9-
附录-10-
1设计方案
1.1总体方案设计
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息,并通过程序控制扫描输出显示数据。
利用定时器0与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;
若秒值达到60,则将其清零,并将相应的分字节值加1;
若分值达到60,则清零分字节,并将时字节值加1;
若时值达到24,则将时字节清零。
该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。
且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
根据题目要求设计的总体框图,如图1:
图1总体框图
1.2键盘模块
键盘是人与单片机打交道的主要设备,键盘有独立式键盘和矩阵键盘,考虑到时间误差的存在以及调整时间的方便性,再加上本设计所需按键较少,因此我们采用独立式键盘。
四个键盘接于P1口,用74ls21与门接于外部中断0,实现了调整时间的快速性,当四个键盘有中断发生,首先判断四个键哪个按下,向CPU发一个中断请求信号,然后调用相应的中断程序。
1.3去抖动设计
按键的读取容易引起误动作,为了保证键识别的准确,为此需要去抖动。
去抖动有硬件和软件两种方案。
方案一可采用硬件方法,加去抖动电路;
方案二可采用软件去抖动的方法处理,在这里采用软件延时的方法来避开抖动,待信号稳定之后,再进行键扫描。
延时时间为20ms。
1.4显示模块
显示模块是本次单片机课程设计最核心的部分。
方案一:
采用LCD1602。
LCD1602为工业字符型液晶,能够同时显示16x02即32个字符。
其采用标准的16脚接口,该液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,所以可分容易的实现数字钟数码显示。
方案二:
采用LED共阴极数码管。
共阴数码管在应用时将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
基于以上分析,我们考虑到现实经济因素,所以选择了方案二。
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
1.5门电路设计
为了达到调整时间的快速性与准确性,采用中断方式,四个键盘采用与门芯片74LS21。
当四个键盘有一个按下后就会向CPU申请中断。
2硬件设计
2.1电路图
2.1Proteus仿真图
3软件设计
3.1主流程图
3.2时间显示流程图
3.3定时器中断程序
3.4按键流程图
总结
本次课程设计是用AT89C51单片机CPU及接口电路设计一个数字时钟,其核心部件是89C51,时钟的显示采用6个共阴极LED显示灯,四个开关方便的对秒、分、时分别调整,保证功能完善,工作可靠。
硬件方面:
独立式键盘可以消除时间误差的和方便时间的调整;
显示电路采用LED动态显示方式,共阴极端由P2口线控制,分为段选线和位选线,利用人的视觉停留达到显示的效果,段选线控制字符选择,位选线控制显示位的亮或暗,从而简化串行口线的连接。
软件方面:
四个键盘输入与门74LS21,其输出用作中断信号,当四个键盘有一个键按下后就会向CPU申请中断,这样就可以提高CPU工作效率,达到调整时间的快速性与准确性;
定时采用片内定时器定时,提高了电子时钟的准确度。
此时钟可以在以下几方面作调整,如:
整点报时,闹钟,显示电路可以采用点阵液晶显示模块(LCD),从而做成一个电子日历。
随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。
智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。
而传感器作为测控系统中对象信息的入口,越来越受到人们的关注。
传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次课设中的半桥电子秤就是在以上仪器的基础上设计而成的。
因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。
单片机作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。
这次单片机课程设计我们历时一个星期,期间我受益匪浅。
因为对我来说学到的不仅是那些知识,更多的是团队和合作。
一个星期前我们五个人还在为到底选哪个课题而发生分歧,最后还是在杨老师的耐心分析和指导下完成了课题的选定,但是随之而来的问题却远比我们想想的要困难的多。
自信满满的来到了实验室准备调试,但第一次就给了我们致命的打击,设计的功能不能全部实现出来,只有秒位变化正常,于是我们就拿着程序反复分析和研究,还对部分芯片改成了8051进行了更换,经过一次次的尝试之后我们调试成功了。
在一个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!
作为一名电气工程专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;
在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。
小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。
更重要的是,要从不断的失败中寻找经验,将自身的潜力发挥出来。
参考文献
[1]李华等编著,《单片机原理及应用》兰州大学出版社,2001
[2]李建忠编著,《单片机原理及应用》西安电子科技大学出版社,2008
[3]胡汉才编著,《单片机原理及其接口技术》清华大学出版社,2004
[4]贾金铃等编著,《微型计算原理及应用》重庆大学出版社,2006
[5]吴清秀,周荷琴编著,《微型计算机原理与接口技术》中国科学技术大学出版社,2004
附录
参考软件:
ORG0000H
AJMPSTART
ORG0003H
LJMPST1
ORG000BH
AJMPTT0
ORG0030H
START:
MOV30H,#00H;
秒个位内存单元
MOV31H,#00H;
秒十位内存单元
MOV32H,#00H;
分个位内存单元
MOV33H,#00H;
分十位内存单元
MOV34H,#00H;
时个位内存单元
MOV35H,#00H;
时十位内存单元
MOVTMOD,#01H;
定时器T0,工作方式1,
MOVTH0,#3CH;
定时50MS
MOVTL0,#0B0H;
MOVR0,#30H;
指针指向显示单元
MOVR5,#0FEH;
选中秒个位
MOVR1,#20;
MOV36H,#00H;
时位键盘判断时用
MOVR3,#6;
秒十位判断时用
MOVR2,#6;
分十位判断时用
MOVR4,#10;
MOV40H,#10
MOVIE,#81H;
SETBEA;
开中断
SETBET0;
开T0中断
SETBTR0;
记时开始
MAIN:
LCALLDIS
LJMPMAIN
;
#################显示子程序###################
DIS:
MOVA,R5;
先位码
MOVDPTR,#7FFFH;
位码选择p2.7
MOVX@DPTR,A
MOVA,@R0;
再段码
MOVDPTR,#TAB;
表地址
MOVCA,@A+DPTR;
查表
MOVDPTR,#0BFFFH;
段码选择p2.6
###############显示小数点###################
CJNER0,#32H,GO111;
小数点选择(R0)=/=32H转移
ORLA,#80H
GO111:
CJNER0,#34H,MIN
MIN:
MOVX@DPTR,A;
送出去显示
LCALLDELAY;
1MS延时
LCALLDELAY
LCALLDELAY
INCR0;
修改指针指向下一显示单元
也可写为XCHA,R5
JNBACC.5,LH;
判断显示完否?
?
RLA;
也可写为XCHR5,A
MOVR5,A
AJMPENR;
返回循环显示
LH:
重心定义显示指针
重设位码,形成循环ACC.0-ACC.3
ENR:
RET
###############定时中断###########################
TT0:
DJNZR1,FANHUI;
判断1秒到否?
未到跳转
INC30H;
秒个位加一
DJNZR4,FANHUI;
判断10秒到否?
INC31H;
DJNZR3,FANHUI;
INC32H
DJNZ40H,FANHUI;
MOV32H,#00H
INC33H
DJNZR2,FANHUI
MOVR2,#6
MOV33H,#00H
INC36H;
时位判断时用
MOVA,36H
CJNEA,#24,JUMP
MOV36H,#00H
JUMP:
MOVB,#10
DIVAB
MOV34H,B
MOV35H,A
FANHUI:
RETI
;
*********键盘处理程序***********
ST1:
CLREX0;
键盘1判断时用
PUSHB
PUSHACC
JBP1.0,ST2
LCALLDELAY111
JNBP1.0,$
DJNZR3,GO
MOVR3,#6
GO:
INC31H
MOVA,31H
CJNEA,#6,$+3
JCST2
MOV31H,#00H
ST2:
JBP1.1,ST3;
键盘2判断时用
JNBP1.1,$
DJNZ40H,GO1
GO1:
INC32H
MOVA,32H
CJNEA,#10,$+3
JCST3
ST3:
JBP1.2,ST4;
键盘3判断时用
JNBP1.2,$
DJNZR2,GO2
GO2:
MOVA,33H
JCST4
MOV33H,#00H
ST4:
JBP1.3,ST6;
键盘4判断时用
JNBP1.3,$
INC36H
CJNEA,#24,JUMP1
JUMP1:
ST6:
POPACC;
键盘中断返回
POPB
SETBEX0
##########延时1MS子程序###########
DELAY:
MOVR7,#02H
DE1:
MOVR6,#0FEH
DE2:
DJNZR6,DE2
DJNZR7,DE1
########键盘延时消抖程序#########
DELAY111:
MOV50H,#2;
键盘消抖程序
DE1111:
MOV51H,#255
DJNZ51H,$
DJNZ50H,DE1111
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 电子 时钟