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

上传人:b****1 文档编号:14501965 上传时间:2023-06-24 格式:DOCX 页数:29 大小:1.51MB
下载 相关 举报
基于单片机的八位数码管秒表计数设计.docx_第1页
第1页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第2页
第2页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第3页
第3页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第4页
第4页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第5页
第5页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第6页
第6页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第7页
第7页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第8页
第8页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第9页
第9页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第10页
第10页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第11页
第11页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第12页
第12页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第13页
第13页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第14页
第14页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第15页
第15页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第16页
第16页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第17页
第17页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第18页
第18页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第19页
第19页 / 共29页
基于单片机的八位数码管秒表计数设计.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《基于单片机的八位数码管秒表计数设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的八位数码管秒表计数设计.docx(29页珍藏版)》请在冰点文库上搜索。

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

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

绪论·······························································1

第一节Proteus仿真软件简介····································3

1.1概述···························································3

1.2Proteus软件的优点··············································4

第二节电路结构··················································4

2.1实验要求························································4

2.289c51系列单片机件简介··········································4

2.2.1.单片机的基本组成····················································4

2.3数码管·························································4

2.3.1数码管的特点·························································4

2.3.2数码管的驱动方式····················································5

2.3.3数码管的主要参数····················································5

2.3.4数码管的应用·························································5

第三节Proteus软件绘制原理图·································6

3.1进入ProteusISIS···············································6

3.2工作界面·······················································6

3.3选择课题所需要的材料·············································7

3.4程序流程图·····················································10

3.5程序的设计与修改···············································16

第四节Proteus仿真·············································17

4.1仿真设置·······················································17

4.2程序调入······················································18

4.3仿真结果······················································19

第五节XL600实验板设计验证····································20实训小结·············································24

绪论

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

数码管是一种显示屏,可以通过对其不同的管脚输以相对的电流,并使其发亮,发光从而显示出数字能够显示出的时间,日期,温度等有可用数字表示的参数,由于它的价格便宜,使用简单,在电器,特别是家电领域应用极为广泛,在空调,热水器冰箱等等绝大多数电器产品用的都是数码管,其它家电也用,液晶屏与显示屏等等。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

51单片机能够展示8位数码管的动态应用,本课题也意在利用单片机来显示8位数码管的动态显示以下为本本课题的研究过程。

 

第一节Proteus仿真软件简介

1.1概述

Proteus是一种功能强大的电子设计自动化软件,提供智能原理图设计系统、SPICE模拟电路、数字电路及MCU器件混合仿真系统和PCB设计系统功能。

其不仅可以仿真传统的电路分析实验、模拟电子线路实验、数字电路实验等,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统(单片机应用系统、ARM应用系统)的仿真实验,这也是其它任何仿真软件无力所及的。

例如,其支持单片机和周边设备,可以仿真51系列、AVR、PIC、Motorola的68系列等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。

Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件等。

在编译方面,它也支持Keil和MPLAB等多种编译器。

Proteus的构成见图1-1。

图1-1

 

1.2Proteus软件的优点

1.智能原理图设计(ISIS)

2.完善的电路仿真功能(Prospice)

3.独特的单片机协同仿真功能(VSM)

4.实用的PCB设计平台

第二节电路结构

2.1实验要求

基于89c51系列单片机设计8位数码管秒表

2.289c51系列单片机件简介

2.2.1.单片机的基本组成

图2-1单片机51组成

2.3数码管

2.3.1数码管的特点

数码管是一种半导体发光器件,其基本单元是发光二极管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

2.3.2数码管的驱动方式‘

  数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

静态显示驱动

①静态显示驱动:

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:

),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

动态显示驱动

②动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

2.3.3数码管的主要参数

8字高度:

8字上沿与下沿的距离。

比外型高度小。

通常用英寸来表示。

范围一般为0.25-20英寸。

长*宽*高:

长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。

时钟点:

四位数码管中,第二位8与第三位8字中间的二个点。

一般用于显示时钟中的秒。

数码管使用的电流与电压电流:

静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。

电压:

查引脚排布图,看一下每段的芯片数量是多少?

当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。

2.3.4数码管的应用

数码管是一类显示屏,通过对其不同的管脚输入相对的电流,会使其发亮从而显示出数字能够显示、时间、日期、温度等所有可用数字表示的参数。

