单片机 课程设计实验报告.docx

上传人:b****3 文档编号:2131561 上传时间:2022-10-27 格式:DOCX 页数:14 大小:1.09MB
下载 相关 举报
单片机 课程设计实验报告.docx_第1页
第1页 / 共14页
单片机 课程设计实验报告.docx_第2页
第2页 / 共14页
单片机 课程设计实验报告.docx_第3页
第3页 / 共14页
单片机 课程设计实验报告.docx_第4页
第4页 / 共14页
单片机 课程设计实验报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机 课程设计实验报告.docx

《单片机 课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《单片机 课程设计实验报告.docx(14页珍藏版)》请在冰豆网上搜索。

单片机 课程设计实验报告.docx

单片机课程设计实验报告

 

《单片机原理及应用实验》

 

题目:

动态数码显示技术

院(系)信息科学与工程学院

专业通信工程

届别2012级

班级1班

学号

姓名

任课老师

动态数码显示技术

摘要:

本设计利用51单片机为核心,实现数码管的动态显示。

通过检测按键状态来分别连续显示数字和字母。

硬件电路采用单片机开发板中的锁存器74HC573和4位数码管,软件部分使用常用的单片机程序编译器KeilC51和烧写软件STC-ISP,分别用汇编语言实现了了主程序、延时程序和数字/字母显示子程序,算法实现简单,流程明确,具有较好的扩展性。

整个系统经过不断调试,最终实现预期的设计要求。

关键词:

51单片机74HC5734位数码管汇编

 

1.系统设计

1.1设计要求

利用数码管动态显示技术,使用开关控制数码管的显示状态,当开关接高电平时,显示“54321”字样,当开关接低电平时,显示“NIHAO”字样。

通过简单修改程序,可以实现流水灯效果或者移动数字和字母显示的位置。

1.2系统设计方案

1.2.1系统设计思路

本设计的目的在于连续显示5个数字或者字母,显示的方法为动态显示技术,利用51单片机和数码管可以容易实现设计要求。

需要解决的问题是如何利用好单片机的I/O口和片内资源、数码管动态显示的方法、控制按键信号的方式(包括按键终端和高低电平状态监测方式)。

1.2.2设计方案对比

方案一:

采用51单片机+5个数码管

图1单片机驱动一个数码管显示电路

如图1所示,采用每个数码管接I/O口的方式,因为数码管的段选信号需要占用8个端口,所以采用这种方式,一个单片机最多也只能接4个数码管,而且无法利用端口获得按键信息,获得高低电平信号来控制显示状态,需要添加一块单片机才可以满足系统要求。

次方案成本高,资源利用率低,效率低下。

方案二:

采用51单片机+4位数码管+译码器+锁存器

图2译码器+锁存器的数码管动态显示

如图2所示,采用4位数码管,采用译码器74HC138控制数码管的位选,增强驱动能力的同时还可以节省单片机的端口,只需要3个I/O口就可以利用译码功能实现8位数码管的位选信号控制。

74HC573是锁存器,保存数码管的段选信号,直接用单片机的P0端口控制即可。

方案三:

采用51单片机+4位数码管+2个锁存器

(a)锁存器电路

(b)4位数码管电路

图3(a)、(b)锁存器动态数码显示电路

如图3所示,采用4位数码管,利用2个锁存器作为数码管的位选和段选信号,由于锁存器74HC573可以利用使能端口控制输出口的信号,只要P1口就可以控制2个锁存器,比方案二进一步提高I/O口的利用率。

 

方案总结:

通过三个方案的对比,发现利用方案三可以最大化利用硬件资源,而且软件实现也比较简单。

所以本设计采用方案三。

1.2.3系统工作原理

1.2.3.1数码管动态显示技术

(1)四位数码管的定义

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

能显示4个数码管叫四位数码管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

(2)4位数码管的驱动方式

  1、静态驱动也称直流驱动。

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

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

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

2、数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路。

位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

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

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

1.2.3.2锁存器74HC573

1、74HC573和74LS373原理一样,8数据锁存器。

主要用于数码管、按键等等的控制。

2.高阻态:

就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁;

3.数据锁存:

当输入的数据消失时,在芯片的输出端,数据仍然保持。

真值表:

第四行:

当OE=1是,无论Dn、LE为何,输出端为高阻态;

第三行:

当OE=0、LE=0时,输出端保持不变;

第二行第一行:

当OE=0、LE=1时,输出端数据等于输入端数据。

2.软件设计

2.1软件设计平台

本设计采用单片机开发板HY510,硬件资源如图4所示。

图4开发板

⏹编译器:

KeilC51V8.09

⏹烧写器:

STC-ISPV4.99+CH340USB烧写器

本设计采用KeilC51进行程序的调试和编译,利用烧写器STC-ISP进行烧写。

图5STC-ISP烧写器界面

2.2程序流程图

图6主程序流程图

 

图7数字/字母显示子程序

