电子跑表 单片机课程设计
单片机跑表课程设计

单片机跑表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握跑表程序的设计方法;2. 使学生掌握跑表程序中的计时、显示等模块的功能和使用方法;3. 让学生了解跑表程序在实际应用中的重要性。
技能目标:1. 培养学生运用所学知识设计并实现单片机跑表程序的能力;2. 培养学生分析问题、解决问题的能力,提高编程技巧;3. 提高学生的团队协作能力,学会与他人共同完成项目。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发学习热情;2. 培养学生勇于尝试、不怕失败的精神,树立自信心;3. 培养学生的创新意识,学会珍惜时间,养成良好的学习习惯。
课程性质:本课程为实践性较强的课程,要求学生在理论学习的基础上,动手实践,完成单片机跑表的设计与实现。
学生特点:学生处于高年级阶段,已具备一定的单片机基础知识,有较强的学习能力和动手能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调实践操作,培养学生实际编程能力。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 单片机基本原理回顾:包括单片机的结构、工作原理、指令系统等,重点复习与跑表程序设计相关的基础知识。
参考教材章节:第一章 单片机概述、第二章 单片机结构与原理。
2. 跑表程序设计:a. 计时模块:学习定时器/计数器的工作原理,掌握计时功能的实现方法。
参考教材章节:第三章 定时器/计数器、第四章 中断系统。
b. 显示模块:学习LED数码管或LCD液晶显示的基本原理,掌握显示部分的设计方法。
参考教材章节:第五章 显示与键盘接口、第六章 液晶显示接口。
3. 跑表程序实现:a. 程序框架设计:学习跑表程序的整体结构,明确各模块功能及其相互关系。
b. 编程实践:根据跑表功能需求,动手编写程序代码,实现跑表的基本功能。
c. 调试与优化:分析程序运行过程中的问题,学会调试程序,提高程序性能。
4. 项目实践:a. 学生分组进行项目实践,按照教学要求完成单片机跑表的设计与实现。
单片机简易跑表课程设计

单片机简易跑表课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握跑表程序设计的基础知识。
2. 学生能够描述跑表的工作流程,了解跑表程序中的各个模块功能及其相互关系。
3. 学生掌握跑表计时器的启停、复位等功能实现所需的基本指令和程序结构。
技能目标:1. 学生能够运用C语言编写简单的跑表程序,实现计时、显示等功能。
2. 学生能够通过实验调试,解决跑表程序运行过程中出现的问题,提高程序调试能力。
3. 学生能够对跑表程序进行优化,提高程序运行效率。
情感态度价值观目标:1. 学生在课程学习中,培养对单片机编程的兴趣,激发学习主动性和创新精神。
2. 学生通过合作交流,培养团队协作能力和沟通能力,形成良好的学习氛围。
3. 学生在学习过程中,认识到编程对实际生活的意义,增强学以致用的意识。
本课程针对单片机简易跑表的设计,结合学生年级特点和教学要求,旨在帮助学生掌握单片机编程基础知识,提高实际操作能力,培养创新精神和团队协作能力,使学生在学习过程中形成积极的情感态度和价值观。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供明确方向。
二、教学内容1. 单片机基本原理:介绍单片机的组成、工作原理,使学生了解单片机的基础知识,为编程打下基础。
(对应教材第1章)2. C语言编程基础:回顾C语言的基本语法,重点讲解与单片机编程相关的内容,如数据类型、运算符、控制语句等。
(对应教材第2章)3. 跑表程序设计:详细讲解跑表程序的工作流程、模块划分,以及各模块的功能实现。
(对应教材第3章)4. 程序编写与调试:指导学生编写跑表程序,学习如何使用开发工具进行程序编译、下载和调试。
(对应教材第4章)5. 程序优化与升级:讨论如何优化跑表程序,提高运行效率,以及如何实现程序功能的升级。
(对应教材第5章)教学内容安排和进度:第一周:单片机基本原理学习,C语言编程基础回顾。
第二周:跑表程序设计,模块划分,功能实现讲解。
秒表(跑表)-课程设计-单片机

