ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:1.51MB ,
资源ID:14501965      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14501965.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的八位数码管秒表计数设计.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的八位数码管秒表计数设计.docx

1、基于单片机的八位数码管秒表计数设计绪论1第一节 Proteus仿真软件简介31.1 概述31.2 Proteus软件的优点4第二节 电路结构42.1实验要求42.2 89c51系列单片机件简介42.2.1.单片机的基本组成42.3 数码管42.3.1 数码管的特点42.3.2 数码管的驱动方式52.3.3 数码管的主要参数52.3.4 数码管的应用5第三节 Proteus软件绘制原理图63.1 进入Proteus ISIS63.2 工作界面63.3选择课题所需要的材料73.4程序流程图103.5程序的设计与修改16第四节 Proteus仿真174.1 仿真设置174.2 程序调入184.3 仿

2、真结果19第五节XL600实验板设计验证20实训小结24绪论数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过

3、程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。数码管是一种显示屏,可以通过对其不同的管脚输以相对的电流,并使其发亮,发光从而显示出数字能够显示出的时间,日期,温度等有可用数字表示的参数,由于它的价格便宜,使用简单,在电器,特别是家电领域应用极为广泛,在空调,热水器冰箱等等绝大多数电器产品用的都是数码管,其它家电也用,液晶屏与显示屏等等。数码管按段数分为七段数码管和八段数码管,八段数

4、码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相

5、应字段就不亮。51单片机能够展示8位数码管的动态应用,本课题也意在利用单片机来显示8位数码管的动态显示以下为本本课题的研究过程。第一节 Proteus仿真软件简介1.1 概述 Proteus是一种功能强大的电子设计自动化软件,提供智能原理图设计系统、SPICE模拟电路、数字电路及MCU器件混合仿真系统和PCB设计系统功能。其不仅可以仿真传统的电路分析实验、模拟电子线路实验、数字电路实验等,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统(单片机应用系统、ARM应用系统)的仿真实验,这也是其它任何仿真软件无力所及的。例如,其支持单片机和周边设备,可以仿真51系列、AVR、PIC、

6、Motorola的68系列等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件等。在编译方面,它也支持Keil和MPLAB等多种编译器。Proteus的构成见图1-1。图1-11.2 Proteus软件的优点1.智能原理图设计(ISIS)2.完善的电路仿真功能(Prospice)3.独特的单片机协同仿真功能(VSM)4.实用的PCB设计平台第二节 电路结构2.1实验要求 基于89c51系列单片机设计8位数码管秒表 2.2 89c51系列单片机件简介2.2.1

7、.单片机的基本组成图2-1单片机51组成2.3 数码管2.3.1 数码管的特点 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴

8、极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。2.3.2 数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5

9、个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,

10、该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.3.3 数码管的主要参数8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。长*宽*高:长数码管正放时,水平方向的长度;宽数码管正放时,垂直方向上的长度

11、;高数码管的厚度。时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。数码管使用的电流与电压 电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。2.3.4 数码管的应用数码管是一类显示屏,通过对其不同的管脚输入相对的电流,会使其发亮从而显示出数字 能够显示 、时间 、日期 、温度等所有可用数字表示的参数。由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛 (

12、空调 热水器 冰箱 等等 )。绝大多数热水器用的都是数码管 ,其他家电也用液晶屏与荧光屏。第三节 Proteus软件绘制原理图3.1 进入Proteus ISIS双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7 Professional” “ISIS 7 Professional”,出现如图3-1所示屏幕,表明进入Proteus ISIS集成环境。图3-1 启动时的屏幕3.2 工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图3-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、

13、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图3-2 Proteus ISIS的工作界面3.3 选择课题所需要的材料3.3.1根据本课题的要求和Proteus软件所提供材料库(如下图3-1所示)选择以下几种材料供课题使用和研究。元件类型元件名称元件所在库子库矩阵键盘KEYPAD-SMALLCALCSwitches&Relays1602液晶显示器ML016LOptoelectronics1位数码管(共阳)7SEG-COM-AN-BLUEOptoelectronics7SEG-COM-AN-GRNOptoelectronics7SEG-COM-ANODEOpto

14、electronics1位数码管(共阴)7SEG-COM-CAT-BLUEOptoelectronics7SEG-COM-CAT-GRNOptoelectronics7SEG-COM-CATHODEOptoelectronics2位数码管(共阳)7SEG-MPX2-CAOptoelectronics2位数码管(共阴)7SEG-MPX2-CCOptoelectronics6位数码管(共阳)7SEG-MPX6-CAOptoelectronics6位数码管(共阴)7SEG-MPX6-CCOptoelectronics8位数码管(共阳)7SEG-MPX8-CAOptoelectronics8位数码管(

15、共阴)7SEG-MPX8-CCOptoelectronics单片机80C51/80C51-BUSMicroprocessor ICs80C52/80C52-BUSMicroprocessor ICs电阻MINRES*Resistors按键BUTTONSwitches&Relays电容CAPCapacitors电解电容CAP-ELEDCapacitors晶振CRYSTALMiscellaneous蜂鸣器SOUNDERSpeakers&Sounders步进电机驱动器ULN2003AAnalog ICs步进电机MOTOR-STEPPERElectromechanical图:材料库3-13.3.2根据