由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛(空调热水器冰箱等等)。

绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。

 

第三节Proteus软件绘制原理图

3.1进入ProteusISIS

双击桌面上的ISIS7Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus7Professional”→“ISIS7Professional”,出现如图3-1所示屏幕,表明进入ProteusISIS集成环境。

图3-1启动时的屏幕

3.2工作界面

ProteusISIS的工作界面是一种标准的Windows界面,如图3-2所示。

包括:

标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

图3-2ProteusISIS的工作界面

 

3.3选择课题所需要的材料

3.3.1根据本课题的要求和Proteus软件所提供材料库(如下图3-1所示)选择以下几种材料供课题使用和研究。

 

元件类型

元件名称

元件所在库

子库

矩阵键盘

KEYPAD-SMALLCALC

Switches&Relays

1602液晶显示器

ML016L

Optoelectronics

1位数码管(共阳)

7SEG-COM-AN-BLUE

Optoelectronics

7SEG-COM-AN-GRN

Optoelectronics

7SEG-COM-ANODE

Optoelectronics

1位数码管(共阴)

7SEG-COM-CAT-BLUE

Optoelectronics

7SEG-COM-CAT-GRN

Optoelectronics

7SEG-COM-CATHODE

Optoelectronics

2位数码管(共阳)

7SEG-MPX2-CA

Optoelectronics

2位数码管(共阴)

7SEG-MPX2-CC

Optoelectronics

6位数码管(共阳)

7SEG-MPX6-CA

Optoelectronics

6位数码管(共阴)

7SEG-MPX6-CC

Optoelectronics

8位数码管(共阳)

7SEG-MPX8-CA

Optoelectronics

8位数码管(共阴)

7SEG-MPX8-CC

Optoelectronics

单片机

80C51/80C51-BUS

MicroprocessorICs

80C52/80C52-BUS

MicroprocessorICs

电阻

MINRES*

Resistors

按键

BUTTON

Switches&Relays

电容

CAP

Capacitors

电解电容

CAP-ELED

Capacitors

晶振

CRYSTAL

Miscellaneous

蜂鸣器

SOUNDER

Speakers&Sounders

步进电机驱动器

ULN2003A

AnalogICs

步进电机

MOTOR-STEPPER

Electromechanical

图:

材料库3-1

 

3.3.2根据要求所选择的材料如下图3-2所示

元件类型

元件名称

元件所在库

