单片机课程设计报告88点阵.docx
- 文档编号:23385046
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:13
- 大小:257.09KB
单片机课程设计报告88点阵.docx
《单片机课程设计报告88点阵.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告88点阵.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告88点阵
Xx学院
《单片机原理与接口技术》
课程设计报告
题目:
8×8点阵显示的设计
班级:
级电子信息工程
姓名:
学号:
指导教师:
日期:
2010年月日
摘要
随着现代电子技术的迅速发展,各种各样的LED显示屏、广告牌样式层出不穷,它们已被广泛地应用于商业市场的各个邻域,如显示器、户外大屏幕、招牌广告、电子公告栏等等,给我印象最深的还有公交车上的车载横向拉幕单行显示屏,它可以实时地显示时间、站点、天气和“东莞因你而文明”等信息。
LED显示屏因其亮度高、方便维护和应用灵活等优点,给我们的生活带来很大便利,同时它也具有很大的开发价值。
本次设计任务是使LED点阵实现横向拉幕的数字字符显示,以AT89C51单片机为控制器,8×8LED点阵为显示器件构成的数字显示系统。
在程序中还可以相应地改变显示字符的样式和显示的个数。
本设计所介绍的8×8LED点阵显示器可以横向自右向左地循环拉幕显示0~9这十个数字和空字符。
在程序中可以相应地改变显示字符的样式和显示的个数。
此显示系统也可用于不同的场合显示信息。
关键词:
8×8LED点阵;AT89C51;显示器;拉幕显示
(一)设计的任务与要求……………………………………………4
(二)硬件电路设计……………………………………………4
●芯片介绍…………………………………………………4
●电路原理…………………………………………………6
(三)软件设计流程及描述………………………………………7
(四)设计调试过程……………………………………………7
(五)源程序代码……………………………………………8
(六)收获体会……………………………………………10
(七)参考文献……………………………………………10
一、设计的任务与要求
LED显示屏(LEDpanel)介绍:
LED英文全称就是LightEmittingDiode,为发光二极管的英文缩写,简称LED。
它是一种通过控制半导体发光二极管的显示方式,它通常是由很多个红色的发光二极管组成,靠灯的亮灭来显示字符。
大规模集成的LED显示屏是由LED点阵组成,是可以用来显示文字、图形、图像、动画、视频、录像信号等各种信息的显示屏幕,又叫电子显示屏或者飘字屏幕。
LED显示屏不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点,内容还可以随时更换,且各部分组件都是模块化结构。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:
亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
本次设计采用单片机AT89C51驱动8×8点阵LED显示屏,轮流显示0~9的数字。
显示方式采用自左向左拉幕式显示。
二、硬件电路设计
●芯片介绍
1.AT89C51单片机:
AT89C51是一种低电压、高性能CMOS8位微处理器,它自带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪存存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
它的部分引脚功能介绍如下。
P0口:
P0口为一个8位漏级开路双向I/O口。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输出,由于外部下拉为低电平,它将输出电流。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
AT89C51单片机的外形及引脚排列说明如后页图示。
AT89C51单片机的外形及引脚排列如右图。
2.74LS245芯片:
74LS245能用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
片选端CE非是低电平有效,数据传输控制口AB/BA非=“0”时,信号由B向A传输;反之当该口为高电平“1”输入时,信号由A向B传输;当CE非端口为高电平时,A、B均为高阻态,关断数据传输。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245作总线驱动器。
引脚说明:
AA总线端
BB总线端
OE非三态允许端
AB/BA非方向控制端
74LS245电路符号和内部结构图:
3.8×8LED点阵
8×8LED点阵可作为信息输出器件。
它是由发光二极管阵列按8排8列的方式排列起来,由x和y引脚输入的电信号对其进行选通,使不同位置的二极管被点亮,相应地显示出文字或图案等信息来。
LED点阵的元件符号及内部结构图:
设计原理:
单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。
将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。
行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。
列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选通时间为5ms,看上去就像8列同时显示的效果一样。
加上行中相应的LED灯被点亮,就能看到显示的字符了。
●电路原理
原理框图:
硬件设计原理图:
三、软件设计流程及描述
单片机在上电后能自动执行一次复位操作,同时开始接收外部晶振的信号输入。
从程序中的列扫描序列中读取列码的地址,并从码字表中反复读取行码的地址,由I/O口输出信号对LED点阵进行选通点亮,然后判断拉幕次数,显示出相应的字符来。
显示一幕后拉幕次数加1,再送新的幕次和行码地址。
程序流程图如下所示。
四、设计调试过程
将电路按原理图连接好之后,把汇编程序编译产生的十六进制文件下载到单片机内。
第一次做时是在实验箱上直接连接硬件电路,可是由于没有74LS245双向总线收发器,所以在LED点阵和单片机I/O口之间就直接跳线连接了,因此没有将电平上拉,结果在实验箱上的LED显示屏无法显示单片机输出的结果,所有的LED灯都不亮。
看来直接跳线时单片机I/O口输出的信号不足以驱动8乘8点阵工作。
由于硬件条件的各种限制,因此本小组考虑改用软件仿真的方法来实现电路的设计与调试。
在PC机上运行Proteus软件,将电路原理图中的元件找出并相应地连接好线;在Keil汇编软件中输入设计的程序,编译通过后生成十六进制文件,并再把该文件下载到虚拟的AT89C51单片机内。
因为单片机的RST引脚经电容接到了Vcc电源上,同时并联接地,所以系统可以上电后自动执行一次复位操作。
仿真开始。
此时可能会看到LED点阵中有字显示的地方(前景)灯是灭的,无字显示的地方(背景)灯是亮的,这种状态叫做“阴文”显示状态。
产生这种显示的原因是因为点阵的列码扫描信号线A~H与单片机的P3.0~P3.7口相应的顺序接反了,把对应的接线顺序倒过来,即可看到正确的“阳文”方式显示出的数字。
此显示系统最终实现了将数字从0到9向左拉幕显示的功能。
部分显示效果如图。
五、源程序代码
R_CNTEQU31H;列码R_NCT=31H单元
NUMBEQU32H;行码NUMB=32H单元
TCOUNTEQU33H;拉幕计数值TCOUNT=33H单元
ORG00H;程序起始地址
LJMPSTART
ORG0BH;中断入口地址
LJMPINT_T0
ORG30H;子程序入口地址
START:
;主程序开始
MOVR0,#00H;每列的行码起始序号置0
MOVR_CNT,#00H;列:
初值00送到31H单元
MOVNUMB,#00H;行:
初值00送到32H单元
MOVTCOUNT,#00H;计数单元初值置0
MOVTMOD,#01H;计数定时器选用16位的计数器,工作在方式1
MOVTH0,#(65536-5000)/256;定时5ms。
定时器高位初值为236
MOVTL0,#(65536-5000)MOD256;定时器低位初值为120
SETBTR0;启动C/T的定时器T0
MOVIE,#82H;CPU开中断
SJMP$;中断等待
INT_T0:
MOVTH0,#(65536-5000)/256;定时5ms,设置定时器T0高位初值为236
MOVTL0,#(65536-5000)/256;定时器T0低位初值为120
MOVDPTR,#TAB;读列码表首地址,放入DPTR
MOVA,R_CNT;读列码偏移地址,放入A中
MOVCA,@A+DPTR;基址变址寻址将寻到的列码数据放入A中
MOVP3,A;将列码数据送P3口输出
MOVDPTR,#NUB;装入显示数据的地址
MOVA,NUMB;显示幕次的偏移地址
MOVCA,@A+DPTR;寻到数据的行码地址
MOVP0,A;将该地址值输出
INCNUMB;行码地址加1
NEXT1:
INCR_CNT;扫描列码地址加1
MOVA,R_CNT;把列地址放入A中
CJNEA,#8,NEXT2;A不等于8,转子程序NEXT2,否则往下执行
MOVR_CNT,#00H;就把列码置0
MOVNUMB,R0;行码地址送存储单元格中
NEXT2:
INCTCOUNT;拉幕计数序号加1
MOVA,TCOUNT;将幕次序号送A中
CJNEA,#40,NEXT4;此序号不等于40转Next4,否则往下执行
MOVTCOUNT,#00H;把拉幕时序归0
INCR0;行码起始地址加1
CJNER0,#88,NEXT3;行码自加次数不满11字符×8行/字符=88行就转Next3
MOVR0,#00H;不然就把行码置0
NEXT3:
MOVNUMB,R0;送新的一幕行码起始位给R0
NEXT4:
RETI;中断返回
TAB:
;列码码表
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH;列扫描从右向左
NUB:
;行码码表,字符数据
DB00H,00H,00H,00H,00H,00H,00H,00H;NULL
DB00H,00H,3EH,41H,41H,41H,3EH,00H;0
DB00H,00H,00H,00H,21H,7FH,01H,00H;1
DB00H,00H,27H,45H,45H,45H,39H,00H;2
DB00H,00H,22H,49H,49H,49H,36H,00H;3
DB00H,00H,0CH,14H,24H,7FH,04H,00H;4
DB00H,00H,72H,51H,51H,51H,4EH,00H;5
DB00H,00H,3EH,49H,49H,49H,26H,00H;6
DB00H,00H,40H,40H,40H,4FH,70H,00H;7
DB00H,00H,36H,49H,49H,49H,36H,00H;8
DB00H,00H,32H,49H,49H,49H,3EH,00H;9
DB00H,00H,00H,00H,00H,00H,00H,00H;NULL
END;结束汇编
六、收获体会
在本项目完成的过程中,我们小组遇到了不少困难,不过基本都能顺利解决。
在全程设计制作的过程中学到了很多东西,对汇编语言有了更深刻的了解。
有一些问题比较值得注意,比如在作品制作的初期,当时我们还不了解电路中所用芯片的要求与实验箱上的硬件要求是否匹配,后来发现在实验箱上没有所用到的双向总线收发器芯片,导致设计出的电路无法在实验箱上进行硬件仿真测试;在软件平台上连线时,由于不知道8乘8LED显示屏的引脚结构而盲目接线,使显示出的实验结果和预期的不一样。
于是重新连线后解决了这个问题。
在做完设计之后,仔细回想这几天来的收获,和同学们互相帮助,共同进步,也复习了一学期来学过的一些知识。
还有,学会了处理问题的方法,以及更多的耐心和学习的能力。
七、参考文献
●《单片机原理及接口技术》,高等教育出版社出版,李全钊、迟荣强等编著。
●《Proteus教程——电子线路设计、制板与仿真》,清华大学出版社出版,朱清慧、张凤蕊、翟天嵩、王志奎编著。
●《基于Proteus的80C51单片机实例教程》,电子工业出版社出版,李学礼主编。
●《51系列单片机应用与实践教程》,北京航空航天大学出版社出版,周向红主编。
●《单片机应用及技术》,电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 88 点阵