单片机课程设计.docx
- 文档编号:24952020
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:27
- 大小:68.15KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
单片机课程设计
六安职业技术学院课程设计
课程名称:
单片机原理及应用
课题:
基于单片机的数字时钟的设计
所在系部:
信息工程系
专业班级:
应用电子
学生姓名:
指导教师:
起止时间:
2011年6月13日—6月17日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
课程设计成绩评定表
姓名
评定项目
评分标准
评分成绩
实物效果
(40分)
能否完成预定功能,布局是否合理、整齐、美观,焊点是否光滑,无虚焊
设计报告
(20分)
报告是否规范认真,问题分析是否到位
仪器设备使用
(20分)
是否正确使用仪器设备、有无损坏
学习态度
(20分)
是否按时出勤,学习态度是否认真,遵守纪律情况
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
指导教师评定成绩:
指导教师签名:
2011年6月20日
基于单片机的数字时钟的设计
一、课题意义
数字时钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人、家庭、车站、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过机械式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
二、功能要求
设计基于AT89S51单片机的数字时钟,要求用6位数码管显示时、分、秒,24小时计时方式,使用按键开关实现时分调整、省电(关闭显示)功能。
三、方案论证
为了实现LED显示器的数字显示,可以采用静态显示方式和动态显示方式,由于静态显示需要数据锁存器等硬件,接口复杂一些,考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定采用动态扫描实现LED的显示。
系统框图如图3-1所示。
图3-1基于AT89S51单片机数字时钟系统框图
四、硬件设计
1.电路原理图
基于AT89S51单片机数字时钟的参考电路如图3-2所示,采用AT89S51单片机最小化应用设计,晶振12MHZ,采用共阳七段LED数码管显示,P0口输出段码数据,P2.0~P2.5作为位选输出,P1.0接一个按键开关用以调时及功能设置。
图3-2基于AT89S51单片机数字时钟的参考电路
2.元器件清单
基于AT89S51单片机数字时钟的元件清单如表3-1所示。
表3-1基于AT89S51单片机数字时钟的元件清单
序号
名称
数量
序号
名称
数量
1
AT89S51
1
10
470Ω电阻
1
2
40pin活动Ic座
1
11
万用电路板15×9cm
1
3
30P瓷片电容
2
12
ISP牛角座
1
4
12M晶振
1
13
四爪微型轻触开关
1
5
10UF/16V电解电容
1
14
220Ω电阻
8
6
10K电阻
1
15
共阳极数码管
6
7
带引线的USB插头
1
16
4.7kΩ电阻
6
8
自锁式按键
1
17
三极管8550
6
9
电源指示LED
1
五、软件设计
1.主程序
本设计中及时采用定时器T0中断完成,其余状态循环调用显示子程序,当P1.0口按键按下时,转入相应功能程序。
主程序流程图如图3-3所示。
2.显示子程序
数码管显示的数据存放在内存单元70H-75H中,其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据对应的段码存放在ROM表中,显示时,先取出70H-75H某一地址中的数据,然后查得对应的显示段码从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。
3.定时器T0中断服务程序
定时器T0用于时间计时。
定时器溢出中断周期设为50ms,累计中断20次(即1s)时对秒计数单元进行加1操作。
时钟计数单元地址分别在70H-71H(秒)、76H-77H(分)、78H-79H(时),最大计时值23时59分59秒。
T0中断服务程序流程图如图3-4所示。
图3-3主程序流程图图3-4T0中断服务程序流程图
4.定时器T1中断服务程序
T1中断服务程序用于指示调整单元数字的闪亮,在时间调整状态下,每过0.3s,将对应单元的显示数据换成“熄灭符”数据(#0AH,存放在7AH内存单元)。
这样在调整时间时,对应调整单元的显示数据会间隔闪亮。
5.调试功能程序
调试功能程序的设计方法是:
按下P1.0按键,若按下时间小于1s,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,分闪烁,等待操作,此时计时器停止走动。
当再按下按键时,若按下时间小于0.5s,则分加1,若按下时间大于0.5s,则时闪烁,进入小时调整状态。
在小时调整状态下,再按下按键时,若按下时间小于0.5s,则时加1,若按下时间大于0.5s,则退出调整状态,时钟继续走动。
6.系统程序清单
;****************************************
;;AT89S51时钟程序;;
;****************************************
;
;定时器T0、T1溢出周期为50ms,T0为秒技术用,T1为调整时闪烁用,
;P1.0为调整按键,P0口为字形输出口,采用共阳显示。
;
;****************************************
;;中断入口程序;;
****************************************
;
ORG0000H;程序执行开始地址
LJMPSTART;跳到标号START执行
ORG0003H;外中断0中断程序入口
RETI;外中断0中断返回
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTTO执行
ORG0013H;外中断1中断程序入口
RETI;外中断1中断返回
ORG001BH;定时器T1中断程序入口
LJMPINTT1;跳至INTT1执行
ORG0023H;串行中断程序入口地址
RETI;串行中断程序返回
;
;****************************************
;;主程序;;
;****************************************
;
START:
MOVR0,#70H;清70H-7AH共11个内存单元
MOVR7,#0BH;
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;调用显示子程序
JNBP1.0,SETMM1;P1.0口为0时转时间调整程序
SJMPSTART1;P1.0口为1时跳回START1
SETMM1:
LJMPSETMM;转到时间调整程序SETMM
;
;****************************************
;;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;中断返回
;
;*************************************
;;闪烁调时程序;;
;*************************************
;
;T1中断服务程序,用作时间调整时调整单元闪烁指示
INTT1:
PUSHACC;中断现场保护
PUSHPSW;
MOVTL1,#0B0H;装定时器T1定时初值
MOVTH1,#3CH;
DJNZR2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)
MOVR2,#06H;重装0.3秒定时用初值
CPL02H;0.3秒定时到对闪烁标志取反
JB02H,FLASH1;02H位为1时显示单元"熄灭"
MOV72H,76H;02H位为0时正常显示
MOV73H,77H;
MOV74H,78H;
MOV75H,79H;
INTT1OUT:
POPPSW;恢复现场
POPACC;
RETI;中断退出
FLASH1:
JB01H,FLASH2;01H位为1时,转小时熄灭控制
MOV72H,7AH;01H位为0时,"熄灭符"数据放入分
MOV73H,7AH;显示单元(72H-73H),将不显示分数据
MOV74H,78H;
MOV75H,79H;
AJMPINTT1OUT;转中断退出
FLASH2:
MOV72H,76H;01H位为1时,"熄灭符"数据放入小时
MOV73H,77H;显示单元(74H-75H),小时数据将不显示
MOV74H,7AH;
MOV75H,7AH;
AJMPINTT1OUT;转中断退出
;
;*******************************
;;加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;子程序返回
;
;**********************************
;;时钟调整程序;;
;**********************************
;
;当调时按键按下时进入此程序
SETMM:
CLRET0;关定时器T0中断
CLRTR0;关闭定时器T0
LCALLDL1S;调用1秒延时程序
JBP1.0,CLOSEDIS;键按下时间小于1秒,关闭显示(省电)
MOVR2,#06H;进入调时状态,赋闪烁定时初值
SETBET1;允许T1中断
SETBTR1;开启定时器T1
SET2:
JNBP1.0,SET1;P1.0口为0(键未释放),等待
SETB00H;键释放,分调整闪烁标志置1
SET4:
JBP1.0,SET3;等待键按下
LCALLDL05S;有键按下,延时0.5秒
JNBP1.0,SETHH;按下时间大于0.5秒转调小时状态
MOVR0,#77H;按下时间小于0.5秒加1分钟操作
LCALLADD1;调用加1子程序
MOVA,R3;取调整单元数据
CLRC;清进位标志
CJNEA,#60H,HHH;调整单元数据与60比较
HHH:
JCSET4;调整单元数据小于60转SET4循环
LCALLCLR0;调整单元数据大于或等于60时清0
CLRC;清进位标志
AJMPSET4;跳转到SET4循环
CLOSEDIS:
SETBET0;省电(LED不显示)状态,开T0中断
SETBTR0;开启T0定时器(开时钟)
CLOSE:
JBP1.0,CLOSE;无按键按下,等待。
LCALLDISPLAY;有键按下,调显示子程序延时削抖
JBP1.0,CLOSE;是干扰返回CLOSE等待
WAITH:
JNBP1.0,WAITH;等待键释放
LJMPSTART1;返回主程序(LED数据显示亮)
SETHH:
CLR00H;分闪烁标志清除(进入调小时状态)
SETHH1:
JNBP1.0,SET5;等待键释放
SETB01H;小时调整标志置1
SET6:
JBP1.0,SET7;等待按键按下
LCALLDL05S;有键按下延时0.5秒
JNBP1.0,SETOUT;按下时间大于0.5秒退出时间调整
MOVR0,#79H;按下时间小于0.5秒加1小时操作
LCALLADD1;调加1子程序
MOVA,R3;
CLRC;
CJNEA,#24H,HOUU;计时单元数据与24比较
HOUU:
JCSET6;小于24转SET6循环
LCALLCLR0;大于或等于24时清0操作
AJMPSET6;跳转到SET6循环
SETOUT:
JNBP1.0,SETOUT1;调时退出程序。
等待键释放
LCALLDISPLAY;延时削抖
JNBP1.0,SETOUT;是抖动,返回SETOUT再等待
CLR01H;清调小时标志
CLR00H;清调分标志
CLR02H;清闪烁标志
CLRTR1;关闭定时器T1
CLRET1;关定时器T1中断
SETBTR0;开启定时器T0
SETBET0;开定时器T0中断(计时开始)
LJMPSTART1;跳回主程序
SET1:
LCALLDISPLAY;键释放等待时调用显示程序(调分)
AJMPSET2;防止键按下时无时钟显示
SET3:
LCALLDISPLAY;等待调分按键时时钟显示用
AJMPSET4
SET5:
LCALLDISPLAY;键释放等待时调用显示程序(调小时)
AJMPSETHH1;防止键按下时无时钟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计