单片机基于PROTEUS仿真的秒表的课程设计
课程设计单片机秒表
课程设计单片机秒表一、教学目标本课程旨在通过学习单片机秒表的设计与实现,让学生掌握单片机的基本原理、编程方法和实际应用。
具体的教学目标如下:1.了解单片机的基本结构和工作原理;2.掌握C语言编程的基本语法;3.掌握单片机秒表的设计方法和步骤。
4.能够使用单片机开发工具进行程序编写和调试;5.能够独立完成单片机秒表的设计和实现;6.能够对单片机程序进行优化和升级。
情感态度价值观目标:1.培养学生的创新意识和团队合作精神;2.培养学生对新技术的敏感度和持续学习的兴趣;3.培养学生对社会和科学的负责任态度。
二、教学内容本课程的教学内容主要包括以下几个部分:1.单片机的基本原理:介绍单片机的结构、工作原理和编程语言;2.C语言编程:讲解C语言的基本语法和编程技巧;3.单片机秒表的设计:讲解单片机秒表的设计方法和步骤,包括硬件设计和软件编程;4.实践操作:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现。
三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:讲解单片机的基本原理和C语言编程基础知识;2.案例分析法:分析具体的单片机秒表设计案例,让学生了解实际应用;3.实验法:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现;4.讨论法:学生进行小组讨论,培养团队合作精神和创新意识。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:选择合适的单片机和C语言编程教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,帮助学生更好地理解教学内容;4.实验设备:准备单片机开发板和实验工具,让学生进行实践操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生的学习态度和积极性;2.作业:布置相关的编程练习和设计任务,评估学生的编程能力和设计水平;3.考试:安排期末考试,测试学生对单片机秒表设计和C语言编程知识的掌握程度。
基于单片机的电子秒表课程设计
目录第一章绪论 (3)1.1概述 (3)1.2设计目的 (3)1.3设计任务和内容 (3)第二章总体设计及核心器件简介 (4)2.1总体设计 (4)2.2MCS-51之80C51 (4)第三章单元电路模块设计 (6)3.1按键电路 (6)3.2时钟电路 (7)3.3LED数码管显示电路 (7)3.4复位电路 (9)3.5 总体功能介绍 (11)第四章软件编程设计 (12)第五章设计体会及总结 (13)参考文献 (14)附录一程序流程图 (15)附录二系统程序设计 (16)一、题目:基于单片机的电子秒表二、任务要求:本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0—99.9秒。
要求按键输入采用中断方式,按键A接INT0,B接INT1。
三、组内成员:XXXXXXXXXXXXXXXX四、指导老师:XXX2019.7.7第一章绪论1.1概述单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。
单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。
20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。
由于单片机功能功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。
本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有低功耗,保密性好等优良特点,具有广阔的市场前景1.2设计目的加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
单片机秒表课程设计
《单片机原理与应用》课程设计任务书学生姓名**** 学号080705135 专业班级08电气信1同组学生姓名************** 组别7 指导教师职称副教授题目秒表设计任务和技术指标设计一个基于MCS-51系列单片机的计时秒表,能够进行0~60s计时,精确度要求为0.01秒。
用2个按键控制秒表工作(复位,起动/停止)。
设计条件和设计要求1、用PROTEUS软件进行初步设计和仿真。
2、在单片机原理实验室完成实际系统设计、调试及答辩。
3、要按照题目要求,完成下列工作:(1)制定出合理可行的计时秒表工作原理;(2)做出完整详细的计时秒表硬件系统和软件系统设计,并通过PROTEUS仿真;(3)完成基于EL实验箱的硬件连接和必要的硬件扩展;(4)利用星研仿真器完成系统仿真与调试;(5)写出设计说明书。
主要参考文献1、张毅刚.单片机原理及应用.高等教育出版社.2003年2、李群芳,等.单片微型计算机与接口技术(第2版).电子工业出版社.20053、张靖武,等.单片机系统的PROTEUS设计与仿真.电子工业出版社.20084、求是科技.单片机典型模块设计实例导航.人们邮电出版社.20045、李强,51系列单片机应用软件编程技术,北京航空航天大学出版社,2009目录一.设计题目 (2)二.主要指标和要求 (2)1)基本功能2)扩展功能三.方案选择及系统工作原理 (2)画出系统的硬件框图和软件流程图四.硬件系统的设计 (3)1)元器件的选择2)硬件系统的Proteus仿真电路图五.软件系统的设计 (4)程序清单六.安装调试情况说明 (7)七.对所设计系统的评价 (7)系统性能指标测试结果,是否满足要求及对成果的评价八.总结与体会 (8)九.参考文献 (8)一、设计题目:秒表二、主要指标和要求用AT89C51设计一个8位的LED 数码显示作为“秒表”:显示时间为00-00-00到最大显示30-00-00分钟,精确度为0.01s 。
基于Proteus仿真实现秒表电路仿真实验
基于Proteus仿真实现秒表电路仿真实验基于Proteus仿真实现秒表电路仿真实验⼀、实验⽬的99秒表设计⼀个00~~99的2位秒表,⽤单⽚机控制2个LED静态显⽰。
⼆、实验要求1、绘图必须规范、严谨,可以不拘⼀格,但要求仿真成功。
2、不得相互拷贝和抄袭,每个仿真电路图下⾯写上电路名称及⾃⼰的班级、学号姓名。
3、Proteus仿真图、相应的源程序(⽤到单⽚机的项⽬)、Word⽂档实训报告均以电⼦版形式上交。
三、仿真电路分析单⽚机有4个并⾏I/O⼝ P0-P3,每个I/O⼝包括8条I/O⼝线。
采⽤P0⼝、P1⼝来控制2个共阳极LED的段码,我们⽤的是共阴数码管,所以公共端接地,P0⼝控制的LED显⽰⼗位数,P1⼝控制的LED显⽰个位数,从0开始显⽰。
显⽰到99后,从新从0开始显⽰。
四、实训结果五、实训⼼得99秒表调⽤了单⽚机中,⾃带的(定时器/计时器)系统,是学习单⽚机所必须了解的⼀个模块,这是⼀次基本的应⽤,也⽐较简单,但是在接下来的学习中还要针对系的学习,(定时器/计时器)应⽤的还是⽐较的⼴泛。
还要好好学习。
六、附页Keil程序#includevoid time59ms(unsigned char i) {unsigned char k;for(k=0;k{TH0=(65536-9000)/256;TL0=(65536-9000)%256;TR0=1;while(!TF0);TF0=0;}}void main(){ unsigned charled[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0 x07,0x7f,0x6f};unsigned char i;TMOD=0x01;P0=0xff;P2=0xff;while(1){for(i=0;i<100;i++) { P0=led[i/10];P2=led[i%10]; time59ms(90);}}}。
51单片机电子秒表设计(Proteus)
51单片机电子秒表设计(Proteus)单片机硬件设计结课论文简易秒表设计专业:计算机科学与技术学生姓名:学号: 1307064248完成时间:2020年12月28日目录一、简述 (3)二、主要工具 (2)三、线路连接图(ISIS 7 Professional环境) (2)四、实现细则 (2)显示电路 (2)定时计数器 (3)五、程序 (4)六、模拟运行截图 (16)七、心得体会 (16)一、简述此秒表主要实现的功能是利用单片机内部定时计数器实现计时,然后通过LED组件显示出来。
因为这次设计时使用的是并排的6个数字显示LED,所以在计时时精确到10ms,最大即时59分59秒99。
实现过程中的主要部分包含显示和定时。
因为该LED与单片机相接的引脚只有14个,其中8个接在P0口上实现字形的显示,剩下的6个接在P2口用于选择6个数字型LED中的一个显示,所以每次只能显示一个数字。
要实现多个数字的显示需要快速显示每个LED,利用人的视觉差来实现多个数字同时显示。
计时只用到定时计数器T1(因为需要配合中断优先级,故没有使用T0,下文会详细讲到)。
另外还用到了两个按键,和两个LED灯(红、绿)。
按键用于控制开始计时和暂停、重置,LED 灯用于指示当前工作状态。
二、主要工具Keil uVision3,ISIS 7 Professional,AT89C51基础组件(试验箱)。
三、线路连接图(ISIS 7 Professional环境)四、实现细则显示电路数字型LED的实现原理为每个单元(共6个单元)含8个发光独立的LED灯,其中7个构成“8”字形,剩下的一个为小数点。
6个单元的每个相同位置引脚并联起来,最后通过8根线连接到单片机的P0口。
因此如果不把另外6根线连接上,每次通过P0口输出值时6个显示单元都会显示相同的图形(数字)。
LED单元组中另外6根引脚连接到单片机上,实现“按位显示”,并且是低电平选择,例如“111101”对应显示的是从右到左的第5个LED 单元。
课程设计 单片机 60秒秒表
1任务及要求1.1设计任务学会用已经学过的单片机原理与应用的知识, 来设计一个实用性的结构简单化的小型电子产品。
编写一个程序, 实现秒计时器从00—59计时的基本功能。
利用Proteus工具来演示秒计时器的计时。
1.2设计要求利用MCS-51系列单片机作为秒表的主控制器芯片, 在单片机的P0端口和P2端口分别接两个共阴数码管, P0口驱动显示秒时间的十位, P2口驱动显示秒时间的个位。
要求做到性能稳定, 结构简单通俗易懂, 结构模块化, 从而做到节约成本。
(1)熟悉电路, 了解P0和P1口的作用。
(2)熟悉W A VE编译环境。
(3)熟练掌握汇编语言, 调用延时程序。
2设计思想2.1硬件设计将单片机设计成控制器, 在AT89C51的P0口和P2口都接7SEG-COM-CATHODE, P0口接上拉电阻, 分别显示十位和个位数字。
2.2软件设计通过单片机实现控制00-59的计数, 根据设计的要求, 将0到59的数据除以10, 分别取商和余数。
并且当一秒钟到来时, 计数单元加1, 到达60时, 则自动返回到0, 从新秒计数。
同时在计数过程中调用延时程序。
3电路原理与电路图3.1电路原理编写程序对80C51芯片进行初始化, 在编程过程中主要使用延迟程序来实现秒计时器的计时功能。
用Proteus软件来实现秒计时器的仿真, 其中将P0口和P1口分别作为高低位输出端口。
3.2电路原理图图3.1电路原理图4流程图与算法描述4.1函数流程图4.1.1实验系统流程图图4.1.1 实验系统流程示意图4.1.2延时程序流程图图4.1.2 延时程序流程图4.2 算法描述根据设计的要求, 利用单片机控制, 实现秒计数并显示, 具体设计如下:(1)将0到59的数据通过对10整除和对10求余, 将数据的个位和十位分开。
DIV AB(2)加1计数INC @R0(3)延时程序DELAY: MOV R5,#100DELAY2: MOV R6,#20DELAY1: MOV R7,#248DJNZ R7,$DJNZ R6,DELAY1DJNZ R5,DELAY25仿真分析程序采用汇编语言编写, 并用protues软件编译。
单片机课程设计---电子秒表设计
单片机原理及系统课程设计摘要本设计是一个基于单片机的电子秒表设计。
设计采用AT89C51单片机和四位一体的LED数码管,通过单片机内部定时器/计数器定时的原理来达到秒表的计时功能。
设计中秒表的开始,暂停功能是通过控制单片机内部定时器的打开与关闭来实现的。
最后采用proteus仿真软件将软件与硬件相结合来模拟实现秒表的各项功能。
关键词:单片机;秒表;功能AbstractThis design is a microcontroller-based electronic stopwatch design. Design using AT89C51 microcontroller and four-in-one LED digital tube, through the microcontroller internal timer / counter timing principle to achieve a stopwatch timing function. Design of the stopwatch to start, pause function is achieved by opening and closing of the control microcontroller internal timer. Finally, proteus simulation software to software and hardware combination to simulate the various functions of the stopwatch. Keyword :SCM ,Stopwatch,functions基于单片机的秒表设计1引言随着现代科技的发展,自动化理念已经深入到了人们生活的各个领域。
本课程设计是在学习先修课程《单片机原理与系统设计》之后,为加强对学生系统设计和应用能力的培养而开设的综合设计训练环节。
单片机基于PROTEUS仿真的秒表的课程设计
1 引言1.1 课程设计的目的1) 通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。
2) 通过本次课程设计将单片机软硬件结合起来,对程序进行编辑,校验,锻炼理论联系实际的能力。
3) 综合运用《单片机原理及应用》课程的理论知识、与设计课题相关的参考资料、基本开发仪器及工具和实验室所具有的其它软硬件环境,设计一个典型的单片机应用系统并通过仿真调试出结果。
4) 通过本次课程设计提高学生的综合能力、动手能力、文献资料查阅能力,为毕业设计和以后工作打下一个良好的基础。
1.2 课程设计的任务用Proteus仿真MCS51系列单片机及其外围电路,用它与Keil开发工具结合,搭建单片机开发平台。
设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表计时器。
基本功能要求:用AT89C51设计一个2位LED数码显示“秒表”,开始时,显示“00”:第一次按下SP1后就开始从0~9.9计时,显示精度为0.1s;第二次按SP1后,计时停止,显示当前计时值;第三次按SP1后,及时停止归零。
1.3 课程设计的要求1)硬件设计:根据任务要求,完成单片机最小系统及其扩展设计,组成功能完整的系统;2)软件设计:根据秒表的设计要求,完成控制软件的编写与调试;3)用PROTEUS ARES绘制电路原理图并生成PCB图;4)PROTEUS仿真。
2 硬件设计2.1 设计方案介绍及工作原理说明该实验要求进行计时并在数码管上显示时间,则可利用proteus仿真软件设计电路并仿真AT89C51。
使用AT89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止各项功能。
对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大。
基于protues仿真的多功能数字时钟课程设计报告
课程设计报告题目:数字时钟设计学生姓名: xxxxx 学生学号: xxxxxxx 系别: xxxxxxxxxxxxxx 专业: xxx 届别: xxxx 指导教师: xxxxxxxxxx学院制xxxx年xx月数字时钟学生:xxxx指导教师:xxxxxxxxxxx学院 xxxx1 课程设计的任务与要求1.1 课程设计的任务本设计主要研究数字时钟系统,对系统设备的软、硬件各个部分进行了研究。
1.2 课程设计的要求要求通过数字时钟系统,对时钟的年、月、日、星期、时、分、秒进行调节。
1.3 课程设计的研究基础熟悉并掌握Proteus及Keil uVision2的使用,学会应用已经学习过的知识,此次设计主要研究的是在单片机控制下工作的,以单片机组成的中央处理单元,来处理信号并发出控制命令,通过开关按键对时钟进行控制。
2 数字时钟系统方案制定2.1 方案提出方案一:图2.1.1 51单片机控制系统原理框图其工作原理为:本设计采用AT89C51单片机作为本次课程设计的控制模块。
单片机可把由DS18B20、DS1302、AT24C02中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、时间和年份的显示。
以LCD液晶显示器为显示模块,把单片机传来的的数据显示出来,并且显示多样化,在显示电路中,主要靠按键来实现各种显示要求的选择与切换。
方案二:图2.1.2 52单片机控制系统原理框图其工作原理为:本设计采用AT89C51单片机作为本次课程设计的控制模块。
以LCD液晶显示器为显示模块,把单片机传来的的数据显示出来,显示时间,通过按键进行控制。
2.2 方案比较论证方案一是通过按键对时钟进行调节,没有年月日和星期的显示,同样也没有温度的显示。
方案二同样是通过按键对时钟进行调节,但它具有年月日、星期、温度和时间的显示,功能比较全面,就如同万年历一样,可以让大家得到更多的信息。
2.3方案选择由上述方案的比较论证,由于方案二太过于单调,所以我选择方案一,因为它功能比较全面。
单片机课程设计+基于单片机的秒表系统设计
目录一总体方案设计 (1)1.1 设计要求 (1)1.2 优点及意义 (1)1.3 初步设计思路 (1)二、硬件电路设计 (1)2.1 AT89C51单片机模块 (1)2.1.1 89C5单片机 (1)2.1.1单片机中断系统 (2)2.2 复位与时钟电路模块 (3)2.2.1晶振电路 (3)2.2.2 复位电路 (3)2.3按键模块 (3)2.4蜂鸣器模块 (4)①蜂鸣器工作原理 (4)2.5数码管模块 (4)三、软件设计 (5)3.1程序流程图 (5)3.2主程序设计 (5)3.2.1定义管脚、指示灯、蜂鸣器 (5)3.2.2启动与暂停 (5)3.2.3每秒报警 (7)3.2.4数码管显示 (7)3.3子程序设计 (8)3.3.1 定时器子程序设计 (8)总结 (9)参考文献 (10)附录 (11)一总体方案设计1.1 设计要求1、设计精度为0.1S的秒表系统。
2、设置启动、暂停、清零按钮。
3、设计每一秒钟都有提醒功能。
4、秒表的最长计时长度为9:59:59,超过此长度,报警。
1.2 优点及意义单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
1.3 初步设计思路该实验要求进行计时并在数码管上显示时间,则可利用单片机微机仿真实验系统中的芯片AT89C51中的P3.2管脚做为外部中断0的入口地址,并实现“开始/停止”、“暂停”、“清零”按键的功能;定时器T0作为每秒加一的定时器。
单片机秒表设计课程设计报告范文2
单片机秒表设计课程设计报告范文2基于52单片机的简易秒表课程设计摘要自20世纪70年代单片微型计算机(简称单片机)诞生以来,单片机以其功能强、体积小、质量轻、价格低、可靠性高、可塑性好等优点得到了广泛的应用,成为目前世界上数量最多的计算机和工程师们开发嵌入式应用系统和小型智能化产品的首选控制器。
一.设计任务及要求1、题目基于51单片机的简易秒表课程设计2、基本要求1)使用51系列单片机作为主控芯片构建最小系统,熟练掌握晶振与复位电路;2)用LED数码管来显示倒计时;3)用按键来实现起动与停止等功能;4)设计一完整电路,要求应用Protue软件进行仿真验证,并要求焊接实物后进行功能调试。
3、设计目的1)掌握单片机的接口技术及外围芯片的工作原理及控制方法;2)进一步掌握单片机程序编写及调试过程,掌握模块化程序设计方法;3)掌握LED数码管的工作原理;4)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解;4)掌握定时器、外部中断的设置和编程原理;5)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4、设计任务1)用STC89C52RC单片机的定时器/计数器定时和计数的原理,通过proteu仿真软件模拟设计一个2位LED数码显示“秒表”,显示时间为00-99秒,每秒自动加一或减一。
2)另设计一个“开始(正计数)”按键和一个“倒计数”按键,再增加一个“暂停”按键。
按键说明:按“开始”按键,开始正计数,数码管显示从00开始,每秒自动加一;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“倒计数”按键,系统在原先的计数上自动减一秒。
按“总开关”按键,结束计数;再按一下,系统清零,数码管显示00。
二、总体方案设计1、硬件方案设计1)时钟电路模块时钟电路由一个晶体振荡器12MHZ和两个22pF的瓷片电容组成。
引线某TAL1和某TAL2分别是放大器的输入端和输出端。
基于51单片机的数字秒表毕业设计论文
摘要近年来随着科学技术的发展,单片机的应用正在不断走下面还深入。
本文简单阐述了基于单片机的数字秒表的的设计。
本设计的主要特点是计时精度达到0.01秒,是各种体育竞赛的必要设备之一。
本设计的数字秒表采用AT89S52单片机为主要器件,利用其定时器的原理,结合显示电路、LED数码管以及外部外部中断电路来设计计时器。
将软硬件结合起来,使得系统能实现0~99.99秒的计时,计时精度位0.01秒。
硬件系统利用proteus仿真,在仿真中就能观察到系统的实际运行情况。
关键字:单片机数字秒表仿真一硬件设计1、1 总体方案的设计数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。
本设计中用单片机和数码管组成数字秒表力求结构简单。
设计中包括硬件电路的设计和系统程序的设计。
硬件电路主要有主控制器、控制按钮与显示电路组成。
主控制器采用单片机AT89S52,显示电路采用四位共阴极数码管显示计时时间。
本设计利用AT89S52单片机的定时器,使其能精确计时。
利用中断系统使其实现启动和暂停的功能,P0口输出段码数据,P2.0~P2.2连上译码器作为位选,P3.2和P3.3接口的两个按钮分别实现启动和暂停功能。
设计的基本要求是正确性。
硬件电路按下图进行设计。
计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位(即最后一位)加一,达到100次就对100ms位加一,以此类推,直到99.99s为止。
再看按键的处理。
两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动和暂停。
1.2 单片机的选择本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的经验。
并根据自己的实际情况,选用了ATMEL公司的AT89S52。
ATMEL公司的89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作、低廉的价格完全替代了87C5162和875152,低电压、低功耗,有DIP、PLCC、QFP封装,是目前性能最好、价格最低、最受欢迎的单片机之一。
单片机秒表设计课程设计报告
单片机课程设计报告一、实验题目秒表系统设计——用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
二、系统总体功能用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
有一个按键来启动秒表的开始和结束。
增加一个清零按钮,计时结束后可以清零。
三、实验目的1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
4、通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
四、系统设计方案本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus 仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。
五、试验设计所需硬件(模拟硬件)Atmel89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。
由于条件限制本实验采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。
图2 Atmel89C52单片机外部引脚图六、试验设计原理图图3 试验设计电路图七、软件设计分析程序流程图:是 否 是 否定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P0口和P2口送显示时间数码管显示中断返回主函数对定时器/计数器初始化始化程序开始判断P0^4口是否有低电平信号开中断并启动定时器开始、暂停或者继续 计数置零判断P0^7口是否有低电平信号 手动开关实验程序清单:#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]="2010-05-18";uchar code time[]="23:00:00";uchar code xi1[]="mon";uchar code xi2[]="tue";uchar code xi3[]="wed";uchar code xi4[]="thu";uchar code xi5[]="fri";uchar code xi6[]="sat";uchar code xi7[]="sun";sbit wr=P3^3;sbit rd=P3^5;sbit lcde=P3^4;uint i,shi,fen,miao,nian,yue,ri,count,num,x; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_add(uchar add){rd=0;P0=add;lcde=1;delay(5);lcde=0;}void write_date(uchar date){rd=1;P0=date;lcde=1;delay(5);lcde=0;}void writesfm(uchar add,uchar date){uchar s,g;s=date/10;g=date%10;write_add(0x80+0x40+add);write_date(0x30+s);write_date(0x30+g);}void writenyr(uchar add,uchar date) {uchar s,g;s=date/10;g=date%10;write_add(0x80+0x00+add);write_date(0x30+s);write_date(0x30+g);}void xi(uchar a){if(a==1){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi1[i]);delay(5);}}if(a==2){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi2[i]);delay(5);}}if(a==3){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi3[i]);delay(5);}}if(a==4){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi4[i]);delay(5);}}if(a==5){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi5[i]);delay(5);}}if(a==6){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi6[i]);delay(5);}}if(a==7){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi7[i]);delay(5);}}}void init(){lcde=0;wr=0;write_add(0x38);write_add(0x0c);write_add(0x06);write_add(0x01);write_add(0x80+0x00+0); for(i=0;i<10;i++){write_date(table[i]); delay(5);}write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi7[i]);delay(5);}write_add(0x80+0x40+0); for(i=0;i<8;i++){write_date(time[i]); delay(5);}}void main(){init();TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;while(1){key();if(count==20){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;ri++;x++;xi(x);if(x==7){x=0;}if(ri==30){ri=0;yue++;if(yue==13){yue=0;nian++;if(nian==100){nian=0;}writenyr(2,nian);}writenyr(5,yue);}writenyr(8,ri);}writesfm(0,shi);}writesfm(3,fen);}writesfm(6,miao);}}}void t()interrupt 1{TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;}八、试验设计总结通过这一周的课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。
单片机实验——秒表--(详细步骤)
简易秒表制作1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。
2 子情境目标:(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘3 知识点链接独立式按键的使用:图5-49为按键与单片机的连接图。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。
其抖动过程如图5-50所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。
在触点抖动期间检测按键的通与断状态,可能导致判断出错。
即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。
为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。
本子情境中采用软件去抖。
图按键与单片机连接图图按键被按下时电压的变化4 任务步骤4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。
1、选取元器件①单片机:AT89C51②两位共阴极蓝色数码管:7SEG-MPX2-CC-BLUE③排阻:RESPACK-8④按钮:BUTTON2、放置元器件、放置电源和地、连线、元器件属性设置简易秒表的原理图如图5-51所示,整个电路设计操作都在ISIS平台中进行。
与子情景3相似,故不详述。
图简易秒表的原理图4.2 步骤二:源程序设计与目标代码文件生成(1)程序流程图主程序图5-52 秒表流程图(2)源程序设计#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit key1=P3^0; //定义"启动"按钮sbit key2=P3^1; //定义"停止"按钮sbit key3=P3^2; //定义"复位"按钮uchar temp,aa,shi,ge;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极数码管编码void display(uchar shi,uchar ge); //声明显示子函数void delay(uint z); //声明延时子函数void init(); //声明初始化函数void main(){init(); //调用初始化子程序while(1){if(key1==0) //检测"启动"按钮是否按下{delay(10); //延时去抖动if(key1==0) //再次检测"启动"按钮是否按下{while(!key1); //松手检测,若按键没有释放,key1始终为0,那么!key1始终为1,程序就一直停在此while语句处TR0=1; //启动定时器开始工作}}if(key2==0) //检测"停止"按钮是否按下{delay(10); //延时去抖动if(key2==0) //再次检测"停止"按钮是否按下{while(!key2); //松手检测TR0=0; //关闭定时器}}if(key3==0) //检测"复位"按钮是否按下{delay(10); //延时去抖动if(key3==0) //再次检测"复位"按钮是否按下{while(!key3); //松手检测temp=0; //将变量temp的值清零shi=0; //将十位清零ge=0; //将个位清零TR0=0; //关闭定时器}}display(shi,ge); //调用显示子函数}}void delay(uint z) //延时子函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void display(uchar shi,uchar ge) //显示子程序{P2=0xbf;P0=table[shi];delay(10);P2=0x7f;P0=table[ge];delay(10); //使用动态扫描的方法实现数码管显示}void init() //初始化子程序{temp=0;TMOD=0x01; //使用定时器T0的方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; //定时50ms中断一次EA=1; //中断总允许ET0=1; //允许定时器T0中断}void timer0() interrupt 1{TH0=(65536-50000)/256;//重新赋初值TL0=(65536-50000)%256;aa++; //中断一次变量aa的值加1if(aa==20) //中断20次后,定时时间为20*50ms=1000ms=1s,将变量temp的值加1{aa=0;temp++;if(temp==60) //秒表到达60s后回零{temp=0;}shi=temp%100/10;ge=temp%10; //分离个位和十位}}4.3 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到miaobiao.hex文件,单击“打开”按钮,完成添加文件。
单片机课程设计_基于单片机的数字秒表设计
1 引言1.1 单片机的发展概况单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。
并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。
管脚图如图1.1所示。
图1.1 AT89C52单片机引脚图(1) 电源地组Vcc和Vss;VCC—(40)脚接+5V电压;VSS—(20)脚接地(2) 时钟电路组XTAL1和XTAL2(3) 控制信号组RST/ALE/PSEN和EA(4) I/O端口P0, P1, P2和P3近来,单片机的发展尤为迅猛,并且趋于高智能化、存储器大量化、更多的外围电路内装化以及工艺上的多元化等方向,广泛应用于单机应用领域、多机应用领域、自动控制领域和智能化控制领域等。
单片机应用系统的结构通常分为三个层次,即单片机、单片机系统和单片机应用系统。
单片机通常指应用系统主处理机,即所选择的单片机器件等。
单片机系统指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统。
时钟电路、复位电路和扩展存储器等与单片机共同构成了单片机系统。
单片机应用系统指能满足嵌入对象要求的全部电路系统。
在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。
单片机应用系统层次关系如图1.2所示。
图1.2 单片机应用系统三个层次的关系1.2数字秒表的描述与分析1.21问题描述设计一个秒表,第一次按键,开始计数,数码管显示从00.00每10毫秒自动加1;第两二次按键,系统暂停计数,数码管显示当前的计数;第三次按键系统清零,数码管显示00.00 。
1.22设计要求1.使用四位数码管显示,显示时间00.00~99.99秒;2.正常计数时,每10毫秒自动加1;3.一个按键(包括开始、暂停、清零),一个复位按键;4.实现计数、复位、清零功能;5.单片机通电后,首先初始化。
基于Proteus软件仿真的秒表时钟设计
基于 Proteus软件仿真的秒表时钟设计摘要:Proteus软件是一款强大的EDA软件,可以用来仿真单片机及外围器件,通过搭建电路即可进行仿真,测试控制系统的功能。
利用Proteus软件仿真秒表时钟系统,可以十分方便的优化硬件结构以及修改程序,以便能够制造出性能更加强大的设备。
【1】关键词:Proteus,仿真,单片机一个完整的系统需要包括硬件、软件等方面的设计,在本文中分别进行了讨论,并根据相关功能列出对应的程序。
一、硬件电路图及工作原理描述1)单片机最小系统:由AT89C52单片机芯片及其外部电路组成。
芯片有成品可直接购买,外围电路(复位电路和晶振电路)需要搭建。
复位电路可实现单片机复位,回到初始状态,主要由充电电容和复位按钮组成;晶振电路可为单片机提供动力,驱动单片机工作,主要由晶振和电容组成。
2)数码管显示电路:由4个2位共阴极数码管组成,其段选端连接单片机的位置相同,共用I/O口,而位选端连接到单片机不同的I/O。
给位选端高电平选中所需数码管,再给段选端不同口发光二极管高低电平,显示不同数字。
3)蜂鸣器和按键电路:在蜂鸣器控制电路中,控制NPN的开关即可控制蜂鸣器的导通。
在按键电路中,只要开关按下就可以将单片机I/O接地,输入低电平。
图1 秒表系统总电路二、软件功能对应实现程序1)秒表以0.1S精度开始计时,用定时器0实现,首先要给定时器装初值,计数满溢出进入中断。
计时精度程序:2)秒表启动停止是由key0按键控制,如果按下导通接地,则TR0=1,启动定时器,开始计时。
秒表清0则由key1控制,如果按下导通接地,times等计数显示值均为0.启停程序:清0程序:3)计时一分钟提醒,主要是判断计时变量timemin是否加1,如果加1蜂鸣器响一段时间。
一分钟提醒程序:4)秒表的最长计时长度为1:59:59,超过此长度,报警,主要是判断计时变量timeh是否将要达到2,如果达到最大值,蜂鸣器响,数码管闪烁。
单片机秒表仿真课程设计
单片机秒表仿真课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和秒表的工作机制;2. 学生能掌握单片机编程中的基本指令和功能实现;3. 学生能了解仿真软件的使用,并运用其完成单片机秒表的模拟。
技能目标:1. 学生能运用已学知识,独立完成单片机秒表的编程;2. 学生能通过仿真软件对编写好的程序进行测试,并优化程序;3. 学生能培养实际操作能力,将理论知识应用于实践。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,激发创新意识和探索精神;2. 学生在团队协作中,提高沟通能力,培养合作精神;3. 学生通过课程学习,认识到科技发展对社会的重要性,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的实际操作能力和创新思维。
学生特点:学生具备一定的单片机基础知识,对编程有初步了解,对实际操作有较高的兴趣。
教学要求:教师需结合学生特点,以引导为主,注重培养学生的动手能力和团队协作能力,将理论知识与实践相结合,提高学生的综合素养。
通过课程目标的分解,使学生在课程结束后能够达到预定的学习成果。
二、教学内容1. 单片机基础原理回顾:复习单片机的内部结构、工作原理及指令系统,重点掌握定时器/计数器的工作机制。
相关教材章节:第一章单片机概述,第二章单片机内部结构及工作原理,第三章指令系统及编程。
2. 秒表功能分析:详细讲解秒表的原理,包括秒、分、时的计数关系,以及如何通过单片机的定时器实现计时功能。
相关教材章节:第四章定时器/计数器,第六章单片机应用实例。
3. 单片机编程实现:教授如何使用汇编语言或C语言编写单片机程序,实现秒表的基本功能。
相关教材章节:第五章编程语言及编程技巧。
4. 仿真软件操作:介绍仿真软件的使用方法,使学生能够利用仿真软件对编写好的程序进行调试和优化。
相关教材章节:第七章仿真软件的使用。
5. 实践操作:指导学生进行实际操作,分组完成单片机秒表的编程、仿真和调试,培养学生的动手能力和团队协作精神。
电子跑秒表计时器设计——基于PROTEUS
【转】电子跑秒表计时器设计——基于PROTEUS使用Protues软件绘制的电路图,使用的89C51型单片机。
与之相应的使用KEIL软件编写的C语言程序代码:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit P20=P2^0;sbit P21=P2^1;sbit P22=P2^2;sbit P17=P1^7;uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段位码uchar ms;uint LED0,LED1,LED2,LED3,LED4,LED5; // 各位的数字int m,n,delay;bit add;bit sub;bit scankey;bit start;bit stop;bit ready;bit start0;void begin1() //初始化子程序{m=0;n=0;ms=0;LED0=0;LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;add=0;sub=0;start=0;ready=0;start0=0;scankey=0;}void display(){ switch (ms%6){ //显示子程序 case 0:P3=0xfe;P1=table[LED3];P17=0;break;case 1:P3=0xfd;P1=table[LED2];P17=0;break;case 2:P3=0xfb;P1=table[LED1];P17=1;break;case 3:P3=0xf7;P1=table[LED0];P17=0;break;case 4:P3=0xef;P1=table[LED4];P17=1;break;case 5:P3=0xdf;P1=table[LED5];P17=0;break;default: return;}}void time0(void) interrupt 1 using 1 //中断程序{TL0=0x18 ;TH0=0xfc;ms++;if(ms==10){ ms=0;scankey=1; //扫描键盘标志位有效 }display(); //显示程序调用}void add1(time)uint time;{ uint n,a;a=time/1000;LED0=a; //计算十秒位数值n=time%1000;LED1=(n/100); //计算秒位数值n=n%100;LED2=(n/10); //计算十分一秒位数值LED3=n%10; //计算百分一秒位数值}void add2(t){ LED5=(t/10); //计算分钟十位数值LED4=t%10; //计算分钟个位数值}void scan() //扫描开关输入子程序{ P2=0xff;if(P20==0&&ready==0&&start0==0) //K1计时与暂停{ for(delay=0;delay<=200;delay++);P2=0xff;if(P20==0)start=!start;}if(P21==0&&ready==0&&start0==0) //K2计时 { for(delay=0;delay<=200;delay++);P2=0xff;if(P21==0)stop=1;}if(P22==0&&ready==0&&start0==0) //K3进入倒计时状态{ for(delay=0;delay<=200;delay++);P2=0xff;if(P22==0)ready=1;}if(P20==0&&ready==1&&start0==0) //K1调整倒计值加标志位有效{ for(delay=0;delay<=200;delay++);P2=0xff;if(P20==0&&ready==1)add=1;}if(P21==0&&ready==1&&start0==0) //K2调整倒计值减标志位有效{ for(delay=0;delay<=200;delay++);P2=0xff;if(P21==0&&ready==1)sub=1;}if(P22==0&&start0==1) //K3倒计时暂停{ for(delay=0;delay<=200;delay++);P2=0xff;if(P22==0&&start0==1)start0=0;}if(P22==0&&ready==1&&start0==0) //K3倒计时开始{ for(delay=0;delay<=200;delay++);P2=0xff;if(P22==0&&ready==1)start0=1;}if(P21==0&&start0==1) //K2倒计时清零,只能在倒进行时使用{ for(delay=0;delay<=200;delay++);P2=0xff;if(P21==0&&start0==1)start=0;ready=0;start0=0;stop=1;}}void main(){begin1();TMOD=0x01;TL0=0x18;TH0=0xfc;EA=1;ET0=1;TR0=1;for(;;){if(scankey==1) //进行键盘扫描{ scankey=0;scan();if(start==1&ready==0) //计时开始{ m++;if(m==6000){m=0; n++;if(n==60){n=0;start=0;}}add1(m);add2(n);}if(stop==1&ready==0) //计时清零{m=0;n=0;start=0;stop=0;add1(m);add2(n);}if(add==1) //倒计时初值加10 { m=m+10;add=0;if(m==6000){m=0; n++;if(n==60)n=0;}add1(m);add2(n);}if(sub==1) //倒计时初值减10 { m=m-10;sub=0;if(m==-1&&n!=0){n--;m=5999;}if(m==-1&&n==0){m=0;}add1(m);add2(n);}if(start0==1) //倒计时{ m--;if(m==-1&&n!=0){n--;m=5999;}if(m==-1&&n==0){m=0;ready=0;start0=0;start=0;}add1(m);add2(n);}}}。
基于protues的单片机课程设计60s倒计时及电子时钟
3、设计的大体分析: 这两个设计题目要求的硬件电路都主要由 AT89C51 芯片、LED 数码管显示器、晶
振产生电路、复位电路组成。其中电子时钟的课程设计外加了 8155 芯片的扩展电路。还 有 AT89C51 芯片主要由软件完成驱动。最终通过 Keil 与 Proteus 软件联调完成模拟仿真功 能。
限于,设计者的学识有限,缺点错误在所难免,殷切希望老师,同学给予批评、指正。 【关键词】 单片机;AT89S51; LED 数码管显示器;keil C51;倒计时器;电子时钟
英文摘要
Permeate in the social realm along with the calculator in recent years, single slice the application of the machine just at constantly alignment thorough, arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system, single slice machine usually Be a core parts to use, only single slice the machine aspect knowledge is not enough, return should according to concrete the hardware structure, and aim at concrete application the software of[with] the object characteristics combine to make perfect.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言
1.1 课程设计的目的
1) 通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。
2) 通过本次课程设计将单片机软硬件结合起来,对程序进行编辑,校验,锻炼理论联系实际的能力。
3) 综合运用《单片机原理及应用》课程的理论知识、与设计课题相关的参考资料、基本开发仪器及工具和实验室所具有的其它软硬件环境,设计一个典型的单片机应用系统并通过仿真调试出结果。
4) 通过本次课程设计提高学生的综合能力、动手能力、文献资料查阅能力,为毕业设计和以后工作打下一个良好的基础。
1.2 课程设计的任务
用Proteus仿真MCS51系列单片机及其外围电路,用它与Keil开发工具结合,搭建单片机开发平台。
设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表计时器。
基本功能要求:用AT89C51设计一个2位LED数码显示“秒表”,开始时,显示“00”:第一次按下SP1后就开始从0~9.9计时,显示精度为0.1s;第二次按SP1后,计时停止,显示当前计时值;第三次按SP1后,及时停止归零。
1.3 课程设计的要求
1)硬件设计:根据任务要求,完成单片机最小系统及其扩展设计,组成功
能完整的系统;
2)软件设计:根据秒表的设计要求,完成控制软件的编写与调试;
3)用PROTEUS ARES绘制电路原理图并生成PCB图;
4)PROTEUS仿真。
2 硬件设计
2.1 设计方案介绍及工作原理说明
该实验要求进行计时并在数码管上显示时间,则可利用proteus仿真软件设计电路并仿真AT89C51。
使用AT89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止各项功能。
对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大。
LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
键盘部分方案:键盘控制采用独立式按键,按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。
键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。
2.2 控制芯片的介绍
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器,的8位CMOS微控制器,使用高密度、非易失存储技术制造,并与80S52引脚和指令系统完全兼容。
主要性能:
与MCS-51微控制器产品系列兼容。
片内有4KB可在线重复编程的快闪擦写存储器
存储数据保存时间为10年
宽工作电压范围:VCC可为2.7V到6V
全静态工作:可从0Hz至16MHz
程序存储器具有3级加密保护
128*8位内部RAB
32条可编程I/O线
两个16位定时器/计数器
中断结构具有5个中断源和2个优先级
可编程全双串行通道
空闲状态维持低功耗和掉电状态保存存储内容
2.3 硬件接线
时钟引脚:XTAL1和XTAL2与内部的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
PO口:PO.O-PO.6端口用排线连接到数码管显示模块区域中的A-G端口上;PO.O对应着A,......,PO.6对应着G。
P2口:P2.O-P2.6端口用排线连接到数码管显示模块区域中的A-G端口上;P2.O对应着A,......,P2.6对应着G。
P3.7接“开始”按键。
3 软件设计
3.1 程序流程
3.1.1 主程序
图3.1 主程序图
3.1.2 中断服务程序
图3.2 中断服务程序图3.2 源程序
SECOND EQU 30H
TCOUNT EQU 31H
KCOUNT EQU 32H
KEY BIT P3.7
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START: MOV DPTR,#TABLE
MOV P0,#3FH
MOV P2,#3FH ;开始,数码管显示"00"
MOV SECOND,#00H
MOV TCOUNT,#00H
MOV KCOUNT,#00H
MOV TMOD,#01H ;定时器0工作在方式1
MOV TL0,#(65536-50000)/256
MOV TH0,#(65536-50000) MOD 256 K1: JB KEY,$ ;等待按键
LCALL DELAY
JB KEY,$
MOV A,KCOUNT
CJNE A,#00H,K2 ;判断按键次数
SETB TR0 ;第1次按键,启动定时器
MOV IE,#82H
JNB KEY,$
INC KCOUNT ;按键抬起,按键次数值加1
LJMP K1
K2: CJNE A,#01H,K3
CLR TR0 ;第2次按键,关闭定时器
MOV IE,#00H
JNB KEY,$
INC KCOUNT ;按键抬起,按键次数值加1
LJMP K1
K3: CJNE A,#02H,K1 ;第3次按键,返回初始状态JNB KEY,$
LJMP START
INT_T0: MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000) MOD 256
INC TCOUNT
MOV A,TCOUNT
CJNE A,#2,I2 ;是否计够0.1秒
MOV TCOUNT,#00H
INC SECOND
MOV A,SECOND
CJNE A,#100,I1 ;是否计够10秒
MOV SECOND,#00H
I1: MOV A,SECOND
MOV B,#10
DIV AB
MOVC A,@A+DPTR ;显示时间
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
I2: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY: MOV R6,#20
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
END
4 调试与仿真
4.1 硬件电路
图4.1 硬件电路图4.2 仿真
图4.2 Proteus仿真图
5 生成PCB
图5.1 PCB图
6 课程设计体会
通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解。
将单片机软硬件结合起来,对程序进行编辑,校验,锻炼了理论联系实际的能力。
提高自己的综合能力、动手能力、文献资料查阅能力,为毕业设计和以后工作打下一个良好的基础。
参考文献
[1] 胡汉才.单片机原理及其接口技术.北京:清华大学出版社
[2] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空天大学出版社
[3] 沈德金.MCS-51系列单片机接口电路与应用程序实例.北京:北京航空航天大学版社。