单片机结课论文.docx

上传人:小飞机 文档编号:5076880 上传时间:2023-06-02 格式:DOCX 页数:14 大小:247.58KB
返回 下载 相关 举报
单片机结课论文.docx_第1页
第1页 / 共14页
单片机结课论文.docx_第2页
第2页 / 共14页
单片机结课论文.docx_第3页
第3页 / 共14页
单片机结课论文.docx_第4页
第4页 / 共14页
单片机结课论文.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机结课论文.docx》由会员分享,可在线阅读,更多相关《单片机结课论文.docx(14页珍藏版)》请在三一办公上搜索。

1、8*8点阵显示屏的设计摘要:本设计是基于P89C51的8X8点阵LED数码字符显示器的设计, LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光 二极管封装而成。LED点阵显示屏可以显示数字或符号,通常用来显 示时间、速度、系统状态等。本文讲述了基于P89C51单片机8X8LED 数码字符显示器的基本原理、硬件组成与设计,Proteus软件仿真, 程序设计等基本环节与相关技术。【关键词】51单片机,Proteus软件,显示屏LED是发光二极管LIGHT EMINTTING DIODE的英文缩写,是一 种直接能将电能转化为可见光的半导体。LED点阵是由发光二极管排 列组成的显示器件

2、,在日常生活中随处可见,其发光类型属于冷光源, 效率及发热量是普通发光器件难以比拟的。它采用低电压扫描驱动, 具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视 距离远、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制 灵活等特点。随着社会经济的不断进步,人们对LED显示器的认识不 断加深,其应用领域越来越广。LED电子显示屏具有所显内容信息量大,外形美观大方,操作使 用方便灵活。适用于火车,汽车站,码头,金融证券市场,文化中心, 信息中心体育设施等公共场所。该项目广泛涉及了计算机及电子技术 中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术, 系统软件技术,接口及驱动等

3、技术。本产品采用以P89C51单片机为核心芯片的电路来实现,主要由P89C51芯片、晶振电路、三极管驱动电路、按键控制电路、8X8LED点阵5部分组成,电路框图如图1所示。其中,P89C51是一种带4kB 闪烁可编程可擦除只读存储器的低电压、高性能CMOS型8位微处理 器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术 制造,工业标准的MCS 一 51指令集和输出管脚相兼容。由于将多功 能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/ 擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌 人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电 子设计

4、与制作过程中经常用到P89C51芯片。时钟电路由P89C51的 18,19脚的时钟端(XTAI1及XTAL2)以及12 MHz晶振X、电容C2、 C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路, 主要由电阻R,R2,电容C,开关K组成,分别接至P89C51的RST 复位输入端。LED点阵显示屏采用8x8共64个象素的点阵,可通过 万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把 行列总线接在单片机的I/O 口,然后把上面分析到的扫描代码送入总 线,就可以得到显示的字符了。我们在实际应用中是将LED点阵的8 条列线通过驱动电路接在P1 口,8条行线通过限流电阻接在P0 口

5、。 单片机89C51按照设定的程序在P1和P0接口输出与内部字符对应的 代码电平送至LED点阵的行列线(高电平驱动),从而选中相应的象素 LED发光,并利用人眼的视觉暂留特性合成整个字符的显示。再改变 取表地址实现字符的滚动显示。硬件电路组成框图如图2-1所示。1.1P89C51单片机最小系统最小系统包括晶体振荡电路、复位开关和电源部分。图2-2为P89C51单片机的最小系统。1.2按键控制电路单片机开始工作时,P2.0是高电平。当按键按下时,检测到一个 低电平信号,改变P0 口输出信号,控制8X8 LED点阵显示屏显示不 同字符。1.3三极管驱动电路扫描驱动电路的功能主要是有P1 口输出高电

6、平使三极管发射结导通,发射结输出足够大的电流使二极管导通。1.4字符的点阵显示原理及字库代码获取方法我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵 组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字 形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显 示在64象素范围内的任何图形。如查用8位的P89C51。图2-6 8XB点阵等效电路JI JIJR主程序流程图3. 程序设计根据上述所说的程序流程图,设计程序见附录4. 调试及性能分析系统调试首先根据各单元电路模块,利用Proteus软件将总的硬件原理图 绘制好,设计好各模块要使用的I/O 口,如:8X8点阵LED

7、显示屏时 候插反,先检测下,无硬件错误后,再进行程序编程。利用C语言 的编程方式,将系统要求的基本功能,以及创新功能根据程序流程图 编写出来,用Keil软件调试无误后,生成Hex文件,如图11图12。 双击Proteus中的P89C51芯片,将Keil生成的Hex加载到芯片内, 进行仿真,经调试后所编写的程序能够完美实现系统所需的各种功 能。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体 步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用 表对照电路原理图测试各导线是否完全连接,对未连接的进行修 复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否 存在虚焊,经

