基于8086彩灯控制器的设计报告( 最终版)

时间:2024.4.21

 

Hefei University

微机原理与接口技术课程设计报告

论 文 题 目        基于8086彩灯控制器的设计           

系    别          电子信息与电气工程系           

专    业                                         

姓    名                                         

                                                    

                                                    

指导   老师                                         

完成   时间             20##年12月29日               

自动化专业微机原理课程设计任务书

摘要

课题:基于8086的彩灯控制器

1.通过8255A控制发光二极管,L1对应黄灯,L2-L5对应红灯,L6-L8对应绿灯, 以“ 0 ”代表彩灯点亮,以“ 1 ”代表彩灯熄灭。用“JMP START”语句控制循环。用“DL500ms”,“DL1500ms”语句实现延时控制。

2程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态

3各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。

关键词:8255 彩灯 控制器 端口

目 录

摘要. 2

设计原理. 4

实验线路. 4

功能流程图. 5

结果讨论. 5

设计心得. 6

结束语. 7

参考文献. 8

附件. 9

设计原理

我们以8255交通灯的一种显示效果为例,介绍彩灯控制器显示的基本原理。设有一排 8个水平排列的彩灯,某种显示方式为从左到右0.5秒点亮。其控制过程如下:

若以“ 0 ”代表彩灯点亮,以“ 1 ”代表彩灯熄灭,则开始时刻, L1黄灯亮1.5秒后,红灯L2,L3,L4,L5间隔0.5秒依次亮,然后绿灯L6.L7.L8间隔0.5秒依次亮;循环7次。控制器将一帧8个数据送至8个彩灯的控制端,其中,最左边的一段彩灯对应的控制数据为“0”,其余的数据均为1,即11111110.当8个数据送完以后,控制器停止送数,保留这种状态(定时)1.5秒,此时黄灯被点亮,其余彩灯熄灭。随后,控制器又在极短的时间内将数据111111101送至彩灯的控制端,并定时0.5秒,这段时间,第一个红灯被点亮。由于送数据的过程很快,我们观测到的效果是第一个红灯被点亮 0.5 秒后,第 2 个红灯接着被点亮,即每隔 0.5 秒显示一帧图样。如此下去,最后控制器将数据 01111111送至 8个彩灯的控制端,则L8绿灯被点亮。依次循环7次。

仿真电路图

功能流程图

程序主流程控制图

 

注:程序详见附件

结果讨论

本程序共有分端口设置模块,延时模块,显示模块等几个模块。经过调试,本程序可以基本实现题目的要求。

黄灯L1亮  1.5秒 红灯L2.L3.L4.L5间隔0.5秒依次点亮  1.5秒    绿灯L6、L7、L8、L9间隔0.5秒依次点亮  1.5秒  黄灯L1熄灭 1.5秒    L2、L3、L4、L5同时熄灭  1.5秒     L6、L7、L8、L9同时熄灭  1.5秒 返回初始步,循环显示。

本程序参照实验室电脑中星研8255控制交通灯实验。

下面对几个重点部分的调试过程和遇到的问题作一定的讨论:

1.所调试的程序无法达到彩灯有规律的熄灭。

2.循环次数有限,为7次。

3.硬件连接的排线无法与插针很好的匹配。

4.在系统显示监控提示符“P.”时,按SCAL键。

设计心得

通过对基于8086彩灯控制器的汇编实现,对硬件特别是8253A,8255并行口的原理和实现都有了很深的了解。更加深了对汇编语言的使用.

整个程序中涉及8253A,8255并行口的使用,汇编语言熟练掌握的要求。

可以说整个文件中最麻烦的就是进位条件的判断,编程中经常犯想当然的错误。另外对于中断服务子程序的类型设置问题,由于以前对这个概念的理解留于表面,编程中出现了不少奇怪的错误。再调试中尝试使用了分割法,对错误模块进行定位,再进行排查.

在算法实现上要有一定的思路要更能体现设计的目的。同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。

通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。

所以在以后的学习中一方面我要不断的巩固自己所学的理论知识,一方面还要多参加实际操作工作以便提高自己的实际操作能力。

其实这次课程设计的最大收获应该是找到了解决问题的几个很好的途径:1.讨论2.通过网络,在自己的网站上也收获了很多,共享让我们共同进步。此外,我学会了看硬件结构图,并学会了自己去独立的完善一个程序,对程序的效用等做思考。并体会到:问别人只能帮你开拓思路,真正解决问题还是要靠自己去摸索。当然讨论是很好的学习途径,它会让你事半功倍.

