已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称: 微机原理课程设计 课 题: 简易电子广告牌设计 专业班级: 计算机系13101班 学 号: 姓 名: 指导老师: 日 期: 2013年6 月24 日 教师评语:成绩评定: 指导教师(签名): 16目录1.课题简介32.设计方案33.具体设计33.1硬件设计33.2软件设计74.测试134.1测试过程中遇到的问题记录134.2测试结果145.总结156.参考文献151.课题简介通过课程设计,进一步巩固所学的知识,并将所学的内容加以综合运用。将所学的理论与实际问题或应用相结合,进一步培养自主学习的能力,综合运用知识的能力,以及创新实践的能力。并且了解双色点阵LED显示器的基本原理 ,掌握PC机控制双色点阵LED显示程序的设计方法 。2.设计方案本次设计利用双色88LED点阵制作简易电子广告牌。为了实现课程设计的基本要求,我利用红色LED点阵滚动显示汉字,利用黄色LED点阵实现迅速变化的流水灯边框,使用8253定时器实现延时子程序的延时功能,并把黄色LED点阵与红色LED点阵分别设置成不同的变化速度。我们的创新之处在于,利用流动变化的黄色LED点作为显示屏的动态边框,为黄色LED流水动态效果设置为红色点阵变化速度的16倍,并使黄色的光点留有余晖,画面极具动态效果。3.具体设计3.1硬件设计(1)元件与仪器:8255芯片、8253芯片、88双色LED点阵、CPU、(储存器)、PCI连接线、主板 (2)硬件工作原理:系统以CPU为中心,CPU通过地址、数据、控制总线连接存储器、LED点阵、8253芯片和8255芯片,作为逻辑枢纽控制着外设的协调运作,另外8255芯片与8253芯片单独相连接,将8253芯片的输出端连接到8255芯片的一个I/O口.CPU按照一定的顺序将点阵信号发送到LED点阵,由于LED点阵显示需要一定的暂留时间,通过8353定时器可以设置延时,使点阵发光的时间足够长;CPU通过查询8255的端口了解8253的工作状态。 (3)框图说明:(4)地址分配表:8255 A口:2A0H8255 控制口:2A3H8253 时钟0:298H8353 控制口:29BHLED点阵行线 寄存器片选:280HLED点阵红列线寄存器片选:288HLED点阵黄列线寄存器片选:290H(5)电路图:(6)硬件电路连接:LED825582531MHZclk0 out0gate0 CS CS0CS1CS2PA0 CS+5V (7)重要芯片功能说明:8*8LED显示器:三个片选端,分别为行片选,红色列片选,黄色列片选。8253可编程定时/计数器:本实验中只使用计数器0,并将其设置为工作方式0,16为计数。8255可编程并行接口:8255有3种工作方式,在8255中有一个控制字用来选择工作方式和A、B、C三个端口。D6D5工作方式00方式001方式110方式211方式2按图1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。1、用8253的计数器0和计数器1作为1MHz时间的的分频,使间脉冲变成1Hz,由计数器1的OUT口输出,并把OUT口接到8255的PA0端口,目的是让8255去读这个端口的值,为程序中的定时,当时间到时就变换字。2、8253的两个计数器用工作方式2(分频器)和工作方式3(方波发生器),8255采用工作方式0,输出口为A口的第一个口PA0。3、显示块的三个片选端口分别接的是实验板上I/O口地址的298h(行显示),288h(红色列显示线),290h(黄色列显示线)4、接通电源,运行测试程序,由8253计时,8255检测8253OUT口的电平值,直到低电平就显示下一个字,并且中间有一定的器件延时。(8)设计原理及思路:a.红帧的处理方法:将要显示的点阵按列存储,每一列用一个八位二进制数an来存储,因此,信工五班四个字的字模大概需要45个二进制数来表示,其中记n=i+k,i为红帧的第i帧,k为该帧的第k列。由于LED点阵的显示方式为逐行扫描,因此,每显示一帧需要做k=0到7的for循环,循环内容为,把ai,k输出到“led红行寄存器”,并使点阵的第k列点亮。记imax=45-7,当i=imax帧循环显示结束后,程序重新开始。b.黄帧的处理方法 如图所示,黄色两点沿着图示的轨迹运动,对黄帧处理的关键是把帧显示和帧调整两个模块分开。对于帧显示模块,显示黄帧模块可以和显示红帧模块放在一起,红帧每显示一次,黄帧也显示一次。但对于帧调整,由于设计的效果为红黄帧以不同的速度运动,因此,在红帧调整和黄帧调整之间需要加入for循环黄帧每改变16次,红帧才改变一次。黄帧调整子程序(设黄点处于(x,y)坐标):如果x=0,yN,那么y+如果x0,那么y如果x0,y=0,那么x此程序可使(x,y)坐标始终绕着边框移动c.要注意的地方由于CPU写入行寄存器信息和写入列寄存器信息不是同步进行的,如果在对行寄存器赋值后列寄存器仍保存着上一次的值,那么,前后两次扫描之间就会产生干扰,出现类似数字电路中经常出现的“竞争与冒险现象”,因此,在切换显示内容的时候要注意先把行列寄存器清零,再重新赋值,这个过程称为“消影”。由于LED点阵的亮度取决于点亮的时间,因此,要使LED点阵亮度尽可能的高,需要在点亮每列的时候进行延时。延时子程序使用了8253芯片和8255芯片进行定时3.2软件设计(1)程序流程图:开始初始化LED点阵红帧调整i=i+1黄帧调整子程序红帧显示第i+k列,消影黄帧显示一次,消影k=k+1k8j=j+1j16循环初值k=0循环初值j=0I=i+1循环初值i=0iimax1结束truetruetruetruefalsefalsefalsefalsefalse(2)关键代码段源码及分析:protequ 0ec00h-280hprothequ prot+280hprotlrequ prot+288hprotlyequ prot+290hio8253aequ prot+298h ;计数器1io8253a1equ prot+299h ;计数器1io8253bequ prot+29Bh ;计数器控制io8255aequ prot+2A0h ; 并行1io8255bequ prot+2A3h ; 并行控制;io0832aequ prot+290h ;DA口 DATA SEGMENTrh db 0eehrl db 0eehyy db 01hxx db 01hx db 0y db 0cnt db 0,0d db 0,0j dw 0testp db 0delaytime dw 1h;min1 DB 00h,01h,02h,03h,04h,05h,06h,07h,08H,09H,0AH,0BH,0CH,0DH,0EHcount db 0BUFF DB 0,0,0,0,0,0,0,0,20H,7FH,80H,47H,7DH,0FDH,7DH,47H,0H,02H,42H,42H,42H,7EH,42H,42H,02H,0H,02H,52H,52H,7eH,52H,52H,5eH,02H,0H,91H,0FFH,91H,38H,0FEH,91H,0FFH,91H,0,0,0,0,0,0,0,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA;初始化程序MOV DS,AX mov al,00h;对LED行列寄存器进行初始化 mov dx,proth out dx,al mov dx,protly out dx,al mov dx,protlr out dx,almain:inc j ;红帧调整cmp j,2ch jl ifend mov j,0 ifend: mov cx,0fh zhenloop: push cx ; mov cx,00fh call yellowxy ;黄帧调整 loop1: push cx mov cx,8 looph: mov bx,offset buff;显示红列 mov ax,8 sub ax,cx mov si,ax add ax,j xlat mov dx,proth out dx,al mov dx,protlr push cx mov ah,80h mov cx,sishr ah,cl pop cxmov al,ahout dx,alcall delay3 mov al,00h ;红帧消余辉 mov dx,proth out dx,al mov al,00h mov dx,protlr out dx,al loop looph pop cx ;显示黄帧 mov al,xx mov dx,proth out dx,al mov al,yy mov dx,protly out dx,al call delay3 mov al,00h;黄帧消余晖 mov dx,proth out dx,al mov al,00h mov dx,protly out dx,al loop loop1 pop cx ;for帧循环endloop zhenloopjmp main;-delay3 proc near ;延时子程序ccc:mov dx,io8253b ;置8253通道0为方式0工作mov al,30hout dx,al mov dx,io8253b ;1M 时钟接到这,两个gate都接高电平 mov al,74H out dx,almov dx,io8255b ;设8255A口输入mov al,90hout dx,almov dx,io8253a1 mov ax,700out dx,al ;向8253通道1输出 mov al,ah out dx,almov dx,io8253a mov ax,100out dx,al ;向8253通道0输出 mov al,ah out dx,alkkk:mov dx,io8255ain al,dx ;从8255A口读一字节 test al,01 ;判PA0口是否为1jz kkk ;若不为1,则转KKKret ;子程序返回delay3 endp;-yellowxy proc near;黄帧调整子程序push ax mov al,cnt inc al mov cnt,alifa1:mov al,x cmp al,0 je ifa2 jmp ifb1 ifa2:mov al,y cmp al,7 jl ifa jmp ifb1 ifa:inc y jmp ifoutifb1:mov al,y cmp al,7 je ifb2 jmp ifc1 ifb2:mov al,x cmp al,7 jl ifbe jmp ifc1 ifbe:inc x jmp ifoutifc1:mov al,x cmp al,7 je ifc2 jmp ifd1 ifc2:mov al,y cmp al,0 jg ifc jmp ifd1 ifc:dec y jmp ifoutifd1:mov al,y cmp al,0 je ifd2 jmp ifout ifd2:mov al,x cmp al,0 jg ifd jmp ifout ifd:dec x jmp ifoutifout:noppop axcall xy2gridretyellowxy endp;-;-;将黄帧(x,y)坐标用one-hot形式表示xy2grid proc near push cx push axmov cl,xmov al,1shl al,clmov xx,almov cl,ymov al,1shl al,clmov yy,alpop axpop cxretxy2grid endp;-CODE ENDSEND START4.测试4.1测试过程中遇到的问题记录(1)显示图像较暗。这个问题发生的原因在于,LED点阵的显示方式为逐列扫描,在某列点亮的时候,其余的列均为关闭状态,于是,每行的停留时间决定了最终图像的亮度。当我们把延时程序的延时值设成一个更大的值之后,问题得以解决。(2)显示的文字旁边出现影子或多余的亮点。出现这个问题的原因在于,CPU写入行寄存器信息和写入列寄存器信息不是同步进行的,如果在对行寄存器赋值后,列寄存器仍保存着上一次的赋值,那么,前后两次扫描之间就会产生干扰,出现类似数字电路中经常出现的“竞争与冒险现象”,显示的混乱图像实质上是当前的列信息与上一组行信息的混合体。解决方法是,显示完某一列之后,分别对行列寄存器进行清空,再进行下一列的显示。(3)某行全亮,但其他行正常显示。造成这个问题的原因,有可能是LED点阵损坏,另一种原因是类似第二点故障的原因由于行列寄存器没有清空造成显示混乱。在更换实验板以及加入消影操作之后,问题得到解决。(4)第一次调试正常运作,在不改动的情况下进行第二次调试,屏幕上却出现了混乱的图像。这是因为程序开始时没有对寄存器进行初始化赋初值操作,以至于寄存器还保存着上一次运行时的值,于是造成错乱。(5)loop跳转范围过大出错。解决这个问题,可以把loop改写成比较指令cmp加比较跳转指令je加上无条件跳转指令jmp。另外,在调试过程中,我们还得到了很多经验与教训。比如说,(1)编写汇编程序时应该利用好变量,因为寄存器的个数对于编写一个较为复杂的程序而言太少了,而变量是近乎无限的,它的作用可以代替寄存器,解决临时储存空间不足的问题。对于一个结构化的程序而言,寄存器的工作范围应该仅限于一个动作一个规模最小的模块,进出模块都需要对寄存器进行入栈出栈操作,避免把寄存器的工作范围扩大化,这样不利于程序的模块化。(2)学会了如何运用汇编语言编写各种经典的分支循环结构(ifelse分支及其嵌套、case分支、for循环、while循环、repeat循环)以及子程序的编写方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《物联网在智能温室蔬菜病虫害预警中的应用效果评价体系构建》教学研究课题报告
- 精准农业遥感技术探索-洞察及研究
- 麻疹疫苗接种后监测-洞察及研究
- 2026年放射性废物包装容器认证合同
- 效管控合同范本
- 基于真实情境的职业教育人工智能课程案例资源开发与评价教学研究课题报告
- 智能制造设备自动化检测方案
- 计算机设备维护外包合同范本及注意点
- 常见产品质量缺陷预防与控制方案
- GPS监控员培训讲义
- 2024高考二模模拟训练数学试卷(原卷版)
- 增值税销售货物或者提供应税劳务清单(模板)
- 35770-2022合规管理体系-要求及使用指南标准及内审员培训教材
- 2022年福建翔安区社区专职工作者招聘考试真题
- 四川省成都市青羊区2023年九年级一诊英语试卷
- 《高势能品牌》读书笔记思维导图
- 拆零药品登记表
- 英语电影的艺术与科学智慧树知到答案章节测试2023年中国海洋大学
- 附件1北京建筑大学新办本科专业教学评估方案
- GB/T 16786-2007术语工作计算机应用数据类目
- 中国地质大学武汉软件工程专业学位研究生实践手册
评论
0/150
提交评论