8位数码管(共阴

7SEG-MPX6-CC

Optoelectronics

单片机

80C51/80C51-BUS

MicroprocessorICs

电阻

MINRES*

Resistors

按键

BUTTON

Switches&Relays

电容

CAP

Capacitors

电解电容

CAP-ELED

Capacitors

晶振

CRYSTAL

Miscellaneous

图3-2

3.3.3.在如图3-3所示的元件库中添加表1中的元件。

图3-3元件库

3.3.4整理选中原件如图3-4

图3-4

 

3.3.5元件完全添加后,在ProteusISIS的编辑区域中画出如图3-5所示的原理图。

 

图3-5原理图

 

3.4绘制程序流程图

3.5课题程序的编写及修改

标题:

xl系列单片机实验仪演示程序数码管秒表计时

描述:

数码管显示秒表,分辨率0.01s

;K1---控制按钮

第一次按下时,启动开始计时

第二次按下时,停止

第三次按下时,归零

引用资源:

数码管数据p1口,数码管控制p2口控制按钮p3.2口

秒单位,寄存器与数码管对应关系:

秒单位----------数码管端口----缓冲区---------计时BCD码值寄存器*

;*十万位P20dis_buf[7]sec_bcd[7]*

;*万位P21dis_buf[6]sec_bcd[6]*

;*千位P22dis_buf[5]sec_bcd[5]*

;*百位P23dis_buf[4]sec_bcd[4]*

;*十位P24dis_buf[3]sec_bcd[3]*

;*个位(1.s)P25dis_buf[2]sec_bcd[2]*

;*十分位(0.1s)P26dis_buf[1]sec_bcd[1]*

;*百分位(0.01s)P27dis_buf[0]sec_bcd[0]

;******************************************************************

secequ20h

sec01Hequ21h

sec02Hequ22h

sec03Hequ23h

sec04Hequ24h

sec05Hequ25h

sec06Hequ26h

sec07Hequ27h

dis_bufequ30h

dis_buf01Hequ31h

dis_buf02Hequ32h

dis_buf03Hequ33h

dis_buf04Hequ34h

dis_buf05Hequ35h

dis_buf06Hequ36h

dis_buf07Hequ37h

 

KEY_Sequ28h

KEY_Vequ29h

DIS_DIGITequ2ah

DIS_INDEXequ2bh

;秒计数值,BCD码

KEY_TIMESequ2ch;K1按下次数

K1BITP3.2

;==================================================================

org0000H

LJMPMAIN

org0000BH

LJMPttt0

org0001BH

LJMPttt1

;==================================================================

MAIN:

MOVSP,#40h

MOVp1,#0FFH;初始化端口

MOVP2,#0FFH

MOVTMOD,#011H;

MOVTH1,#0DCH

CLRA

MOVTL1,A

MOVTH0,#0FCH

MOVTL0,#017H

LCALLCLR_TIME;清零计时值

MOVDIS_DIGIT,#07FH;上电时选通P27数码管

CLRA

MOVDIS_INDEX,A

MOVKEY_TIMES,A

MOVKEY_V,#01H

MOVIE,#08AH;使能timer0,timer1中断

SETBTR0

CLRTR1

MAIN_LP:

LCALLSCAN_KEY;键扫描

JZMAIN_LP;无键返回

MOVR7,#10;延时10ms

LCALLDELAYMS;延时去抖动

LCALLSCAN_KEY;再次扫描

JZMAIN_LP;无键返回

MOVKEY_V,KEY_S;保存键值

LCALLPROC_KEY;键处理

SJMPMAIN_LP;调回主循环

;==================================================================

CLR_TIME:

CLRA

MOVSEC,A;清零所有计时值

MOVsec01H,A

MOVsec02H,A

MOVsec03H,A

MOVsec04H,A

MOVsec05H,A

MOVsec06H,A

MOVsec07H,A

LJMPUPDATE_DISBUF;更新显示缓冲区

;==================================================================

SCAN_KEY:

CLRA

MOVKEY_S,A

MOVC,K1;读按键状态

RLCA

ORLKEY_S,A

MOVA,KEY_S

XRLA,KEY_V;

RET

;==================================================================

PROC_KEY:

MOVA,KEY_V

JBACC.0,END_PROC_KEY

INCKEY_TIMES

MOVA,KEY_TIMES

CJNEA,#01H,PROC_KEY1

SETBTR1;KEY_TIMES=1,第一次按下K1,启动开始计时

RET

PROC_KEY1:

MOVA,KEY_TIMES

CJNEA,#02H,PROC_KEY2

CLRTR1;KEY_TIMES=2,第二次按下K1,停止计时

RET

PROC_KEY2:

LCALLCLR_TIME;第三次按下K1,清零计时值

CLRA

MOVKEY_TIMES,A;清零KEY_TIMES

END_PROC_KEY:

RET

;==================================================================

ttt0:

;定时器0中断服程序,用于数码管的动态扫描

;DIS_INDEX---显示索引,用于标识当前显示的数码管和缓冲区的偏移量

;DIS_DIGIT---位选通值,传送到P2口用于选通当前数码管的数值,如等于0xfe时,

;选通P2.0口数码管

;DIS_BUF---显于缓冲区基地址

PUSHACC

PUSHPSW

PUSH00h

MOVTH0,#0FCH

MOVTL0,#017H

MOVP2,#0FFH;先关闭所有数码管

MOVA,#DIS_BUF;获得显示缓冲区基地址

ADDA,DIS_INDEX;获得偏移量

MOVR0,A;R0=基地址+偏移量

MOVA,@R0;获得显示代码

MOVp1,A;显示代码传送到p1口

MOVP2,DIS_DIGIT;

MOVA,DIS_DIGIT;位选通值右移(P20<-P27),下次中断时选通下一位数码管

RRA

MOVDIS_DIGIT,A

INCDIS_INDEX;DIS_INDEX加1,下次中断时显示下一位

ANLDIS_INDEX,#07h;当DIS_INDEX等于8(00001000)时,清0

POP00h

POPPSW

POPACC

RETI

;==

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

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

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