由于时间不是很充裕,程序中有很多值得改善的地方,我尝试再其中加入更多的功能,但调试的结果没有,所以需要继续努力。

结束语

通过本次“基于8086的彩灯控制器”的微机课程设计,在理论知识方面:我们更进一步了解了8255并口的应用,同时加深学习了星研和DJ88k相关软硬件操作。一方面加强了通过查阅资料分析问题,研究问题,解决问题,另一方面将理论与实践在某一程度进行融合。在实验经验方面:充分认识到团队合作的重要性!虽然在实验过程中遇到了种种困难,但经过团队的共同努力,老师的指导,充分发挥出了团队的主体与个体优势,扬长避短,最终完成了实验任务。

最后,感谢刘伟,林泽坤两位老师一直陪伴我们完成实验,以及在实验两周内的辛勤指导!谢谢……

参考文献

《微型计算机原理及接口技术》实验指导书

《16-32位微型计算机技术及应用》清华大学出版社

《汇编语言程序设计》南京大学出版社

《汇编语言程序设计教程》清华大学出版社

《微型计算机原理及接口技术》中国科技大学出版社

附件

基于8086彩灯控制器的程序清单

DATA SEGMENT

COM       EQU     96H          ;控制口偏移量

PA       EQU 90H ;PA口偏移量

PB     EQU 92H    ;PB口偏移量

PC     EQU 94H

DATA ENDS

sda segment stack

bdfv dw 100 dup(0)

sda ends

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:sda

START:   

       mov dx,COM

       mov al,82H       ; PA、PB、PC为基本输出模式

       out dx,al        

       mov al,00000000b

       mov dx,PA        

       out dx,al

 QQ:   MOV DX,PB

       IN AL,DX  

       cmp al,0FDh

       jnz START1

       MOV DX,PB

       IN AL,DX  

       cmp al,0FDh

       Jz   hh

       jmp  QQ

hh: jmp       START2       

 START1  proc near

 waitq:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jnz  wait1

               mov al,00000000b

          mov dx,PA        

          out dx,al

          MOV DX,PC

          MOV AL,00H

          OUT DX,AL

 wait1:        MOV DX,PB

               IN AL,DX                 

               cmp al,0Fbh

               jz  wait1 

                MOV DX,PC

                MOV AL,01H

                OUT DX,AL

                MOV CX,6H

DELAY8:   DEC CX

          LOOP DELAY8                      

                MOV DX,PA

                MOV AL,01H

                OUT DX,AL

                MOV CX,2H

DELAY:   DEC CX

                LOOP DELAY 

                MOV DX,PA

                MOV AL,03H

                OUT DX,AL

                MOV CX,2H

DELAY1:   DEC CX

          LOOP DELAY1 

 waitw:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jnz  wait1w

               mov al,00000000b

          mov dx,PA        

          out dx,al

          MOV DX,PC

                MOV AL,00H

                OUT DX,AL

 wait1w:        MOV DX,PB

                IN AL,DX                

                cmp al,0Fbh

                jz  wait1w            

                MOV DX,PA 

                MOV AL,07H

                OUT DX,AL

                MOV CX,2H

DELAY2:   DEC CX

          LOOP DELAY2

               MOV DX,PA

                MOV AL,0FH

                OUT DX,AL

                MOV CX,6H

DELAY3:  DEC CX

         LOOP DELAY3

              MOV DX,PA 

                MOV AL,1FH

                OUT DX,AL

                MOV CX,2H               

DELAY4:   DEC CX

          LOOP DELAY4            

               MOV DX,PA

                MOV AL,3FH

                OUT DX,AL

                MOV CX,2H

DELAY5:   DEC CX

          LOOP DELAY5

           waitw1:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jnz  wait1w1

               mov al,00000000b

          mov dx,PA        

          out dx,al

          MOV DX,PC

                MOV AL,00H

                OUT DX,AL

 wait1w1:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jz  wait1w1 

           MOV DX,PA 

                MOV AL,7FH

                OUT DX,AL

                MOV CX,2H

DELAY6:   DEC CX

          LOOP DELAY6            

               MOV DX,PA

                MOV AL,0FFH

                OUT DX,AL

                MOV CX,6H

DELAY9:DEC CX

       LOOP DELAY9

                MOV DX,PC

                MOV AL,0

                OUT DX,AL

                MOV CX,6H

