基于单片机的LED设计.docx
《基于单片机的LED设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的LED设计.docx(14页珍藏版)》请在冰点文库上搜索。
![基于单片机的LED设计.docx](https://file1.bingdoc.com/fileroot1/2023-6/16/d1f1a48a-1017-4a43-a3b1-70c2d2538dd6/d1f1a48a-1017-4a43-a3b1-70c2d2538dd61.gif)
基于单片机的LED设计
基于单片机LED显示课程设计
一、设计目的
通过设计一个单片机系统〔具有单片机最小系统、4个独立式按键及8个发光二级管、6个数码管和一个蜂鸣器〕,掌握Protel设计单片机应用系统硬件线路图的方法和Proteus仿真软件的使用,掌握使用KeilC51开发单片机应用系统控制程序的根本步骤和方法。
任务涉及C51程序语言、MCS-51单片机I/O口应用及人机接口应用等知识,加强学生的理论知识。
二、设计任务
设计一个单片机系统〔包括单片机最小系统、4个独立式按键及8个发光二极管、6个数码管和一个蜂鸣器〕,能用Protel绘出其原理图,并进展Proteus仿真,完成单片机综合开发板的键盘、显示等程序的编写、编译和调试。
三、设计步骤
〔1〕设计一个单片机系统〔包括单片机最小系统、4个独立式按键及8个发光二极管、8个数码管和一个蜂鸣器〕,能用Protel绘出其原理图,并进展Proteus仿真;
〔2〕借助单片机实验箱对键盘、显示等程序进展编辑、编译和下载调试
〔4〕教师检查;
〔5〕撰写设计报告,内容包括:
单片机系统的硬件线路图、单片机系统中键盘、显示等程序及运行结果、收获与心得体会等。
四、设计要求
〔1〕电路原理图绘制正确;
〔2〕掌握Proteus仿真软件的使用;
〔3〕完成键盘、显示等程序的编写与调试。
一、设计概述
描述设计作品的主要功能及参数。
利用61板和LED键盘模组,编写程序让按键控制键盘模组的6位LED数码管的显示。
给1×8键盘定义一个数字,当每按下一次按键时,将数码管上原有的显示内容左移一位,然后将按键代表的数字显示在最右边的数码管上。
1×8键盘各个键对应的数字如表
按键名称
K1
K2
K3
K4
K5
K6
K7
K8
显示数字
1
2
3
4
5
6
7
8
开机后〔程序运行后〕,6为数码管全部显示0,当按键按下时,数码管上显示的数字左移一位,该键对应的数字显示到最后的数码管上。
显示的数字与键码对应关系:
显示数字
1
2
3
4
5
6
7
8
键码〔IOA0-IOA7〕
0x80
0x40
0x20
0x10
0x08
0x04
0x02
0x01
二、系统总体设计
对课题系统的软硬件进展大概介绍,以文字加框图和流程图的形式。
2.1硬件连接
61板和LED键盘模组的硬件连接:
IOA7---IOA0连接8个按键的COL1~COL8,IOA8连接键盘的ROW;IOB15~IOB8连接8个LED的a~g、dp,用排线分别连接IOB与SEG接口,注意这里的连接顺序是IOB8引脚连接SEG接口的a,IOB15引脚连接SEG接口的dp;IOB0~IOB5连接DIG接口的DIG1~DIG5。
SPCE061A
键盘模块
SPCE061A
SPCE061A
LED模块
IOA0
COL1
IOB0
DIG1
IOB8
a
IOA1
COL2
IOB1
DIG2
IOB9
b
IOA2
COL3
IOB2
DIG3
IOB10
c
IOA3
COL4
IOB3
DIG4
IOB11
d
IOA4
COL5
IOB4
DIG5
IOB12
e
IOA5
COL6
IOB5
IOB13
f
IOA6
COL7
IOB6
IOB14
g
IOA7
COL8
IOB7
IOB15
dp
IOA8
ROW
图1
2.2程序设计
主要包含以下几个文件:
1.主程序文件
2.键盘处理程序文件
3.数码管显示程序文件
4.中断处理程序文件,实现IRQ4的1kHz中断调用数码管显示函数和IRQ6中断调用按键扫描函数。
三、系统电路设计
电路设计描述
例如:
系统总体电路如图?
和图?
所示,本课题电路包括:
系统电源电路、单片机最小系统电路、程序下载电路、音频输入输出电路、单片机IO端口引出电路、1×8或者4×4键盘电路,发光二极管驱动电路,数码管显示驱动电路,系统各电路具体介绍如下
3.1系统电源电路
电源模块为系统板上其它模块提供+5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于7.5V,交流输入应大于5V,通过7805三端稳压器得到5V的直流电源供应系统其它模块工作,另一种为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害!
其电路原理图如图3.4所示:
3.2LED显示原理:
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。
动态显示需要CPU时刻对显示器件进展数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间
根本的半导体数码管是由七个条状发光二极管芯片按图1.1排列而成的。
可实现0~9的显示LED数码管是由发光二级管显示字段组成的显示器,有8段和“米〞字段之分,这种显示器有共阳级和共阴极两种。
所谓共阳方式〔如图1.2〕是指笔画显示器各段发光管的阳极〔即P区〕是公共的,而阴极互相隔离。
所谓共阴方式〔如图1.3〕是笔画显示器各段发光管的阴极〔即N区〕是公共的,而阳极是互相隔离的。
3.3复位电路
在单片机系统里,单片机需要复位电路,复位电路可以采用R-C复位电路,也可以采用复位芯片实现的复位电路,R-C复位电路具有经济性,但可靠性不高,用复位芯片实现的复位电路具有很高的可靠性,因此为了保证复位电路的可靠性,该系统采用复位芯片实现的复位电路,复位电路如下图。
3.4静态数码显示模块
在该模块中,每一路端口对应着一个具体的数码管,
具体的电路原理图如图:
3.5程序下载模块
该模块完成源程序代码下载到AT89S51或者是AT89S52芯片中,它需要和微机上的ISP下载器软件配合使用来完成这样的功能。
具体的电路原理图如图:
四、系统程序设计
系统程序设计描述
主程序流程图:
初始化系统,进入扫键循环,调用键盘程序区键值,根据键值进入相关的程序:
原来显示的数字左移一位,在把数字键代表的数字显示在最右边的数码管上。
4.1键操作
键值程序流程图:
和以前实验使用1×8键盘程序一样,键盘程序时利用延时的方法进展消抖处理的:
先读取IOA口键值保存的存放器,判断读回值是否为零,为零那么表示没有键按下,返回零;非零那么延时大约30ms后再次读取IOA口键值,比拟两次读取的键值是否一样,如果一样那么放回键值;否那么返回零。
键盘程序流程图如下图:
4.2源程序
MOVTMOD,#00H
MOVTH0,#0F0H
MOVTLO,#0CH
SETBTR0
SETBETO
SETBEA
AJMP$
SETMM:
cLRET0
CLRTR0
LCALLDL1S
P3.7,CLOSEDISMOVR2,#06HSETBET1
SETBTR1
SET2:
JNBP3.7,SET1
SETB00H
SET4:
P3.7,SET3
LCALLDL05S
JNBP3.7,SETHH
MOVR0,#77H
LCALLADD1
MOVA,R3
CLRC
CJNEA,#60H,HHH
HHH:
JCSET4
LCALLCLR0
CLRC
AJMPSET4
CLOSEDIS:
SETBET0
SETBTR0
CLOSE:
P3.7,CLOSE
LCALLDISPLAY
P3.7,CLOSE
WAITH:
JNBP3.7,WAITH
LJMPSTART1
SETHH:
CLR00H
SETHH1:
JNBP3.7,SET5
SETB01H
SET6:
P3.7,SET7
LCALLDL05S
JNBP3.7,SETOUT
MOVR0,#79H
LCALLADD1
MOVA,R3
CLRC
CJNEA,#24H,HOUU
HOUU:
JCSET6
LCALLCLR0
AJMPSET6
SETOUT:
JNBP3.7,SETOUT1
LCALLDISPLAY
JNBP3.7,SETOUT
CLR01H
CLR00H
CLR02H
CLRTR1
CLRET1
SETBTR0
SETBET0
LJMPSTART1
SET1:
LCALLDISPLAY
AJMPSET2
SET3:
LCALLDISPLAY
AJMPSET4
SET5:
LCALLDISPLAY
AJMPSETHH1
SET7:
LCALLDISPLAY
AJMPSET6
SETOUT1:
LCALLDISPLAY
AJMPSETOUT
延时程序:
1MS延时程序,LED显示程序用
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
;;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象
DS20MS:
ACALLDISPLAY
ACALLDISPLAY
ACALLDISPLAY
RET
五、系统调试
调试中遇到的问题及解决的方法:
1.问题:
对凌阳SPCE061A单片机汇编语言不熟悉.程序编写困难.
解决:
通过光盘和中相关资料的学习.终于设计出
2.问题:
数码管各脚和接口不知道如何连接
解决:
认真学习实验指导书和61板的说明书,弄清电路。
六、总结
在这个课体设计中,我们运用到了以前所学的专业课知识,如:
C语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,在实习之前,我们要对所用单片机的内部构造有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改良是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中
在这我要感谢教师的不厌其烦的教我们,由于我们以前没有一点单片机的根底,所以突然要我们用现学的东西做一个题目感到很难,但是汪教师却很用心和耐心的教我们。
参考文献
[1]罗亚非等编著.凌阳16位单片机应用根底[M].:
航空航天大学,2003.
[2]汪敏等编著.凌阳16位单片机实验与实践[M].:
航空航天大学,2007.
[3]?
单片机原理、接口技术及应用〔含C51〕?
主编:
杨学昭西子科技大学
[4]?
单片机的C语言应用程序设计(第4版)?
主编:
马忠梅航空航天大学
[5]?
Protel99SE设计宝典〔第二版〕?
主编:
赵建领电子工业