8、测试,各连接不存在问题。(3)以上两项检查并修复完 后,给该硬件电路上电,电源指示灯点亮。(4)将烧录好程序的最小 单片机系统接入各模块后,各模块能过正常工作,如:数码管正常发 光。R-v 若 A,HugacOBiij-MiifaI l-srl II I Dm如 眼眼E-K7VRZ. acMOWRO ,口 HtfOVEiL. 42 JLHMOTHEE、13 RO1. z MOVf K1MOVeno. A工坷匚B.OINCR1D.JWJZRE.TEKERS? , MtWEL.pm ax lip t K rc 骡 ! L % toomOOmOTMTI iTTl II II II IL=J ff-a

9、vr ifUn- oo :1 -at CEOO?UQnn-0o图11动态显示程序调试结果5. 设计分析将烧录好程序的最小单片机系统与各模块连接好后,8X8点阵LED显示屏显示初始值。按键一次之后,显示屏显示滚动字符u,再 按键一次,显示屏显示汉字“公”。经软件调试和硬件调试后,所 设计的系统完美实现了所需的控制要求和创新要求。6. 总结本次课程设计到现在有两个星期,回顾这些天我感到学到了很 多东西,在写这个心得的时候,我想就这些天的收获,说一说自己 内心的想法。本设计是一个8x8的点阵LED数码显示器,能够在目 测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显 示图形和文字应稳定、

10、清晰无串扰。图形或文字显示有静止、移入 移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能 稳定可靠,成本低等特点。总结本文的研究工作,主要做了下面几 点工作:一、通过查阅大量的相关资料,详细了解了 LED的发光原理和LED 显示屏的原理,了解7LED的现状,清楚地了解7LED显示屏与其 它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机 资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能 力。并证实了自己的思路:“查资料一思考总结一运用一找出差错, 再查资料和向别人询问一再次运用”的正确性。二、本文设计的LED显示屏能够实现在目测条件下LED显示屏各点 亮度均匀、充足

11、,可显示图形和文字,显示图形和文字应稳定、清 晰无串扰。三、本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流 程图和具体汇编语言程序设计与调试等方面。四、在这次课程设计的过程中学会了 PROTEUS的基本使用,感到 PROTEUS对电子专业的同学来说是一个很有用的软件。在运用PROTEUS时可以运用一些快捷的标号,总线的方法画图,这样既能 使电路图清晰,简单,更能大大提高画图速度。五、通过这次课程设计,重新复习并进一步增强了动手的能力,学 以致用,把只是运用到实际生活中才是根本目的。六、存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际 连接的电路板会由于譬如连接不当,相邻器件间的

12、干扰等等的问题 导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和 合理的器件摆放焊接,问题解决。总体来说这次的科研实践很成功, 达到了预想的目的:学到了知识,提高了能力,完成了任务。有点 缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间 可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动, 对角线移动,多色显示等。通过课程考核,多少学习到了一些专业知识,改正了很多不曾 发现的问题,为即将的毕业设计打下了基础,很有意义。附录:#include #define uchar unsigned char #define uint unsigned int uchar i,j

13、,k,sca n, num,count; sbit key=P2八0;uchar code table1=0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf; /u uchar code table2=0xf7,0xdb,0xad,0xb7,0xbe,0xdd,0xbb,0xf7; / 公 uchar code table8=0xff,0xff,0xc3,0xbd,0xbd,0xc3,0xff,0xff, /00xff,0xbf,0xbb,0x81,0x80,0xbf,0xbf,0xff, /10xff,0xff,0xbb,0x9d,0xad,0xb3,0xff,0

14、xff, /20xff,0xff,0xdd,0xbe,0xb6,0xc9,0xff,0xff, /30xff,0xef,0xe7,0xeb,0x81,0xef,0xef,0xff, /40xff,0xff,0xd1,0xb5,0xb5,0xcd,0xff,0xff, /50xff,0xff,0xc1,0xb6,0xb6,0xcd,0xff,0xff, /60xff,0xff,0xfd,0xfd,0x8d,0xf5,0xf9,0xff, /70xff,0xff,0xc9,0xb6,0xb6,0xc9,0xff,0xff, /80xff,0xff,0xd9,0xb6,0xb6,0xc1,0xff,

15、0xff; /9 void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main() (key=l; num=0; while(l) (if(num=0) (for(j=0;j10;j+) (if(key=O(delay(lO);if(key=O) (num=l; while(ikey); if(num!=0) break;for(k=0;k30;k+)(scan=0x01; for(i=0;i8;i+)(PO=tableji; Pl=scan; delay(2);scan=l;if(num=l)( for(j=0;j8;j+)/8 组数据if(key=0)delay(10); if(key=0)num=2; while(!key);if(num!=1) break;for(k=0;k0;i-)扫描周期if(ij)P0=table18+(j-i);else P0=table1j-i;P1=scan; delay(2); scan=1;if(key=0)delay(10);if(key=0)num=0; while(!key);scan=0x01for(i=0;i8;i+)P0=table2count+;if(count=8)count=0; P1=scan; delay(2); scan=1;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号