单片机课程设计1.docx
《单片机课程设计1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计1.docx(15页珍藏版)》请在冰豆网上搜索。
单片机课程设计1
一.课程设计题目
1、作息时间控制钟
①功能要求:
时钟计时及显示(每秒刷新)、到设定时间指示灯提示(几秒)。
②原理及方法:
结合实验设备实现时硬件电路、原理、方法、说明(初始化、存储分配、工作方式)等。
③程序设计:
计时、比较、显示提示。
④调试:
遇到的问题、解决方法。
。
二.接线原理图
硬件设。
计说明
1.数码管段地址为0FFDCH,位地址为0FFDDH。
2.数码管及LED均采用共阳接法,晶振6MHZ。
三.程序设计流程框图
1.主程序
2.定时程序
3.加1程序
4.显示程序
四.程序代码
SETBP1.0;P1.0初始化,指示灯灭
MOVR2,#06H
MOVR0,#79H;数码管显示缓冲单元79H~7EH
L0:
MOV@R0,#00H;79H~7EH单元清0
INCR0
DJNZR2,L0
……………………………………………………………………………..
MOVTMOD,#01H;定时器工作方式1
MOVTL0,#0DCH;装入初值,定时125ms
MOVTH0,#0BH
CLREA;不允许中断
SETBTR0;启动定时器0
MOVR5,#08H;循环8次
L1:
JBCTF0,L2;查询TF0
AJMPL1
L2:
MOVTL0,#0DCH;装入初值,定时125ms
MOVTH0,#0BH
DJNZR5,L1;判断是否到1秒钟
…………………………………………………………………………………………………………………………
MOVR5,#08H;1秒到,重新装入循环值
MOVR0,#7AH;秒十位地址装移入R0
ACALLDAAD1;秒加1
MOVA,R4;秒数值送入A中
XRLA,#60;判断秒是否满60
JNZL4;不满60s跳到显示程序
MOV79H,#00H;秒存贮单元清0
MOV7AH,#00H
MOVR0,#7CH;分十位地址装移入R0
ACALLDAAD1;分加1
MOVA,R4;分数值送入A中
XRLA,#60;判断分是否满60
JNZL4;不满60跳到显示程序
MOV7BH,#00H;分存贮单元清0
MOV7CH,#00H
MOVR0,#7EH;时十位地址装移入R0
ACALLDAAD1;时加1
MOVA,R4;时数值送入A中
XRLA,#24;判断时是否满24
JNZL4;不满24跳到显示程序
MOV7DH,#00H;时存贮单元清0
MOV7EH,#00H
L4:
MOVDPTR,#FFDDH;秒个位显示
MOVA,#01H
MOVX@DPTR,A
MOVA,79H
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
MOVDPTR,#FFDDH;秒十位显示
MOVA,#02H
MOVX@DPTR,A
MOVA,7AH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
MOVDPTR,#FFDDH;分个位显示
MOVA,#04H
MOVX@DPTR,A
MOVA,7BH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
MOVDPTR,#FFDDH;分十位显示
MOVA,#08H
MOVX@DPTR,A
MOVA,7CH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
MOVDPTR,#FFDDH;时个位显示
MOVA,#10H
MOVX@DPTR,A
MOVA,7DH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
MOVDPTR,#FFDDH;时十位显示
MOVA,#20H
MOVX@DPTR,A
MOVA,7EH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#FFDCH
MOVX@DPTR,A
ACALLDL;延时
CJNER6,#00H,L6;R6中是延迟5秒钟的标志,为0表示5秒到
SETBP1.0;5秒到,p1.0置1,指示灯灭
……………………………………………………………………….
L6:
MOVR1,#79H;秒个位比较
CJNE@R1,#00H,L8;不等,返回
INCR1
CJNE@R1,#0AH,L8;秒十位比较,定时10秒钟
INCR1
CJNE@R1,#00H,L8;分个位比较
INCR1
CJNE@R1,#00H,L8;分十位比较
INCR1
CJNE@R1,#00H,L8;时个位比较
INCR1
CJNE@R1,#00H,L8;时十位比较
CLRP1.0;相等,指示灯亮
MOVR6,#05H;相等,定时5秒
L8:
AJMPL1;不等返回
…………………………………………………………………………......
ADDA1:
MOVA,@R0;加1子程序,十位移到A中
DECR0;个位
SWAPA;十位放到A中的高四位
ORLA,@R0;个位放到A中的低四位
ADDA,#01H;加1
DAA;十进制调整
MOVR4,A;数值暂存到R4中
ANLA,#0FH;屏蔽十位
MOV@R0,A;个位放回到个位缓冲单元
MOVA,R4
INCR0
ANLA,#0F0H;;屏蔽个位
SWAPA;十位放到低四位
MOV@R0,A;十位放回十位缓冲单元
RET
…………………………………………………………….
DL:
MOVR7,#100
DJNZR7,DL
RET
TABLE:
DB0C0H
DB0F9H
DB0A4H
DB0B0H
DB99H
DB92H
DB82H
DB0F8H
DB80H
DB90H
END
五.课设小结
1.本程序实现的功能是,一上电开始从00:
00:
00开始计时,数码管显示计时值,当计时到
设置时间值时,指示灯亮,继续计时,5s后,指示灯灭,继续计时。
2.使用计数器0计时,工作在方式1下,设置初始值为0BDCH,每溢出一次,定时125ms,设置溢出8次为一秒。
3.此程序每一秒显示一次,比较一次,即刷新一次。
单片机课程设计报告
院系:
电子信息工程学院_
班级:
080401___________
学号:
080401107________
姓名:
李本斌___________
日期:
2011.6.26________