第一章设计的内容、要求及目的1.1设计内容本课题以单片机为核心,要求设计和制作一个秒表,实现计时功能。
开始时,全显示“0”,自行设计按钮,要求第1次按下按钮后就开始计时,计时精度最好为0.01秒;第2次按按钮后,计时停止,此时可读取计时数值;第3次按按钮后,计时归零,全显示“0”。
此为基本要求,学生可根据自己的创意添加相应扩张,完善或者添加部分功能。
1.2设计要求1.设计方案要合理、正确;2.系统硬件设计;3.完成必要元器件选择;4.系统软件设计及调试;5.写出设计报告。
1.3目的及意义要求通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
同时要求掌握定时器、外部中断的设置和编程原理。
此外,还希望通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
该实验通过单片机的定时器/计数器定时和计数原理,设计简单的秒表计时系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管或者液晶显示器显示,在现实生活中应用广泛,比如说体育项目中的跑步竞赛计时,因此具有现实意义。
第二章 系统方框图与工作原理2.1 系统方框图秒表系统主要由单片机、显示电路,控制按钮等组成。
硬件系统比较简单,其系统方框图如下:图1 系统构成框图2.2 系统工作原理秒表系统比较简单,因此,实施了相应扩展,显示器采用了液晶显示器取代LED 数码管显示器。
同时,添加一个控制按钮,实现可计10个计数值的功能。
主要硬件部分与逻辑功能如下: 秒表系统主要用到的是一个内部定时器,如T0,每隔10MS 产生一次中断,实现秒表计时的“跑动”;一个外部中断,用于控制按钮,控制的实现由软件判定来实现;此外,就是一个显示电路,由内存读取需要显示的数值传输给显示器循环显示。
主要逻辑和控制均由51单片机的软件编程来实现。
对于内部定时器,为了保证计时要求,保证计时精度,步进定为10MS,51单片机系统内部定时器T0产生中断,定时时间为10MS,每次中断重写计数初值。
单片机实现电子计时跑表的设计实验报告

一、设计要求: 1、 能显示分、秒、1/100 秒,显示器用七段数码管(也可选
LCD) 2、 具有清零、计时、冻结功能,功能转换用一位非锁紧按
键开关。 3、 CPU 选用 89C51/MSP430,定时器芯片自选,也可用 CPU
内部的定时器。 4、 先写设计报告(要有仿真结果) 5、 编程语言可用 51 汇编/51C。 6、 焊接、调试、做出实物(也可制作 PCB) 7、 调试,误差分析,并补充到设计报告中。 二、方案设计:
D
1 0 1 1 1 1 0 5EH
A1H
E
1 1 1 1 0 0 1 79H
86H
F
1 1 1 0 0 0 1 71H
8EH
(4) 单片机的选择
根据初步设计方案的分析,设计这样一个简单的应用系 统,可以选择带有 EPROM 的单片机,应用程序直接存储 在片内,不用在外部扩展程序存储器,电路可以简化。 本系统选用 AT89C51 单片机。该芯片的功能与 MCS-51 系列单片机完全兼容。
INIT: CLR 00H MOV P3,#0FFH MOV P2,#00H MOV P0,#3FH MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB EA SETB ET0 SETB TR0 MOV DPTR,#TAB MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H RET ;/////////////显示子程序
仿真图:
是
秒位增 1
增到 60?
是
分位增 1
增到 100?
基于单片机的电子跑表设计--毕业设计

毕业设计基于单片机的电子跑表设计此设计还有以下资料,有需要的朋友下载了文档后留下你的邮箱,方便我传给你。
目录第一部分过程管理资料一、毕业设计课题任务书 (3)二、本科毕业设计开题报告 (6)三、本科毕业设计进展情况记录 (10)四、本科毕业设计中期报告 (12)五、毕业设计指导教师评阅表 (13)六、毕业设计评阅教师评阅表 (14)七、毕业设计答辩及最终成绩评定表 (15)第二部分设计说明书八、设计说明书 (16)第一部分过程管理资料****届毕业设计课题任务书院(系):专业:本科毕业设计开题报告说明:开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一,此报告应在导师指导下,由学生填写,将作为毕业设计(论文)成绩考查的重要依据,经导师审查后签署意见生效。
本科毕业设计进展情况记录毕业设计题目:基于单片机的电子跑表设计班级:自本0302学号:46030216学生:刘正武指导教师:廖代文注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
本科毕业设计中期报告院(系):电气与信息工程学院院、系:电气与信息工程学院毕业设计答辩及最终成绩评定表院、系(公章):说明:最终评定成绩=a+b+c,三个成绩的百分比由各院、系自己确定。
第二部分毕业论文摘要本次毕业设计的课题是基于单片机的电子跑表设计,设计要求为电子跑表能显示正确的时间并能作秒表使用。
设计的主要内容包括单片机最小系统(电源电路,复位电路,时钟电路),键盘电路,驱动电路,显示电路和电子跑表的程序设计。
我选用的单片机型号为AT89S52,采用两片74LS244为驱动电路,显示采用两个4位一体的七段数码显示管,通过制作实物,编程,下载程序,制作的电子跑表能够实现正确的时间显示,并且可以实时调整时间显示,作秒表使用时计时范围为000.0秒到999.9秒,通过检测,发现误差不大。
单片机课程设计电子跑表