DELAY10:DEC CX

        LOOP DELAY10

               MOV DX,PA

               MOV AL,0

               OUT DX,AL

JMP START1

ret

 START1      endp

START2 proc  near 

wait2:        MOV DX,PB

               IN AL,DX                 

               cmp al,0FBh

               jnz  wait3

               mov al,00000000b

          mov dx,PA        

          out dx,al

               MOV DX,PC

                MOV AL,00H

                OUT DX,AL

 wait3:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jz  wait3               

                MOV DX,PC

                MOV AL,01H

                OUT DX,AL

                MOV CX,0EH

DELA8:   DEC CX

          LOOP DELA8                      

                MOV DX,PA

                MOV AL,01H

                OUT DX,AL

                MOV CX,06H

DELA:   DEC CX

          LOOP DELA

          MOV DX,PA

                MOV AL,03H

                OUT DX,AL

                MOV CX,06H

DELA1:   DEC CX

          LOOP DELA1            

              MOV DX,PA

                MOV AL,07H

                OUT DX,AL

                MOV CX,06H

DELA2:   DEC CX

          LOOP DELA2

   wait6:        MOV DX,PB

               IN AL,DX                

               cmp al,0FBh

               jnz  wait7

               mov al,00000000b

          mov dx,PA        

          out dx,al

          MOV DX,PC

                MOV AL,00H

                OUT DX,AL

 wait7:        MOV DX,PB

               IN AL,DX                

               cmp al,0Fbh

               jz  wait7     

        MOV DX,PA

                MOV AL,0FH

                OUT DX,AL

                MOV CX,0EH

DELA3:  DEC CX

         LOOP DELA3

               mov dx, PA 

                MOV AL,1FH

                OUT DX,AL

                MOV CX,06H               

DELA4:   DEC CX

          LOOP DELA4            

              MOV DX,PA

                MOV AL,3FH

                OUT DX,AL

                MOV CX,06H

DELA5:   DEC CX

          LOOP DELA5             

               MOV DX,PA

                MOV AL,7FH

                OUT DX,AL

                MOV CX,06H

DELA6:   DEC CX

    

     LOOP DELA6            

              MOV DX,PA

                MOV AL,0FFH

                OUT DX,AL

                MOV CX,0EH

DELA9:DEC CX

       LOOP DELA9

                MOV DX,PC

                MOV AL,0

                OUT DX,AL

                MOV CX,0EH

DELA10:DEC CX

        LOOP DELA10

               MOV DX,PA

               MOV AL,0

               OUT DX,AL

JMP START2                                      

         ret

START2 ENDP  

CODE ENDS

END START     


第二篇:基于8086彩灯控制器的课程设计报告


基于8086彩灯控制器的设计

一、引言

1、 8086微处理器

8086微处理器是Intel公司推出的第三代CPU芯片,其内部结构采用16位结构进行操作及存储器寻址。

8086微处理器的一般性能特点:

? 16位的内部结构,16位双向数据信号线;

? 20位地址信号线,可寻址1M字节存储单元;

? 较强的指令系统;

? 利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口; ? 中断功能强,可处理内部软件中断和外部中断,中断源可达256个; ? 单一的+5V电源,单相时钟5MHz。

2、 可编程并行接口芯片8255A

并行通信与接口

? 并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。

? Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。

1

二、课程设计主要内容及目标

1、 主功能:

(1) 黄灯L1亮,延时1.5s;

(2) 红灯L2、L3、L4、L5间隔0.5s依次点亮,延时1.5s;

(3) 绿灯L6、L7、L8、L9间隔0.5s依次点亮,延时1.5s;

(4) 黄灯L1熄灭,延时1.5s;

(5) 红灯L2、L3、L4、L5同时熄灭,延时1.5s;

(6) 绿灯L6、L7、L8、L9同时熄灭,延时1.5s;

(7) 返回初始步,循环显示。

2、 其他功能:

(1) 有清零开关

(2) 可以选择快慢两种节拍

三、系统框图

? 多路彩灯控制器系统框图如下所示:

基于8086彩灯控制器的课程设计报告

基于8086彩灯控制器的课程设计报告

基于8086彩灯控制器的课程设计报告

基于8086彩灯控制器的课程设计报告

基于8086彩灯控制器的课程设计报告

基于8086彩灯控制器的课程设计报告

1

