单片机课程设计简单电子钟设计.docx
- 文档编号:26943784
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:25
- 大小:136.33KB
单片机课程设计简单电子钟设计.docx
《单片机课程设计简单电子钟设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计简单电子钟设计.docx(25页珍藏版)》请在冰豆网上搜索。
单片机课程设计简单电子钟设计
课程设计题目:
简单电子钟设计
一、设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据
查阅计数器/定时器,可编程并行接口芯片8255,或其他相关资料。
启动定时器,累计秒,分(时),并显示。
三、设计的主要内容及要求
内容:
利用单片机原理试验箱的发光数码管显示单元,把时间换显示在LED数码管上。
要求:
1)走时准确。
2)显示无误。
四、对设计说明书撰写内容、格式、字数的要求
1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:
目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4.课程设计说明书(论文)装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;
提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
六、时间进度安排;
顺序
阶段日期
计划完成内容
备注
1
1.5天
查阅资料及程序设计
2
2.5天
上机调试程序
3
0.5天
成绩评定
4
0.5天
书写报告
七、主要参考资料(文献)。
1《单片机初级教程》何立民北京航空航天大学出版社
2《单片机基础》李广弟北京航空航天大学
3《51系列单片机C程序设计与应用案例》于京中国电力出版社
4《单片机课程设计实例指导》李光飞...[等]编著北京航空航天大学出版社
5《例说8051》张义和陈敌北人民邮电出版社
6《8051单片机课程设计实训教材》陈明荧清华大学出版社
7《单片机课程设计》周向红主编华中科技大学出版社
8《单片机应用实训教程》张永枫主编西安电子科技大学出版社
沈阳工程学院
单片机技术及应用课程设计成绩评定表
系(部):
电气工程系班级:
供电101学生姓名:
孙家驹
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价
内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以8)
分
加权分合计
评阅教师签名:
年月日
课程设计总评成绩
分
目录
1设计原理说明………….….………………………….….…….…………….1
2主要元器件介绍……………..….…..…………………………………...….2
2.1芯片8255……………………………………………………...………….2
2.1.18255外部引线…………………………..……….…......……..…2
2.1.28255的结构…………………………………………….....……..3
2.1.38255工作方式………………………………………………...…3
2.1.48255初始化…………………………………………………...…4
2.1.58255的方式控制字及状态字...............................................4
2.2LED数码显示管....................................................................................5
2.2.1数码管连接电路............................................................................5
2.2.2LED数码管对应段码及数值....................................................6
3设计原理流程图.............………..….…………………….…..….….....…….7
4源程序清单及注释…………..……….…..….…………………….…..…..…8
5源程序指令说明………..............………..….….….……….…..….…..…12
总结………………………………………………………………………………...17
主要参考文献………………….……………………….……………………...18
1程序设计原理
利用单片机和LED数码管来显示时。
分。
秒的数字钟。
根据时钟的总体设计思想把程序分成几个独立的功能模块,即:
主程序模块,显示模块,时钟模块,时钟调整模块,以及中断模块。
明确他们之间的关系,并确定各模块的出入口地址,以便能连续执行。
划分完成后,画出各个功能模块的程序流程图,并按照程序流程图设计程序。
主程序:
完成系统的初始化,设定控制参数,包括时钟及其时,分,秒的地址。
设置定时器的工作模式,开中断以及设置循环调用子程序指令。
显示程序:
将时,分,秒分别编址,其个位和十位送入同一单元,然后依次送入初始数据,将数据和地址送到对应的段口和位口。
时钟调整程序:
关定时器T0中断,关闭定时器T0,调用1秒延时程序,键按下时间小于1秒,关闭显示(省电)进入调时状态,赋闪烁定时初值
时钟程序:
利用定时器计数,并定义初始值,设定当五十毫秒循环二十次时,秒的个位加一并使其定时器重新计数,当秒计时到六十时,分位加一,并将秒位清零,当分位计到六十时向时位进位,并且分位清零。
当时位计到二十四时清零,时分秒再次从零显示。
中断程序:
完成重新启动T0,进行现场保护,调用时钟程序等功能。
2主要器件介绍
2.1可编程并行芯片8255
8255是Intel公司为其80系列微处理器生产的通用可编程并行输入输出接口。
它具有很强的功能,在使用中可利用软件编程来指定它该完成的功能。
2.1.1外部引线
可编程并行芯片8255的外部引线如图2.1.1.1所示
图2.1.1.1
D0~D7为双向数据信号线,用来传送数据和控制字。
RD为读信号线,与其他信号线一起实现对8255接口的读操作。
通常接系统总线的IOR信号。
WR为写信号线,与其他信号一起实现对8255的写操作。
通常接系统总线的IOW信号。
CS为片选信号线,当它为低电平时才能选中该8255芯片,也才能对8255进行操作。
A0,A1为口地址选择信号线。
8255内部有三个口:
A口,B口,C口,还有一个控制寄存器,它们可由程序寻址。
A0,A1上的不同编码可分别寻址上述三个口和一个控制寄存器,具体规定如下:
A1
A0
选择
0
0
A口
0
1
B口
1
0
C口
1
1
控制寄存器
通常A0,A1分别接系统总线的A0,A1,它们与CS一起来决定8255的接口地址。
RESET为复位输入信号。
此端上的高电平可使8255复位。
复位后,8255的A口,B口,C口均被定为输入状态。
PA0~PA7为A口的8条输入输出信号线。
该口的这8条线是工作于输入、输出还是双向方式可又软件编程来决定。
PB0~PB7为B口的8条输入输出信号线。
利用软件编程可指定这8条线是输入还是输出。
PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
2.1.28255的结构
8255由4部分组成:
(1)数据总线缓冲器
(2)三个8位端口PA、PB、PC,其中PC口可分为两个4位端口,可分别同端口A和端口B配合使用,可以用作控制信号输出等。
(3)A组和B组的控制电路。
(4)读/写控制逻辑。
2.1.38255的工作方式
8255有三种工作方式:
方式0、方式1和方式2。
(1)方式0——基本输入/输出
在此工作方式下,每个口都作为基本的输入输出口,C口的高4位和低4位以及A口和B口都可独立地设置为输入口和输出口。
在此工作方式下:
输出的数据被锁存,而输入的数据不被锁存。
(2)方式1——选通输入/输出
此工作方式下,三个端口分为A、B两组,A、B两个口仍用作数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。
在8255中,联络信号是3位,两个数据口,共用去C口的6位,剩余的两位仍可作为数据位使用。
(3)方式2——双向选通输入/输出此工作方式只限于A组使用,它用A口的8位数据线,用C口的5位进行联络。
工作时输入输出都能被锁存。
当A口工作在方式2时,B口可以在方式0或方式1工作。
2.1.48255的初始化
在使用8255时,首先要由CPU对8255写入控制命令字。
有两种控制命令字:
方式选择控制字和C口按位置位/复位控制字。
为了能使8255的A口工作输出状态控制LED灯亮灭以及B口工作于输入状态采集亮灭信号,必须对其初始化,初始化程序如下:
MOVDX,0606H
MOVAL,80H
OUTDX,AL
2.1.58255的方式控制字及状态字
8255有很强的功能,能够工作在各种工作方式下。
在应用过程中,可以利用软件编程来指定8255的工作方式。
也就是说,只要将不要的控制字装入芯片中的控制寄存器,即可确定8255的工作方式。
(1)控制字
8255的控制字有8位二进制数构成,各位的控制功能如图4.1.4.1所示。
当控制字bit7=1是,控制字的bit6-bit0用来控制B组,包括B口的8位和C口的低4位。
当控制字的bit7=0时,指定该控制字仅对C口进行位操作——按位置位或复位操作。
对C口按位置/复位操作的控制字格式如图4.1.4.2所示。
如前面所叙,在必要时,可利用C口的按位置/复位控制字来使C口的某一位输出0或1。
图2.1.5.18255的控制字格式
图2.1.5.2C口的按位操作控制字格式
2.2LED数码显示管
2.2.1数码管的连接电路:
此为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S51控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。
由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的。
2.2.2.LED数码管对应段码及数值:
P1口对应段码及数值:
显示数字
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
16进制代码
dp
g
f
e
d
c
b
a
0
0
0
1
1
1
1
1
1
3FH
1
0
0
0
0
0
1
1
0
06H
2
0
1
0
1
1
0
1
1
5BH
3
0
1
0
0
1
1
1
1
4FH
4
0
1
1
0
0
1
1
0
66H
5
0
1
1
0
1
1
0
1
6DH
6
0
1
1
1
1
1
0
1
7DH
7
0
0
0
0
0
1
1
1
07H
8
0
1
1
1
1
1
1
1
7FH
9
0
1
1
0
1
1
1
1
6FH
3.程序流程图
1系统主程序流程图
4.源程序清单及注释
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;中断入口程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG0000H;程序执行开始地址
LJMPSTART;跳到标号START执行
ORG0003H;外中断0中断程序入口
RETI;外中断0中断返回
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTTO执行
ORG0013H;外中断1中断程序入口
RETI;外中断1中断返回
ORG001BH;定时器T1中断程序入?
ORG0023H;串行中断程序入口地址
RETI;串行中断程序返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;主程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
START:
MOVR0,#70H;清70H-7AH共11个内存单元
MOVR7,#0BH
;clrP3.7;
CLEARDISP:
MOV@R0,#00H;
INCR0;
DJNZR7,CLEARDISP;
MOV20H,#00H;清20H(标志用)
MOV7AH,#0AH;放入"熄灭符"数据
MOVTMOD,#11H;设T0、T1为16位定时器
MOVTL0,#0B0H;50MS定时初值(T0计时用)
MOVTH0,#3CH;50MS定时初值
MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)
MOVTH1,#3CH;50MS定时初值
SETBEA;总中断开放
SETBET0;允许T0中断
SETBTR0;开启T0定时器
MOVR4,#14H;1秒定时用初值(50MS×20)
START1:
LCALLDISPLAY;调用显示子程序
SJMPSTART1;P3.7口为1时跳回START1
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;1秒计时程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;T0中断服务程序
INTT0:
PUSHACC;累加器入栈保护
PUSHPSW;状态字入栈保护
CLRET0;关T0中断允许
CLRTR0;关闭定时器T0
MOVA,#0B7H;中断响应时间同步修正
ADDA,TL0;低8位初值修正
MOVTL0,A;重装初值(低8位修正值)
MOVA,#3CH;高8位初值修正
ADDCA,TH0;
MOVTH0,A;重装初值(高8位修正值)
SETBTR0;开启定时器T0
DJNZR4,OUTT0;20次中断未到中断退出
ADDSS:
MOVR4,#14H;20次中断到(1秒)重赋初值
MOVR0,#71H;指向秒计时单元(71H-72H)
ACALLADD1;调用加1程序(加1秒操作)
MOVA,R3;秒数据放入A(R3为2位十进制数组合)
CLRC;清进位标志
CJNEA,#60H,ADDMM;
ADDMM:
JCOUTT0;小于60秒时中断退出
ACALLCLR0;大于或等于60秒时对秒计时单元清0
MOVR0,#77H;指向分计时单元(76H-77H)
ACALLADD1;分计时单元加1分钟
MOVA,R3;分数据放入A
CLRC;清进位标志
CJNEA,#60H,ADDHH;
ADDHH:
JCOUTT0;小于60分时中断退出
ACALLCLR0;大于或等于60分时分计时单元清0
MOVR0,#79H;指向小时计时单(78H-79H)
ACALLADD1;小时计时单元加1小时
MOVA,R3;时数据放入A
CLRC;清进位标志
CJNEA,#24H,HOUR;
HOUR:
JCOUTT0;小于24小时中断退出
ACALLCLR0;大于或等于24小时小时计时单元清0
OUTT0:
MOV72H,76H;中断退出时将分、时计时单元数据移
MOV73H,77H;入对应显示单元
MOV74H,78H;
MOV75H,79H;
POPPSW;恢复状态字(出栈)
POPACC;恢复累加器
SETBET0;开放T0中断
RETI;中断返回
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;加1子程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ADD1:
MOVA,@R0;取当前计时单元数据到A
DECR0;指向前一地址
SWAPA;A中数据高四位与低四位交换
ORLA,@R0;前一地址中数据放入A中低四位
ADDA,#01H;A加1操作
DAA;十进制调整
MOVR3,A;移入R3寄存器
ANLA,#0FH;高四位变0
MOV@R0,A;放回前一地址单元
MOVA,R3;取回R3中暂存数据
INCR0;指向当前地址单元
SWAPA;A中数据高四位与低四位交换
ANLA,#0FH;高四位变0
MOV@R0,A;数据放入当削地址单元中
RET;子程序返回
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;清零程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;对计时单元复零用
CLR0:
CLRA;清累加器
MOV@R0,A;清当前地址单元
DECR0;指向前一地址
MOV@R0,A;前一地址单元清0
RET;子程序返回
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;显示程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示数据在70H-75H单元内,用六位LED共阳数码管显示,P0口输出段码数据,P3口作
;扫描控制,每个LED数码管亮1MS时间再逐位循环。
DISPLAY:
MOVR1,#70H;指向显示数据首址
MOVR5,#0FEH;扫描控制字初值
PLAY:
MOVA,R5;扫描字放入A
MOVP2,A;从P2口输出
MOVA,@R1;取显示数据到A
MOVDPTR,#TAB;取段码表地址
MOVCA,@A+DPTR;查显示数据对应段码
MOVP1,A;段码放入P0口
LCALLDL1MS;显示1MS
INCR1;指向下一地址
MOVA,R5;扫描控制字放入A
JNBACC.5,ENDOUT;ACC.5=0时一次显示结束
RLA;A中数据循环左移
MOVR5,A;放回R5内
AJMPPLAY;跳回PLAY循环
ENDOUT:
SETBP2.5;一次显示结束,P2口复位
MOVP1,#0FFH;P0口复位
RET;子程序返回
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;1MS延时程序,LED显示程序用
DL1MS:
MOVR6,#00H
DL1:
DJNZR6,DL1255*2*2微秒=1020微秒≈1MS
;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象
DS20MS:
ACALLDISPLAY
ACALLDISPLAY
ACALLDISPLAY
RET
DL05S:
MOVR3,#20H;8毫秒*32=0.196秒
DL05S1:
LCALLDISPLAY
DJNZR3,DL05S1
RET
END;程序结束
5.源程序指令说明
1控制程序转移指令
(1)AJMP(PC)(PC)+2
2KB字节范围内的无条件跳转指令,是绝对转移。
执行该指令时,先将PC加2,然后把11位地址送入addr11,程序转移到指定的地方。
(2)SJMP(PC)(PC)+2
(PC)(PC)+相对地址
相对转移指令,也叫无条件短转移指令。
执行时在PC加2后,把指令的带符号的偏移字节数(相对地址)加到PC上,并计算出转移地址。
(3)CJNE比较不相等转移指令
CJNEA,direct,rel
若(direct)≠(A)则(PC)(PC)+3+rel
CJNEA#data,rel
CJNERn,#data,rel
CJNE@Ri,#data,rel
(4)DJNZ减1不为0转移指令
DJNZRn,rel;(Rn)(Rn)-1
;若(Rn)=0,则(PC)(PC)+2
;若(Rn)≠0,则(PC)(PC)+2+rel
DJNZRn,rel;(direct)(direct)-1
;若(direct)=0(PC)(PC)+2
;若(direct)≠0,(PC)(PC)+2+rel
(5)JNZ条件转移指令:
累加器不为零时转移
若(A)=0,则(PC)(PC)+2
若(A)≠0,则(PC)(PC)+2+rel
2调用子程序指令
(1)LCALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 简单 电子钟 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)