电子跑表一.个人任务在本次课程设计中,本人负责跑表的C语言程序编程部份和开发板调试。
另一人负责proteus仿真。
二.设计要求以51开发板为核心设计一个多功能电子表。
利用AT89C52作为主控器组成一个具有跑表功能的4位LED显示器的电子跑表。
跑表的-999.9秒并具有跑表启动和跑表复位功能键。
跑表的显示范围:;当按下启动按钮跑表开始计时,按下停止按停止计时,当按下复位按钮跑表回零。
三.设计思路1.计时单元由单片机内部的按时器/记数器来实现。
2.跑表的显示功能是由LED数码管动态扫描来实现。
这能够利用专用的键盘/显示器接口芯片来实现对键盘/显示器的动态扫描。
3.跑表的启动/复位/清零功能由软件来实现。
P1.0接启动键,P1.1接停止键,P1.2接清零键。
四.设计方案在单片机中,按时功能既能够由硬件实现,也可通过软件按时实现。
硬件按时是利用单片机内按时器按时,启动以后按时器可与CPU并行工作,不占用CPU时刻,CPU有较高的工作效率。
采纳硬件按时和软件按时并用的方式,即用T0出中断功能实现50ms按时,通过软件延时程序实现1s按时。
按时器的有关的寄放器有工作方式寄放器TMOD和操纵寄放器TCON。
依照设计要求和设计思路,硬件电路有两部份组成,即单片机按键电路,LED 显示器电路,以下图为系统电路设计流程图。
图1 电路设计流程图依照课程设计要求,决定计时单元由单片机内部的按时器/记数器89C52芯片来实现。
跑表显示功能通过LED数码管动态扫描来实现。
能够利用专用的键盘/显示器接口芯片可实现对键盘/显示器的动态扫描。
五.硬件设计1. 单片机型号选择由于咱们利用的单片机开发板上的单片机的型号是SCT89C52,因此咱们只能选择这款型号的单片机。
可是这款单片机和SCT89C51是一样的,也是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处置器,器件采纳ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
电子跑表

实验五 数码显示实验一、实验内容做一个电子钟:利用定时器0定时中断,控制电子钟走时;利用单片机上的六个数码管显示分、秒。
显示格式分 秒二、实验目的1 进一步掌握定时器的使用和编程方法。
2 了解七段数码显示数字的原理。
3 熟练掌握Keil c51和Proteus 联调的方法4 实验电路图5.1四、程序流程图主程序:中断程序:六、程序清单 T10.ASMST_ADDR EQU 0000HPA EQU 7FFCH;A口地址PB EQU 7FFDH;B口地址CTR EQU 7FFFH;控制字地址BUF EQU 23HSBF EQU 22H;存放秒MBF EQU 21H;存放分ORG ST_ADDRLJMP MAINORG ST_ADDR+0BH;定时器0中断入口LJMP CLOCKORG ST_ADDR+200HMAIN: MOV DPTR,#CTR;写控制字MOV A,#80HMOVX @DPTR,AMOV R0,#40HMOV A,#00HMOV @R0,AINC R0MOV @R0,AINC R0MOV A,#0AHMOV @R0,AINC R0MOV @R0,AINC R0MOV A,#00HMOV @R0,AINC R0MOV @R0,AANL TMOD,#0F0HORL TMOD,#01HMOV TL0,#00HMOV TH0,#38HMOV BUF,#00H;清零MOV SBF,#00HMOV MBF,#00HSETB ET0;开定时器0SETB EASETB TR0DS1: MOV R0,#45HMOV R2,#20HDS2: MOV DPTR,#PB;位选MOV A,R2MOVX @DPTR,AMOV DPTR,#PAMOV A,@R0LCALL TABLEMOVX @DPTR,A;送段码LCALL DELAY1;延时DEC R0CLR CMOV A,R2RRC AMOV R2,AJNZ DS2MOV R0,#45HMOV A,SBFLCALL GETDEC R0DEC R0MOV A,MBFLCALL GETSJMP DS1TABLE: INC AMOVC A,@A+PCRETDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,0BFH GET: MOV R1,AANL A,#0FHMOV @R0,ADEC R0MOV A,R1SWAP AANL A,#0FHMOV @R0,ADEC R0RETCLOCK:MOV TL0,#00H;定时器中断子程序MOV TH0,#38HPUSH PSWPUSH ACCINC BUFMOV A,BUFCJNE A,#0AH,QUITMOV BUF,#00HMOV A,SBFINC ADA AMOV SBF,ACJNE A,#60H,QUITMOV SBF,#00HMOV A,MBFADD A,#1HDA AMOV MBF,ACJNE A,#60H,QUITMOV MBF,#00HQUIT: POP ACCPOP PSWRETIDELAY1: MOV R4,#10;4ms延时DEL11: MOV R5,#0AHDEL12: MOV R3,#18HDEL13: DJNZ R3,DEL13DJNZ R5,DEL12DJNZ R4,DEL11RETEND实验六8279键盘、显示接口实验—LED显示实验一、实验内容利用8279键盘显示接口电路和实验台上提供的六个数码显示,作成一个电子钟。
电子跑表的设计