基于8086彩灯控制器的课程设计报告

四、硬件电路

五、设计框图

基于8086彩灯控制器的课程设计报告

2

六、软件程序

七、结束语

通过本次微机原理与接口技术的课程设计,我们不仅加深了对8086微处理器理论的理解,将理论很好地应用到实际当中去,而且还学会了如何培养创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

八、参考文献

1.《微型计算机原理及接口技术》中国科技大学出版社 吴秀清 周荷琴 编著

2.《16-32位微型计算机技术及应用》清华大学出版社 戴梅萼 史嘉权 编著

3.《汇编语言程序设计》南京大学出版社 姚君遗 编著

4.《汇编语言程序设计教程》清华大学出版社 杨记文 编著

5.《微型计算机原理及接口技术》实验指导书

3

更多相关推荐:
彩灯控制器实验报告

目录前言1一课题设计任务及要求3二设计目的3三优选设计方案4四整体设计思想及原理框图5五各模块设计与分析61脉冲发生电路72控制电路和译码电路103存储电路124数码管显示电路14六元器件清单15七安装及调试中...

彩灯控制器数字电路实验报告

内蒙古师范大学计算机与信息工程学院数字电路课程设计报告1彩灯控制器电路设计计算机信息与工程学院20xx级计科师范汉班柴宁娇20xx11020xx指导老师张鹏举讲师摘要八路循环彩灯控制器整体电路由三部分组成脉冲发...

移位寄存器型彩灯控制器实验报告

课程设计综合实验报告20xx20xx年度第二学期名称电子技术综合实验题院系能源动力与机械工程学院班级热能0809班学号学生姓名指导教师设计周数第十九周成绩日期20xx年7月6日课程课程设计综合实验报告电子技术综...

中南大学彩灯控制器实验报告

电工电子课程设计实验报告题目名称:彩灯控制器指导教师:姓名:学号:专业班级:日期:前言电子技术课程设计是配合电子技术基础课程与实验教学的一个非常重要的教学环节。它是电气信息类专业学生的重要基础实践课,也是工科专…

彩灯控制器实验报告

现代电路与系统实验报告实验三彩灯控制器学院研究生院学号1400030034姓名张秋明一实验目的及要求设计一个彩灯控制器能让一排灯自动改变显示花样彩灯的变化方向有单向移动双向移动跳跃移动从中间往两边移动和从两边往...

实验报告循环彩灯控制器

湖南科技大学信息与电气工程学院VHDL语言课程设计报告题目VHDL语言课程设计专业班级姓名学号课程设计任务书一课程设计的目的1通过本次课程设计熟练掌握MAXPLUS2的应用操作并对VHDL语言的编程做一实践检验...

彩灯控制器实验报告 (1)

电工电子课程设计题目名称指导教师姓名学号专业班级日期实验报告彩灯控制器姜霞曹宏宇张博翔11020xx220交设0702班20xx0705前言电子技术课程设计是配合电子技术基础课程与实验教学的一个非常重要的教学环...

微型控制器实验报告1-8

微控制器技术实验报告班级自动化0703姓名谢鹏学号0901070316微控制器技术实验报告目录一实验目的及要求2二实验基本内容TD51单片机实验系统实现2三实验报告基本内容要求3四实验系统简介4实验一到实验三6...

彩灯控制器 数电课程设计报告

湖南工程学院程设课程名称数字电子技术课题名称彩灯控制器专业班级0801学号03姓名蒋知英指导教师康迎曦20xx年12月18日课计湖南工程学院课程设计任务书课程名称数字电子技术题目彩灯控制器专业班级电子科学与技术...

实验六 循环彩灯控制器的设计

实验六循环彩灯控制器的设计一设计目的1学习用状态机设计特色电路2牢固掌握用VHDL语言编写状态机程序的方法和技巧二设计要求1编写循环彩灯控制器的VHDL源程序2在MAXPLUSII上进行编译综合适配引脚锁定下载...

基于单片机流水彩色灯控制器的设计开题报告

附表A1贵州大学本科生毕业论文设计开题报告表

EDA多路彩灯控制器设计报告

EDA课程设计多路彩灯控制设计1系统设计要求设计一个多路彩灯控制器要有多种花型变化至少设计4种多种花型可以自动变换循环往复有清零开关可以变化彩灯闪动频率即是可以选择快慢两种节拍2设计方案整个系统有三个输入信号分...

彩灯控制器实验报告(27篇)