(1)程序起始地址

51单片机的程序空间的0000H、0003H、000BH、0013H、001BH、0023H分别为复位、外部中断0、定时/计数器0、外部中断1、定时/计数器1和串行口的中断入口地址。

如果程序不用中断,可以让程序从0000H开始一直连续编下去。

(2)位选和段选信号的切换

利用锁存器74HC573的锁存功能,程序先将控制段选信号的锁存器的使能端打开,此时锁存器输出端等于由P1口输出的段选信号,每个数码管都能收到这个段选信号,但是由于需要动态显示,所以需要利用位选信号来决定点亮哪个数码管。

因为位选和段选信号都是由P1口送出,所以在送出位选信号给另一个锁存器之前,需要先将段选的锁存器锁住,无论P1口为什么信号,段选锁存器输出都保存不变。

然后将位选锁存器使能打开,由P1口送出位选信号,位选锁存器输出就能与P1口的信号,8个数码管就可以根据位选信号决定哪个数码管点亮。

2.3程序清单

见附录1

3.系统测试

3.1系统的性能指标

系统设计的最终效果要达到数码管动态显示,数字的显示顺序正确,显示的稳定性良好,不能出现抖动等现象。

3.2测试方法与步骤

1.利用烧写器将程序烧写到单片机开发板中;

2.打开开发板电源,观察数码管是否从左到右稳定显示数字“54321”;

3.按下开发板上的开关S20,观察数码管是否立即显示“NIHAO”,跳变过程是否快速,显示是否稳定;

4.松开按键,数码管又能重新显示“54321”;

3.3仪器设备名称、型号

设备名称

型号

单片机开发板

HY510

烧写器

CH340

烧写软件

STC-ISPV4.88

3.4测试数据、图表

图8上电显示54321

图9按住按键显示字母NIHAO

4.结论

实验结果显示,系统设计符合课程设计的要求,动态显示结果正确、稳定。

 

参考文献

[1]贺哲荣,甄旭.MCS-51系列单片机实用编程88例.中国电力出版社,2011.2

[2]张友德,涂时亮,赵志英.单片微型机原理、应用与实验:

A51版.复旦大学出版社,2012.3

[3]张友德,涂时亮,赵志英.单片微型机原理、应用与实验:

C51版.复旦大学出版社,2010.12

[4]赵建领,崔昭霞.精通51单片机开发技术与应用实例.电子工业出版社,2012.6

 

附录1

;程序开始

ORG0000H;复位后起始执行地址

MAIN:

JBP3.0,SKIP_DISP_NUM;如果按键没有按下,则P3.0口的电平为高电平,调用数字显示子程序

JNBP3.0,SKIP2_DISP_CHAR;如果按键按下,则P3.0口的电平为低电平,调用字母显示子程序

SKIP_DISP_NUM:

LCALLDISP_NUM

AJMPMAIN;;跳转至主程序循环

SKIP2_DISP_CHAR:

LCALLDISP_CHAR

AJMPMAIN;;跳转至主程序循环

;############################################

;延时

DELAY:

MOVR3,#20

D_LOOP1:

MOVR4,#20

DJNZR4,$

DJNZR3,D_LOOP1

RET

 

;显示数字

DISP_NUM:

;送5

SETBP2.0;;将P2.0都置1;打开段选,锁存器输出等于输入

MOVP1,#0x92;;P1送段选

CLRP2.0;;将P2.0都置0;锁住段选信号

SETBP2.1;;打开位选

MOVP1,#0x01;;P1送位选

CLRP2.1;;锁住位选

ACALLDELAY;;延时10ms

;送4

SETBP2.0;;打开段选

MOVP1,#0x99;;P1送段选

CLRP2.0;;锁住段选信号

SETBP2.1;;打开位选

MOVP1,#0x04;;P1送位选

CLRP2.1;;锁住位选

LCALLDELAY;;延时10ms

 

;送3

SETBP2.0;;打开段选

MOVP1,#0xb0;;P1送段选

CLRP2.0;;锁住段选信号

SETBP2.1;;打开位选

MOVP1,#0x02;;P1送位选

CLRP2.1;;锁住位选

LCALLDELAY;;延时10ms

 

;送2

SETBP2.0;;打开段选

MOVP1,#0xa4;;P1送段选

CLRP2.0;;锁住段选信号

SETBP2.1;;打开位选

MOVP1,#0x08;;P1送位选

CLRP2.1;;锁住位选

LCALLDELAY;;延时10ms

 

;送1

SETBP2.0;;打开段选

MOVP1,#0xf9;;P1送段选

CLRP2.0;;锁住段选信号

SETBP2.1;;打开位选

MOVP1,#0x10;;P1送位选

CLRP2.1;;锁住位选

LCALLDELAY;;延时10ms

RET

;显示字母

DISP_CHAR:

;送N

SETBP2.0;;将P2.0都置1;打开段选,锁存器输出等于输入

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1