课程设计课程名称单片机原理与应用课程设计课题名称电子跑表设计专业电子信息工程班级1501学号03姓名谭青权指导老师肖锋2015年6月*日报告撰写要求(此页不打印)课程设计报告是体现课程设计成果的载体,具体要求如下:1、课程设计报告的基本格式(1)说明书统一使用word文档打印,A4纸张,页边距设置为:上2cm,下2cm,左2.54cm,右2cm。
(2)正文采用宋体小四,字间距20磅;1级标题采用黑体小三,2级标题采用黑体四号,3级标题采用黑体小四;1和2级标题段落间距为上下0.5行。
(3)图表需统一编号,图标标题采用黑体五号;图标题在图片下方,表格标题在表格上方。
(4)装订顺序为:封面、任务书、报告正文、评分表。
2、课程设计报告的撰写要求(1)设计报告正文内容为5-6页为宜,主要内容为自己的设计思路、设计步骤、关键性步骤的记录、重要结果的记录以及自己本次课程设计的总结。
报告撰写要求思路清晰、结构合理、层次清晰,报告简洁但又要能体现设计过程。
(2)报告中图表要求清晰、规范,图表的尺寸大小适当。
(3)课程设计报告内容(仅供参考):电气信息学院课程设计任务书课题名称电子跑表的设计姓名谭青权专业电子信息工程班级1501 学号03指导老师肖锋课程设计时间2017/12/11-2017/12/22一、任务及要求设计任务:利用单片机为核心设计一个多功能电子表,具有电时钟和跑表功能。
用做时钟时,在显示器上显示时、分、秒,用做跑表时,显示范围00时00分00秒-23时59分59秒并具有跑表启动和跑表复位功能键。
当按下启动按钮跑表开始计时,按下停止按停止计时,当按下复位按钮跑表回零。
设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)应用系统的硬件和软件的调试。
二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。
周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章课题设计内容及要求 (2)1.1 内容 (2)1.2 要求 (2)第二章系统方案设计 (3)2.1设计方案 (3)2.2 设计原理 (3)第三章系统硬件设计 (4)3.1 硬件电路的设计方案及框图 (4)3.2 单片机的选择 (4)3.3 时钟与复位电路的设计 (5)3.3.1 时钟电路 (5)3.3.2 复位电路 (6)3.4 LED显示电路的设计 (7)3.4.1 控制方式 (7)3.4.2 段驱动芯片选择 (8)3.5 按键电路 (8)第四章系统软件设计 (9)4.1 主程序的设计 (10)4.2 时钟、跑表计时程序模块的设计 (12)4.3 T1断程序流程图如下: (16)4.4 代码转换程序: (18)4.5 显示程序 (19)第五章系统的安装调试说明 (21)第六章总结与体会 (22)参考文献 (23)附录 (24)1.程序原理图 (24)2.程序清单 (24)第一章课题设计内容及要求1.1 内容(1)本课题以单片机为核心,设计出电子跑表,具有以下功能:(2)具有电时钟和跑表功能;(3)做时钟时在4位LED 显示器上显示分、秒;(4)做跑表时显示范围000.0秒~999.9秒;(5)当按下启动按钮跑表开始计时,按下停止按钮停止计时,当按下复位按钮跑表回零。
1.2 要求用伟福编译程序,用Proteus画出电路图进行仿真。
第二章系统方案设计2.1设计方案电子跑表的设计有多种方法,例如,可用中小规模集成电路组成电子跑表;也可用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子跑表;还可以利用单片机来实现等等。
本次单片机综合实验需要进行硬件设计与软件设计。
2.2 设计原理(1)本系统采用AT89C51单片机、4位LDE显示、两块块74LS244芯片、4个调节按钮、共同构成我的单片机电子跑表的硬件。
(2)计时单元由单片机内部的定时器/记数器来实现。
(3)时间显示功能通过LED数码管动态扫描来实现。
由于数码管要显示时钟,还要显示跑表,因此,我分别用31H、32 H计时钟,用R5、R6计跑表,当要显示哪一个的时候,就把哪一个地址送到显示地址35 H、36 H中,达到跑表显示与时钟显示互不影响。
(4)电子跑表的启动/复位/清零功能由软件来实现。
P1.1接启动键,P1.3接停止键,P1.0接清零键。
P1.2实现时钟和跑表的转换功能。
(5)由于跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在此用42H标志位,用标志位来给跑表计数。
第三章系统硬件设计3.1 硬件电路的设计方案及框图根据设计要求和设计思路,确定该系统的设计方案,图1所示为该系统设计方案的硬件电路设计框图。
硬件电路有五部分组成,即单片机按键输入电路,单片机时钟电路,复位电路,LED显示器段码驱动电路,4位LED显示器电路。
图1 硬件电路设计框图3.2 单片机的选择根据初步设计方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
本系统选用AT89C51单片机。
该芯片的功能与MCS-51系列单片机完全兼容。
下图为MCS51的管脚图。
共有40个管脚,P口32个输入输出管脚本次设计用了16个。
3.3 时钟与复位电路的设计3.3.1 时钟电路单片机工作的时间基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路,如下图所示。
电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围(20-40)pF。
石英晶体选择6MHz或12MHz都可以,起结果只是机器周期时间不同,影响计数器的计数初值。
3.3.2 复位电路单片机的RST管脚为主机提供一个外部复位信号输入端口。
复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。
单片机的复位方式有上电自动复位和手工复位两种。
复位电路图是下图所示。
下图是51系列单片机常用的上电复位和手动复位组合电路。
3.4 LED显示电路的设计3.4.1 控制方式LED显示器的显示控制方式分为静态显示和动态显示两种,若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器的电流相匹配即可,而且一般只需考虑段的驱动;动态显示则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
此设计选用共阴极接法的4位时钟型LED显示器。
其中管脚a,b,c,d,e,f,g为4位LED各段的公共引出端;D1,D2,D3,D4分别是每一位的共阴极输出端;dp是小数点引出端。
对于这种结构的LED显示器,它的体积和结构都符合我们的设计要求,由于4位LED阴极的各段已经在内部接在一起,所以必须使用动态扫描方式。
如下图所示。
段码输入端位码输入端3.4.2 段驱动芯片选择LED的段驱动电路有很多种,在本设计中选择了型号为74LS244的芯片。
该芯片具有锁存,译码,驱动的功能。
即在输入端输入要显示字形的BCD码,在输出端局可以得到具有一定驱动能力的7段显示字形码。
3.5 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
第四章系统软件设计进行应用软件设计时可采用模块化结构设计,其优点是:首先,每个模块的程序结构简单,任务明确,易于编写,调试和修改;其次,程序可读性好,对程序的修改课局部进行,其他部分可以保持不变,便与功能扩充和版本升级;最后,便与多个模块调用和分工合作。
将本系统分为,时钟记时程序模块,数制转换模块,显示模块,跑表工作模块。
如下图所示。
将这些事先划分好的模块用汇编语言编成不同的子程序,再将它们有机的结合起来从而达到系统的整体功能。
其中显示程序贯穿整个系统软件的始终,其它的程序以一定的规律改变显示程序的显示内容为目的。
电子跑表软件设计的模块4.1(1)程序的起始地址:MCS-51单片机复位后,(PC)=0000H,而0003H-002BH分别是各中断源的入口地址。
所以,编程时应在0000H处写一条跳转指令。
当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。
(2)主程序的初始化:将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作设定。
ORG 0000HLJMP MAINORG 000BH ;T0中断入口地址LJMP INTT0ORG 0030HMAINMOV TMOD, #01H ;T0工作方式MOV TH0, #3CH ;T0初值MOV TL0, #0B0HMOV IE,#82H ;开中断MOV R7,#2 ;中断两次MOV 31H,#0 ;放后两位数字MOV 32H,#0 ;放前两位数字MOV 41H,#0 ;用在定时器计中断个数MOV P1,#0FFH ;开放P1口SETB TR0 ;启动定时器LOOP:JNB P1.0,ZHONG ;判开关P1.0信号,时钟与跑表切换。
MOV R5,#0 ;跑表清0MOV R6,#0TING:LCALL PAO ;调跑表子序MOV R5,#0 ;跑表清0MOV R6,#0ZHONG:MOV 35H,31H ;用于时钟记数的31H,32H送入显示地址MOV 36H,32HLCALL DIVID ;时钟显示MOV A,52H ;加小数点(分和秒之间)ADD A,#10MOV 52H,ALCALL DZSPLAYLJMP LOOP ;循环执行主程序RET4.2 时钟、跑表计时程序模块的设计(1)60分钟与1000秒时间的产生。
选择定时器T0,用工作方式1,定时 50ms,R7先置2,T0定时50ms中断一次,利用R7寄存器减1,当R7寄存器的值=0时,时间正好是0.1s,再利用R0寄存器计数,当R0=10时,时间刚好是1s,再利用R1寄存器计数60s,依次类推,累计60分钟的是时间值,需要用到以下几个寄存器:R7:累计0.1s时间寄存器。
T0每中断一次R7=R7-1,计数10次向30H进位,并将R7置2。
30H:累计1s时间寄存器。
当R0=60s时,向31H进位,然后将30H清零。
31H:累计60s时间寄存器。
当31H=60s时,当31H=60时,将30H、31H清零。
30H、31H用于时钟计时,以下R6、R5用于跑表计时。
R5:累计10S时间寄存器。
当R5=100时,向R6进位,然后将R5清零。
R6:累计1000S时间寄存器。
当R6=100时,将R6清零。
42H:为标志寄存器。
42H=1时,跑表、时钟计数器都计数,42H=0时,仅时钟计数器计数。
(2)内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器周期。
因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:机器周期=12÷11.0592MH z=1.0857μS(65536-定时常数)*1.0857μS=50mS定时常数=EC78H初值寄存器的初值 TH1=ECH,TL1=78H工作方式计数器 TMOD=0000 0001B=01H(3)启动跑表时,T1计时到0.1s时,置42H=1,则在时钟计数器工作的同时,跑表计数器也在工作,并将跑表计数器的值送到显示缓冲区显示。
跑表程序如下:WATCH:CLR RS0CLR RS1CJNE R6,#0FFH,TP ;跑表程序MOV R6,#0H ;清标志位INC R4CJNE R4,#100,TP ;判是否到10s MOV 41H,R4 ;送41H单元MOV R4,#0HINC R5CJNE R5,#100H,TP ;判是否到1000sMOV 42H,R5MOV R5,#0HMOV R4,#OHTP: LCALL DIVID ;调代码转换程序RET4.3 T1断程序流程图如下:T1定时器程序设计流程图T1中断服务程序如下:INT_T0:PUSH DPHPUSH DPLPUSH ACCPUSH PSWCLR TR1 ;关T1MOV TH0,#4CH ;重置T1初值MOV TL0,#00HSETB TR0 ;启动T1CLR RS1 ;选择0区工作寄存器CLR RS0DJNZ R7,EXIT ;判断是否完成0.1s定时MOV R7,#2 ;到0.1sMOV R6,#0FFH ;置标志位INC R0CJNE R0,#10,EXIT ;判断是否到1sMOV R0,#0HINC R1MOV 41H,R1 ;秒值送41H单元CJNE R1,#60,EXIT ;判断是否到1minMOV R1,#0HINC R2MOV 42H,R2 ;分值送42H单元CJNE R2,#60,EXIT ;判断是否到1hMOV R2,#0HINC R3MOV 43H,R3 ;CJNE R3,#24,EXIT ;MOV R3,#0HMOV R2,#0HMOV R1,#0HEXIT:POP PSWPOP ACCPOP DPLPOP DPHRETI4.4 代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制(即BCD码)或ASCII码。