16、要求所选择的材料如下图3-2所示、元件类型元件名称元件所在库8位数码管(共阴7SEG-MPX6-CCOptoelectronics单片机80C51/80C51-BUSMicroprocessor ICs电阻MINRES*Resistors按键BUTTONSwitches&Relays电容CAPCapacitors电解电容CAP-ELEDCapacitors晶振 CRYSTALMiscellaneous图3-23.3.3.在如图3-3所示的元件库中添加表1中的元件。图3-3 元件库3.3.4整理选中原件如图3-4图3-43.3.5元件完全添加后,在ProteusISIS的编辑区域中画出如图3-5

17、所示的原理图。图3-5 原理图3.4绘制程序流程图3.5 课题程序的编写及修改标题: xl系列单片机实验仪演示程序 数码管秒表计时 描述: 数码管显示秒表, 分辨率0.01s ; K1-控制按钮 第一次按下时, 启动开始计时 第二次按下时, 停止 第三次按下时, 归零 引用资源:数码管数据 p1口,数码管控制p2口 控制按钮 p3.2口 秒单位,寄存器与数码管对应关系: 秒单位 - 数码管端口 - 缓冲区 - 计时BCD码值寄存器 *;* 十万位 P20 dis_buf7 sec_bcd7 *;* 万位 P21 dis_buf6 sec_bcd6 *;* 千位 P22 dis_buf5 sec

18、_bcd5 *;* 百位 P23 dis_buf4 sec_bcd4 *;* 十位 P24 dis_buf3 sec_bcd3 *;* 个位(1.s) P25 dis_buf2 sec_bcd2 *;* 十分位(0.1s) P26 dis_buf1 sec_bcd1 *;* 百分位(0.01s) P27 dis_buf0 sec_bcd0 ;*sec equ 20hsec01H equ 21hsec02H equ 22hsec03H equ 23hsec04H equ 24hsec05H equ 25hsec06H equ 26hsec07H equ 27hdis_buf equ 30hdis

19、_buf01H equ 31hdis_buf02H equ 32hdis_buf03H equ 33hdis_buf04H equ 34hdis_buf05H equ 35hdis_buf06H equ 36hdis_buf07H equ 37hKEY_S equ 28hKEY_V equ 29hDIS_DIGIT equ 2ahDIS_INDEX equ 2bh ; 秒计数值, BCD码KEY_TIMES equ 2ch ; K1 按下次数可K1 BIT P3.2;=org 0000H LJMP MAINorg 0000BH LJMP ttt0org 0001BH LJMP ttt1;=MA

20、IN: MOV SP,#40h MOV p1,#0FFH ; 初始化端口 MOV P2,#0FFH MOV TMOD,#011H ; MOV TH1,#0DCH CLR A MOV TL1,A MOV TH0,#0FCH MOV TL0,#017H LCALL CLR_TIME ; 清零计时值 MOV DIS_DIGIT,#07FH ; 上电时选通P27数码管 CLR A MOV DIS_INDEX,A MOV KEY_TIMES,A MOV KEY_V,#01H MOV IE,#08AH ; 使能timer0, timer1中断 SETB TR0 CLR TR1MAIN_LP: LCALL

21、SCAN_KEY ; 键扫描 JZ MAIN_LP ; 无键返回 MOV R7,#10 ; 延时10ms LCALL DELAYMS ; 延时去抖动 LCALL SCAN_KEY ; 再次扫描 JZ MAIN_LP ; 无键返回 MOV KEY_V,KEY_S ; 保存键值 LCALL PROC_KEY ; 键处理 SJMP MAIN_LP ; 调回主循环;=CLR_TIME: CLR A MOV SEC,A ; 清零所有计时值 MOV sec01H,A MOV sec02H,A MOV sec03H,A MOV sec04H,A MOV sec05H,A MOV sec06H,A MOV s

22、ec07H,A LJMP UPDATE_DISBUF ; 更新显示缓冲区;=SCAN_KEY: CLR A MOV KEY_S,A MOV C,K1 ; 读按键状态 RLC A ORL KEY_S,A MOV A,KEY_S XRL A,KEY_V ; RET;=PROC_KEY: MOV A,KEY_V JB ACC.0,END_PROC_KEY INC KEY_TIMES MOV A,KEY_TIMES CJNE A,#01H,PROC_KEY1 SETB TR1 ; KEY_TIMES = 1,第一次按下K1, 启动开始计时 RETPROC_KEY1: MOV A,KEY_TIMES C

23、JNE A,#02H,PROC_KEY2 CLR TR1 ; KEY_TIMES = 2, 第二次按下K1, 停止计时 RETPROC_KEY2: LCALL CLR_TIME ; 第三次按下K1, 清零计时值 CLR A MOV KEY_TIMES,A ; 清零KEY_TIMESEND_PROC_KEY: RET;=ttt0:; 定时器0中断服程序, 用于数码管的动态扫描; DIS_INDEX - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量; DIS_DIGIT - 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,; 选通P2.0口数码管; DIS_BUF -

24、 显于缓冲区基地址 PUSH ACC PUSH PSW PUSH 00h MOV TH0,#0FCH MOV TL0,#017H MOV P2,#0FFH ; 先关闭所有数码管 MOV A,#DIS_BUF ; 获得显示缓冲区基地址 ADD A,DIS_INDEX ; 获得偏移量 MOV R0,A ; R0 = 基地址 + 偏移量 MOV A,R0 ; 获得显示代码 MOV p1,A ; 显示代码传送到p1口 MOV P2,DIS_DIGIT ; MOV A,DIS_DIGIT ; 位选通值右移(P20-P27), 下次中断时选通下一位数码管 RR A MOV DIS_DIGIT,A INC DIS_INDEX ; DIS_INDEX加1, 下次中断时显示下一位 ANL DIS_INDEX,#07h ; 当DIS_INDEX等于8(0000 1000)时, 清0 POP 00h POP PSW POP ACC RETI;=

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2