学 号:
xxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxx大学
课 程 设 计
题 目 学 院 专 业 班 级 姓 名 指导教师
单片机秒表 机电工程学院 XXXXXXXXX XXXXXXX XXX XXXXXX
2009 年 1 月 16 日
课程设计任务书
学生姓名: XXXX X 专业班级: XXXXXXXXX 指导教师: XXXXXXXXXXXX 工作单位: 自动化学院 题 目: 单片机秒表 初始条件:
1. 运用所学的单片机原理与接口技术知识和数字电路知识; 2. Inter公司MCS-51系列单片机,其它外围电路及其相应接口; 3. 实验板、电源、连接导线、74系列芯片、555芯片等。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.单片机秒表的设计与调试。 2. 本次设计要实现的目标 。
a:用一个按键可依次记录两个运动员的成绩。
b:用另一个按键可对前记录的两个运动员成绩进行查询。 3. 撰写课程设计说明书。
4.课程设计说明书要求:引言、设计要求、系统结构、原理设计、各个模块的设计与实现、软件设计、调试过程、收获、体会及总结、参考文献、电路图和源程序。说明书使用A4打印纸计算机打印或手写,用Protel等绘图软件绘制电子线路图纸。
时间安排:
第1天 下达课程设计任务书,根据任务书查找资料; 第2~4天 完成方案论证,单片机系统的设计; 第5~8天 参考有关文献,完成程序的编写;
第9~11天 调试及记录问题、结果,检查错误并提出问题; 第12~14天 结果分析整理、撰写课程设计报告,验收和答辩。
指导教师签名: 2009 年 1 月 5 日 系主任(或责任教师)签名: 2009 年 1 月 5 日
第 页
目录
引言…………………………………………………………………………………………1 1 设计意义及要求…………………………………………………………………………2 2 方案设计…………………………………………………………………………………3
2.1 秒表控制方案的选择„„„„„„„„„„„„„„„„„„„„„„„„3 2.2 秒表控制线路图„„„„„„„„„„„„„„„„„„„„„„„„„„3 2.3 主要元器件选择„„„„„„„„„„„„„„„„„„„„„„„„„„4 3 部分电路的功能及介绍…………………………………………………………………5
3.1 AT89C51引脚图及功能„„„„„„„„„„„„„„„„„„„„„„„5 4 程序流程图………………………………………………………………………………7 4.1 内存单元分配„„„„„„„„„„„„„„„„„„„„„„„„„„„7 4.2 主程序流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„7 4.3 中断服务程序流程图„„„„„„„„„„„„„„„„„„„„„„„„8 5 调试与检测………………………………………………………………………………9
5.1 Keil调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„9 5.2 Proteus调试„„„„„„„„„„„„„„„„„„„„„„„„„„„9 6 体会与总结………………………………………………………………………………10 6.1 工作原理分析„„„„„„„„„„„„„„„„„„„„„„„„„„„10 6.2 结束语„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„10 致谢………………………………………………………………………………………„11 参考文献…………………………………………………………………………………„12 附录1 单片机秒表使用说明„„„„„„„„„„„„„„„„„„„„„„„„13 附录2 源程序„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 附录3 电路图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„17 本科生课程设计成绩评定表
第 页
引言
1、秒表的起源
说道秒表的起源,那么就要说到时间的计量。古时候人们采用沙漏或其它的方法
来记录时间。当然那不准确。随着科技的发展以及对体育事业的重视,机械秒表开始在早期的运动会上大放异彩,充当记录运动员成绩的工具。当然其仍存在很多不足。在发展就进入计算机对秒表的控制。其不仅可实现对时间自动化的精确控制,而且对运动员成绩的查询也更加方便。
2、早期秒表的控制
从采用一些简单的时间控制到机械计量,然后到计算机对时间的精确计量。这是
随着秒表在竞技方面所要实现的要求分不开的。相信随着要求的不断提高,其发展将达到更高的程度!
第 页
1 设计意义及要求
1.1、 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
1.2、 掌握定时器、外部中断的设置和编程原理。
1.3、 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 要求:a:用一个按键可依次记录两个运动员的成绩。
b:用另一个按键可对前记录的两个运动员成绩进行查询
第 页
2 方案设计
2.1秒表控制方案选择
本设计的控制方案如下:晶振频率为6MHz 功能1:初始显示00
SP1第一次按动开始计数;SP1第一次按动记录第一位选手的成绩,且继
续记数;SP1第三次按动暂停,显示第二位选手成绩;SP1第四次按动清0.计数时间范围为0—60.
功能2:SP2第一次按动查询第一位选手成绩。 SP2第二次按动查询第二位选手成绩。
2.2秒表控制线路图
采用AT89C51单片机控制秒表并实现实时显示计时,且可进行查询。单片机控制秒表的电路原理如图2-1所示。
C130PFX1CRYSTAL19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617C230PF18XTAL2C3+5V10UF9RSTR110k293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SP2SP1SP1
图2-1 秒表控制线路
第 页
2.3 主要元器件选择
主要元器件选用型号和数量如下:
1个AT89C51(单片机) 1个CRYSTAL(晶振) 3个CAP(电容) 1个RES(电阻) 2个7SEG-COM-CATHOD(共阴极数码管) 2个BUTTON(按钮)
第 页
3 部分电路的功能及介绍
3.1 AT89C51引脚图及功能
该单片机各引脚的功能如下:
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部
上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
第 页
P3口也可作为AT89C51的一些特殊功能口,如表2-1所示 。 P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
表3-1 AT89C51个口管脚功能
口管脚 P3.0 RXD P3.1 TXD P3.2 /INT0 P3.3 /INT1 P3.4 T0 P3.5 T1 P3.6 /WR P3.7 /RD 备选功能 串行输入口 串行输出口 外部中断0 外部中断1 记时器0外部输入 记时器1外部输入 外部数据存储器写选通 外部数据存储器读选通 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
第 页
4 程序流程图
4.1内存单元分配
片内RAM30H—34H
主程序从RAM0000H开始存储,中断程序从RAM000B开始存储。
4.2主程序流程图
按秒表控制方案要求,主程序应是完成秒表正常情况下运动员成绩的计时和查询。
主程序流程图如下:
开始 SP1依次按四次 功能1 SP2依次按两次 功能2 结束
图4-1 主程序流程图
第 页
4.3中断服务程序流程图
T0中断入口
TCNT加 1 Y TCNT=2500吗? N TCNT=0 SEC加1 Y SEC=60吗? N
SEC=0 处理SEC并显示
中断返回
图4-2 中断程序流程图
第 页
5 调试与检测
在完成了秒表控制器硬件设计、样机组装和软件设计以后,便进入系统的调试阶段。系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil公司的开发系统。
Keil调试 Proteus调试
图5-1 秒表联调效果图
在整个调试过程中出现了几个问题,初始显示不为00;计数时间过快;以及查询运动员成绩的过程中不能很好的执行。
解决方案:初始送入累加器A中数为00即可;把定时初值进行仔细的计算,将正确的定时初值和计数循环次数送入;还有不能正常的查询成绩是因为相关条件转移指令出错,经过调整,最后调试成功。
第 页
6 体会与总结 6.1工作原理分析
程序主要由三部分组成:主程序、延时程序以及显示程序。
主程序按键的计数主要是用一个标志位来记录按键的按动次数,使其执行所要执行的功能。
本设计的延时程序使用中断定时。即设置不同的定时初始值和循环计时次数。 显示程序主要利用LED静态显示。
6.2结束语:
通过这两周周的学习,我感觉有很大的收获:首先,通过学习使自己对课本上的
知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够充分利用图书馆去查阅资料,增加了许多课本以外的知识。能对proteus、和keil等仿真软件操作。终于完成了秒表控制方案的设计,用AT89C51单片机实现秒表控制方案。本设计还包含LED显示部分,可直接显示方便观察。所得收获:通过这次毕业设计,使我得到了一次用专业知识和专业技能去分析问题、解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及用汇编语言设计程序的思路技巧等方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。且通过这次设计也让我体会到其中的艰辛和快乐,对单片机这门课产生浓厚的兴趣。
第 页
致谢
经过两个星期的单片机与接口技术课程设计,回想在这两周自己所付出的和所得
到的,我很是欣慰。我从一开始对单片机只有这学期的理解,对这次课程设计完全不够用,但在老师的教导、同学的帮助下我能顺利完成了这次单片机课程设计。在这里我衷心的感谢我的指导老师和热心帮助的同学们。同时,感谢学校为我们安排这么好的一次锻炼自己的机会!
第 页
参考文献
[1].汪力主编,单片机原理与应用技术,清华大学出版社,2008年4月第6次印
刷
[2].蔡骏主编,单片机实验指导教程,安徽大学出版社,2008年7月第一次印刷 [3]. http://www.51hei.com
第 页
附录1
单片机秒表使用说明
功能1:初始显示00
SP1第一次按动开始计数;SP1第一次按动记录第一位选手的成绩,且继续记数;SP1第三次按动暂停,显示第二位选手成绩;SP1第四次按动清0.计数时间范围为0—60. 功能2:SP2第一次按动查询第一位选手成绩。
SP2第二次按动查询第二位选手成绩。
第 页
附录2
源程序
1、主程序
TCNTA EQU 30H TCNTB EQU 31H SEC EQU 32H KEYCNT1 EQU 33H KEYCNT2 EQU 34H SP1 BIT P3.5 SP2 BIT P3.0 ORG 00H
LJMP START ORG 0BH LJMP INT_T0
START: MOV KEYCNT1 ,#00H
MOV KEYCNT2, #00H MOV SEC, #00H MOV A, SEC ACALL DISP
MOV TMOD, #02H;定时器0 工作方式2 SETB ET0;定时器0开中断 SETB EA;CPU开中断
WT1: JB SP1, WT1
LCALL DELY10MS JB SP1, WT1 INC KEYCNT1 MOV A, KEYCNT1 CJNE A, #01H, KN1 SETB TR0;启动定时器0
MOV TH0, #38H;设置0.4MS定时初值 MOV TL0, #38H
MOV TCNTA, #00H循环初值的设置 MOV TCNTB, #00H LJMP DKN
KN1: CJNE A, #02H, KN2
MOV R1, SEC LJMP DKN
KN2: CJNE A, #03H, KN3
MOV R2, SEC CLR TR0 LJMP DKN
KN3: CJNE A, #04H, DKN
第 页
MOV SEC, #00H MOV A, SEC ACALL DISP
MOV KEYCNT1, #00H
WT2: JB SP2, WT2
LCALL DELY10MS JB SP2 , WT2 INC KEYCNT2 MOV A, KEYCNT2
MDD: CJNE A, #01H, K1
MOV A, R1 ACALL DISP LJMP DKN1
K1: CJNE A, #02H, DKN1
MOV A, R2 ACALL DISP
DKN: JNB SP1, $
LJMP WT1
DKN1: JNB SP2, $
LJMP WT2
INT_T0:INC TCNTA
MOV A, TCNTA
CJNE A, #100, NEXT循环时间次数 MOV TCNTA, #00H INC TCNTB MOV A, TCNTB CJNE A, #25, NEXT MOV TCNTB, #00H INC SEC MOV A, SEC CJNE A, #60, DONE;60秒循环 MOV SEC, #00H
DONE:MOV A, SEC
ACALL DISP NEXT: RETI
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
2、10MS延时子程序
DELY10MS:MOV R6, #20
D1:MOV R7, #248 DJNZ R7, $
第 页
DJNZ R6, D1
RET
3、显示子程序
DISP: MOV B, #10
DIV AB
MOV DPTR, #TABLE MOVC A, @A+DPTR MOV P1, A MOV A, B
MOV DPTR, #TABLE MOVC A, @A+DPTR MOV P2, A
第 页
附录3
单片机秒表电路图
第 页
因篇幅问题不能全部显示,请点此查看更多更全内容