微机原理(基于PROTEUS的跑马灯系统设计及仿真)

合集下载

《微型计算机系统》课程设计基于单片机的跑马灯设计大学论文

《微型计算机系统》课程设计基于单片机的跑马灯设计大学论文

《微型计算机系统》课程设计任务书题目名称:基于单片机的跑马灯设计专业自动化班自本132 姓名刘鑫伟学号201328201 学校:青岛理工大学自动化学院指导教师:史贺男2015年11月30日青岛理工大学自动化工程学院课程设计任务书课程名称:微型计算机系统设计题目:基于单片机的跑马灯设计系统硬件要求:根据实际要求,以MCS-51单片机为核心,设计3个按键,每个按键对应一个花样,可手动显示,即按一个按键,显示一种花样,也可以再设计一个按键用于连续显示每个花样,每个花样显示的时间和花样设计者自己规定,并在论文中给定。

设计控制系统硬件电路,编写C语言或汇编语言程序,并用PROTEUS软件进行实时仿真。

要求:(1)扩展接口(8255或8155),设计至少4个按键(2)设计至少32个LED(3)LED显示至少有3种花样,可单独显示也可自动循环显示软件设计:1)主程序设计2)各功能子程序设计其他要求:1、每位同学独立完成本设计。

2、依据题目要求,提出系统设计方案。

3、设计系统电路原理图。

1、调试系统硬件电路、功能程序。

2、编制课程设计报告书并装订成册,报告书内容(按顺序)(1)报告书封面(2)课程设计任务书(3)系统设计方案的提出、分析(4)系统中典型电路的分析(5)系统软件结构框图(6)系统电路原理图(7)源程序(8)课设字数不少于3000字目录第一节AT89C51芯片分析 (I)第二节设计概述 (3)第三节算法 (5)第四节编程技巧 (7)第五节电路设计及功能说明,硬件原理框图及电路图(包括接口芯片简介).8 第六节调试过程中的主要难点(自己遇到的)及解决思路和办法; (8)课设结果及分析、收获、体会和建议; (9)参考文献 (10)附录1 (11)附录2 (12)第一节AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

微机原理————走马灯实验设计

微机原理————走马灯实验设计

微型计算机技术课程设计指导教师:赵立辉李鹏学生班级:计科10802学生姓名:陈东学号:200803939班内序号:11目录1.……………………………………………………….课设目的2.………………………………………………………课设内容3.…………………………………………问题分析及设计思路4.…………………………………………电路设计及功能说明5.………………………………硬件原理图及接口芯片的介绍6.……………………………………程序流程图及相关源程序7. …………………………………………………实验结果及分析8.…………………………………………………………课设总结一.课设目的1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。

2.主要掌握接口芯片8253、8255A等可编程器件的使用,掌握译码器74LS138的使用。

3.学会用汇编语言编写一个较完整的实用程序。

4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。

二.课设内容1.功能要求:采用8253设计一个1s定时电路,将定时信号接到8255的PC 口的某一位,编程查询该位的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。

按下Esc键结束程序。

2.设计所需器材及介绍①一块实验面包板(内含时钟信号1MHz或2MHz)。

②可编程芯片8253、8255A、74LS138、74LS245各一片。

74LS06两片,发光二极管8个,排电阻一个。

③导线若干。

④示波器、万用表、常用工具等共用(从实验室现借现还)三.问题分析及设计思路1.利用74LS138设计地址译码电路,8255A端口地址:300H~303H,8253的端口地址:304H~307H。

2.74LS245用于总线和8253、8255A之间的双向传输和隔离。

微机原理(基于PROTEUS的跑马灯系统设计及仿真)

微机原理(基于PROTEUS的跑马灯系统设计及仿真)

学号:课程设计题目基于PROTEUS的跑马灯系统设计及仿真学院自动化学院专业自动化班级姓名指导教师2012 年 1 月12 日任务书目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献 (20)引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

具体要求为:(1)、输入设备三个启动按钮、一个停止按钮,输出设备为八个跑马灯;(2)、三个启动按钮对应三种跑马灯显示效果,按下任意一个启动按钮,跑马灯显示对应的效果,按下停止按钮则跑马灯全部熄灭。

基于Proteus的跑马灯设计及仿真

基于Proteus的跑马灯设计及仿真

基于Proteus的跑马灯设计及仿真作者:马惠兰来源:《电子技术与软件工程》2016年第04期摘要跑马灯是数字电路设计中一个非常有趣的课题,本文给出了8个跑马灯设计方案,并进行了Proteus仿真。

【关键词】跑马灯设计仿真移位寄存器是数字系统设计中应用很广的时序逻辑电路,不仅可以实现串并和并串转换、构成环形计数器、顺序脉冲发生器,还可以利用其功能设计跑马灯。

1 Proteus介绍Proteus是英国Labcenter公司研发的EDA,是目前最先进的电子应用系统设计和实时交互仿真、PCB设计的平台。

它真正实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB制板图的完整仿真设计(虚拟样机)过程。

Proteus有超过5万个元件模型,近5000个封装模型。

2 跑马灯设计要求设计8个LED跑马灯,其设计要求如下:(1)分别实现三个过程,构成一个循环共24秒。

(2)第一个过程要求8个LED灯依次点亮,共8秒。

(3)第二个过程要求8个LED灯依次熄灭,共8秒,先亮者后灭。

(4)最后8秒要求8个LED灯亮一下灭一下,共闪8下。

3 跑马灯设计原理74LS194是四位双向移位寄存器,有保持、右移、左移和并行输入四种工作方式,分别由S1S0控制。

首先把两片74LS194连接成一个8位的双向移位寄存器,两片74LS194的S1、S0、MR、CLK并联,低片的Q3连接到高片的SR,高片的Q0连接到低片的SL。

第三个过程8个灯闪烁8次后两片74LS194的Q0~Q3全是0,可以将高片的Q3取反后输入给低片的SR,低片的Q0取反后输入给高片的SL。

根据设计要求,这个8位的双向移位寄存器在右移、左移和并入三个工作状态循环,即S1S0在01、10和11之间循环。

计数器74LS190是一个十进制可逆计数器,利用它设计一个三进制计数器如图1所示,当输出为0100时装入数据0001,构成0001→0010→0011→0001的循环,将其Q1、Q0分别连接到两片74LS194的S1、S0。

微机原理(基于PROTEUS的跑马灯系统设计及仿真)资料

微机原理(基于PROTEUS的跑马灯系统设计及仿真)资料

课程设计题目基于PROTEUS的跑马灯系统设计及仿真学院自动化学院专业自动化班级姓名指导教师2012 年 1 月12 日任务书目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献.................................................................. 错误!未定义书签。

引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用内存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

汇编课程之跑马灯设计报告

汇编课程之跑马灯设计报告

太原工业学院汇编语言与微机原理课程设计报告学生姓名:刘创学号:*********系部: 计算机工程系专业: 计算机科学与技术题目: 利用8255实现花式跑马灯成绩指导教师李丽2016年6月28日1.设计内容1)设计电路;2)实现6种不同的跑马灯样式;3)跑马灯的运行状态可由开关控制4)要有暂停跑马灯按钮控制即跑马灯的状态切换。

2.总体设计1)设计原理本实验通过循环检测A口数据,判断按得是哪个开关,如开关1按下,则向AL送01h,并送至B口,循环左移AL达到灯的流水下移,调用延时子程序控制灯闪亮时间,通过BH的赋值控制循环次数,达到时间定时效果。

每循环一个周期,CPU都会检测A口的值,从而能即时切换跑马灯花式。

2)设计跑马灯方案a)按下开关1,跑法1,AL初值01H,循环左移,控制一个亮灯自上而下跑动。

b)按下开关2,跑法2,AL初值81H,循环右移,控制一个亮灯自下而上跑动。

c)按下开关3,跑法3,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮。

d)按下开关4,跑法4,AL初值0C0H,循环右移,控制两个亮灯自下而上跑动。

e)按下按键5,跑法5,AL初值05H,循环左移,控制亮暗亮3灯自上而下跑动。

f)按下开关6,跑法6,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮,相比按键3,跑动时间更长,以显示定功能。

g)按下开关7按下,跑马灯暂停工作,再次按下跑马灯继续工作。

3.硬件设计1)Proteus元件清单及功能说明2)电路设计图a)8086微处理机与锁存器、译码器连接b)8255A与跑马灯开关控制连接图c)8255A与跑马灯LED显示灯连接图4. 软件设计1)程序设计思路利用查询式不断循环查询控制跑马灯样式的开关状态,进而编写程序来控制跑马灯的输出样式。

同时,检测是否暂停跑马灯工作状态的按钮,以及时处理暂停与继续工作状态。

2)程序流程图3)程序代码MarqueeHorseRaceLamp.ASM/*文件名*/ CODE SEGMENTASSUME CS:CODESTART: MOV AL,90HMOV DX,206HOUT DX,ALNOKEY:CALL SCANJNZ NOKEYSCAN PROCMOV AL,0FFHMOV DX,202HOUT DX,ALMOV DX,200HIN AL,DXTEST AL,01HJZ P1TEST AL,02HJZ P2TEST AL,04HJZ P3TEST AL,08HJZ P4TEST AL,10HJZ P5TEST AL,20H JZ P6RETP1:CALL PA1PA1 PROCMOV BH,0MOV BL,01HA1:MOV AL,BLMOV DX,202HOUT DX,ALMOV CX,50000CALL DELAY ROL BL,1CALL STOPCALL SCANCMP BL,01HJNZ J1INC BHJ1:JMP A1PA1 ENDPP2:CALL PA2PA2 PROCMOV BH,0MOV BL,80HA2:MOV AL,BLMOV DX,202H OUT DX,AL CALL DELAY ROR BL,1CALL STOP CALL SCANCMP BL,80HJNZ J2INC BHJ2:JMP A2RETPA2 ENDPP3:CALL PA3PA3 PROCMOV BH,0MOV BL,0AAH A3:MOV AL,BLMOV DX,202H OUT DX,AL CALL DELAY MOV CL,1ROL BL,CL CALL STOP CALL SCAN CMP BL,0AAHJNZ J3INC BHJ3:JMP A3RETPA3 ENDPP4:CALL PA4PA4 PROCMOV BH,0MOV BL,0C0HA4:MOV AL,BLMOV DX,202HOUT DX,ALCALL DELAYMOV CL,1ROR BL,CLCALL STOPCALL SCANCMP BL,0C0HJNZ J4INC BHJ4:JMP A4RETPA4 ENDPP5:CALL PA5 PA5 PROCMOV BH,0MOV BL,05HA5:MOV AL,BLMOV DX,202HOUT DX,ALCALL DELAYROL BL,1CALL STOPCALL SCANCMP BL,05HJNZ J5INC BHCALL RETURNJ5:JMP A5RETPA5 ENDPP6:CALL PA6 PA6 PROCMOV BH,05HMOV BL,0AAHA6: MOV AL,BLMOV DX,202HOUT DX,ALMOV CX,50000CALL DELAYROL BL,1CALL STOPCALL SCANCMP BL,0AAHJNZ J6INC BHCALL RETURNJ6:JMP A6RETPA6 ENDPDELAY PROCMOV CX,50000LOOP1: LOOP LOOP1RETDELAY ENDPRETURN PROC CMP BH,04HJZ NOKEYRETSTOP PROC L1:MOV AL,00HMOV DX,202HOUT DX,ALMOV DX,200HIN AL,DXTEST AL,40HJNZ DONEJMP L1DONE:RETSTOP ENDPRETURN ENDPSCAN ENDPCODE ENDSEND START5. 仿真调试与分析a)连接好完整电路后,加载已经写好的跑马灯程序b)调试已经加载的代码,直至代码无编译错误为止c)启动Proteus调试d)拨动相关控制开关,进而控制跑马灯的工作风格e)调试结果基本符合实验前的设计,跑马灯以正确的工作风格进行工作,符合逻辑,整个实验分析正确f)跑马灯实验设计成功,结束实验6. 结论由于之前曾学习过组成原理,对Proteus的电路连接颇为了解,所以本次的电路连接没有太大的问题。

基于 Proteus 软件的单片机实验室建设方案跑马灯 万年历课程设计

基于 Proteus 软件的单片机实验室建设方案跑马灯 万年历课程设计

目录摘要 (Ⅰ)ABSTRACT ..................................................................................................... I I 课程说明 . (1)1.1 国内单片机实验室建设发展综述 (1)1.2 单片机仿真软件综述 (2)1.3 课程设计任务任务 (4)方案设计 (4)2.1 硬件配置方案 (4)2.2 软件配置方案 (5)2.3 Proteus 实验室完成实验内容 (8)基于PROTUES的的仿真实验 (10)3.1、基础性实验------跑马灯设计 (10)3.1.1跑马灯的硬件设计 (10)3.1.2跑马灯的软件设计 (14)3. 2.1万年历设计 (19)3.2.2 调试与仿真 (20)参考文摘 (22)总结 (24)附录 (25)跑马灯的程序清单 (25)万年历的程序清单 (25)摘要微机系统是大二学的课程,通过这门课学会了汇编语言。

微机系统的核心是硬件仿真,硬件方正的重点是单片机。

单片机的种类繁多,在我们学校由于实验室的限制,没有条件在包括所有种类的单片机仿真设备。

本文提出基于Proteus 软件的单片机实验室建设方案,它能很好的解决上述问题。

数字单片机实验室是采用Proteus 和Keil 仿真软件为核心来构建的。

该数字实验室能完成中断、定时、单片机扩展、串行口通信和A/D 转换等教学实验。

并给出相应的小实例说明Proteus的基本使用方法、仿真实验的一般流程,并在此基础上实现复杂的Proteus仿真实验项目,如跑马灯仿真实验和万年历仿真实验。

该方案以软件为核心,通过配置有限的硬件设备,很好地解决了传统单片机实验室资金和设备维护问题,我们通过仿真实验,可以熟悉单片机系统的开发方法,即使不真正接触单片机或者相应的芯片,也能够熟悉各种芯片,并且对进一步培养自己的综合分析能力、排除故障能力和开发、创新能力具有重要的意义。

微机原理(基于PROTEUS的跑马灯系统设计及仿真)

微机原理(基于PROTEUS的跑马灯系统设计及仿真)
dl4:movbx,00ffh
dl3:decbx
jnz dl3
deccx
jnz dl4
jmp ledflash
exit:
movnum,0
jmp here
ledflash endp
csegends
endstart
4程序调试说明
(1)、内存空间分配,汇编语言的重要特点之一是能够直接利用机器指令或者伪指令为数据或者代码程序分配内存空间,86系列(如8086微处理器)的存储器结构是分段的,有代码段,数据段,堆栈段或附加段,在程序设计时要充分考虑分段结构,要执行的程序段应设在当前段(活动段)中;分配内存空间:直接在proteus里面将8086CPU的internal memory size设置成一个足够用的空间大小,如0x1000,默认的空间大小是0x00000,如不改则仿真不成功。
[SPICE]error---too many iterations without coFra bibliotekvergence
在仿真过程中,出现以上两行的错误,太多的迭代没有收敛性,和某个汇编语言在编码过程中的地址不正确,经过排查程序去除无用代码,proteus不再报错。
(3)、8255A隐藏引脚问题,需要设置芯片Hidden Pins里的GND改为VSS,VCC改为VDD。
如图所示我们利用启动按钮作为输入信号,通过8255A端口扩展芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现跑马灯不同的花样变化。
图跑马灯电路图
1.2.1锁存控制电路
锁存控制电路电路如图所示,在微控制器单元(MCU)中,寄存器是十分重要的资源。寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据,其锁存功能利用74LS273来实现,74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。

微型计算机技术及应用课程设计

微型计算机技术及应用课程设计

微型计算机技术及应用课程设计课程题目:跑马灯的设计与实现院系:专业:姓名:学号:指导老师:完成日期:跑马灯的设计与实现一实验目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.深入了解与掌握8086微处理器、8255A、74ls154 和74LS273的工作原理3.通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原理与方法。

二实验要求1.产生6种彩灯(8位LED)的走马灯花样;2.键控(或拨码开关控制)发光实验。

通过按下不同的开关来控制灯的不同的走向。

三实验内容1.进行走马灯的系统电路设计,掌握基本原理;2.利用PROTEUS软件画出电路原理图;3.进行走马灯的控制程序设计(采用ASM语言);4.将程序导入8086中进行仿真,完成4种不同的走向。

四程序流程图YN五.设计原理与硬件电路 开始 系统初始化 8255初始化 按下开关 判断1-6的哪种 方式选择发光方式 结束 熄灭LED 灯1.功能分析此次课程设计具体功能为:(1)采用不同的开关作为输入信号,8个LED灯作为输出信号。

(2)当按下不同的开关时(每次只能按下一个开关,不能同时按下多个开关)LED灯会出现不同的闪烁方式。

当开关段开始,LED灯自动熄灭。

2.实验原理(系统连接图的设计)8255A是一种通过可编程并行I/O接口芯片。

广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。

8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。

在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。

8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。

虚拟仪器课程设计跑马灯

虚拟仪器课程设计跑马灯

虚拟仪器课程设计跑马灯(总7页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除河北北方学院虚拟仪器原理与应用课程设计课程设计名称:基于labview的计算器设计专业班级:电子信息工程技术3班学号: 3学生姓名:马洪印成绩: 签名: 2016年12月22日一、引言:随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

彩灯由于其丰富的灯光色彩,低廉的造价以及控制简単等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。

本次课程设计是基于LabVIEW虚拟仪器系统开发与实践等原理与技术而设计的跑马灯。

虚拟仪器的起源可以追溯到20世纪70年代,“虚拟”的含义主要是强调软件在仪器中的作用,体现了虚拟仪器与主要通过硬件实现各种功能的传统仪器的不同。

由于虚拟仪器结构形式的多样性和适用领域的广泛性,目前对于虚拟仪器的概念还没有统一的定义。

美国国家仪器公司(National Instrunents Corpotion ,NI)认为,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。

过去40年的时间里,美国国家仪器公司(NI)通过虚拟仪器技术为测试测量和自动化领域带来了一场革新:虚拟仪器技术把现成即用的商业技术与创新的软、硬件平台相集成,从而为嵌入式设计、工业控制以及测试和测量提供了一种独特的解决方案。

使用虚拟仪器技术,工程师可以利用图形化开发软件方便、高效的创建完全自定义的解决方案,以满足灵活多变的需求趋势。

本次设计的跑马灯是利用虚拟仪器技术而完成的,跑马灯是一种生活中比较常见的装饰,本文主要通过labv i ew来设计了一个相对简单的对跑马灯的控制,实現了其有规律的亮灭,带来一定的观赏效果。

本文主要是实现了跑马灯的单个流水闪烁、双路同步流水闪烁、四路同步流水闪烁、全体同步闪烁,以此循环。

跑马灯的设计doc

跑马灯的设计doc

EDA 课程设计报告书课题名称 跑马灯的设计 姓 名 杨婷婷 学 号 0812202-33 院 系 物理与电信工程系 专 业 电子信息工程 指导教师曾专武 讲师2011年 6月10日※※※※※※※※※ ※※※※ ※※※※※※※※※※※2008级学生EDA 课程设计跑马灯的设计1设计目的系统设计采用自顶向下的设计方法,使用简单的EDA程序实现跑马灯显示效果设计。

并且熟悉可编程逻辑器件的使用,通过制作来了解跑马灯控制系统。

2 设计的主要内容和要求2.1.实现8个红色LED的亮、灭、交错显示等,其显示如下(1)复位时,8个灯全灭;(2)从左到右第一个开始亮,依次亮到最后一个;(3)从右到左第一个开始亮,依次亮到最后一个;(4)从中间亮到两边;(5)从两边亮到中间;2.2.随着彩灯显示图案的变化,发出不同的音响声。

3 整体设计方案这次的跑马灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。

其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。

图3.1跑马灯的输出原理方框图图3.2扬声器输出原理方框图4硬件电路的设计与软件设计4.1集成分频器模块1)设计要求显示不同的跑马灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。

模块说明:Rst:输入信号复位信号用来复位集成分频器的输出使输出为“0”,及没有音乐输出。

Clk:输入信号模块的功能即为分频输入的频率信号。

Clk_4、clk_6、clk_8、clk_10:输出信号即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出。

图4.1集成分频器2)分频器VHDL程序编写及仿真结果LIBRARY ieee;USE ieee.std_logic_1164.all; -- IEEE库使用声明ENTITY fenpinqi IS -- 实体端口声明PORT(clk,rst : IN std_logic; -- 类型的输入端口clk_10,clk_4,clk_6,clk_8: OUT std_logic); -- 输出口END fenpinqi;ARCHITECTURE cd OF fenpinqi IS --结构体功能描述语句beginp1:process(clk,rst) --进程语句variable a:integer range 0 to 20;beginif rst='1' thenclk_4<='0'; ---复位信号控制部分elseif clk'event and clk='1'then --时钟信号clk,上升沿有效边沿if a>=3 then a:=0; --当a大于等于3时,则a等于0 clk_4<='1';elsea:=a+1; --否则a等于a加1clk_4<='0';end if;end if;end if;end process p1;p2:process(clk,rst)variable b:integer range 0 to 20;beginif rst='1' thenclk_6<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif b>=5 thenclk_6<='1';elseb:=b+1;clk_6<='0';end if;end if;end if;end process p2;p3:process(clk,rst)variable c:integer range 0 to 20;beginif rst='1' thenclk_8<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif c>=7 thenc:=0;clk_8<='1';elsec:=c+1;clk_8<='0';end if;end if;end if;end process p3; --关闭进程p4:process(clk,rst) --开启另外一个进程variable d:integer range 0 to 20; --定义d为变量beginclk_10<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif d>=9 thend:=0;clk_10<='1';elsed:=d+1;clk_10<='0';end if;end if;end if; end process p4; end cd;图4.2 集成分频器仿真波形4.2 32进制计数器模块1)32进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。

微机原理与接口技术基于8086和Proteus仿真第二版课程设计

微机原理与接口技术基于8086和Proteus仿真第二版课程设计

微机原理与接口技术基于8086和Proteus仿真第二版课程设计简介《微机原理与接口技术基于8086和Proteus仿真》是一门针对计算机相关专业的课程,主要介绍了8086微处理器的基本原理、汇编语言编程和接口技术等内容。

本门课程的第二版扩展了课程的实践部分,引入了Proteus仿真软件,增加了课程设计的实验项目,使学生能够更深入地学习和掌握课程内容。

本文主要介绍《微机原理与接口技术基于8086和Proteus仿真第二版》课程设计的实验项目及其要求。

实验项目本门课程设计共有三个实验项目,分别为:实验一:LED流水灯实验目的通过设计一个LED流水灯的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。

实验要求1.设计一个LED流水灯电路,要求至少包含8个LED灯。

2.使用8255A接口芯片控制LED流水灯电路,实现LED灯的流动效果。

3.使用8086微处理器编写汇编语言程序,实现对8255A接口芯片的控制,控制LED流水灯电路的流动效果。

4.使用Proteus仿真软件进行电路的仿真和调试,最终验证电路的正确性和稳定性。

实验二:数码管计数器实验目的通过设计一个数码管计数器的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。

实验要求1.设计一个数码管计数器电路,要求使用74LS47译码器和74LS48数码管显示器。

2.使用8255A接口芯片控制数码管计数器电路,实现对计数器的控制和显示。

3.使用8086微处理器编写汇编语言程序,实现对8255A接口芯片的控制,控制数码管计数器电路的计数和显示。

4.使用Proteus仿真软件进行电路的仿真和调试,最终验证电路的正确性和稳定性。

实验三:多功能小车实验目的通过设计一个多功能小车的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。

微机原理走马灯课程设计

微机原理走马灯课程设计

走马灯的设计与实现一实验目的通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原理与方法。

二实验要求1.产生8种彩灯(8位LED)的走马灯花样;2.键控(或拨码开关控制)发光实验。

键控是在键盘上定义8个数字键(0~7),每按1个数字键,使LED的1位发光,按Q或q键,停止发光。

拨码开关控制,是通过改变各位开关,来进行控制, 使LED的1位发光,按Q或q键,停止发光。

三实验内容1.进行走马灯的系统电路硬件设计,画出电路原理图;2.安装或焊接元器件;3.进行走马灯的控制程序设计(采用ASM语言);4.系统联调,提交一个符合上述3种要求的走马灯的作品。

四实验原理8255A是一种通过可编程并行I/O接口芯片。

广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。

8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。

在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。

走马灯驱动模块电路原理如图1所示。

模块包括8个LED彩灯、两个74LS04、和两个个排阻。

用LED可以观测在不同按键输入下,走马灯花样的变化效果。

如图1所示我们利用软件输入信号,通过8255端口扩展芯片和74LS04芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现走马灯花样变化。

图1 走马灯驱动模块电路原理图五试验设备1.PC兼容机2.Windows 98以上3.MFID多功能微机实验平台(含PCI总线驱动板)4.MFPCI98集成开发环境5.面包板或外设功能模块板6.安装或焊接工具六元器件清单元器件清单如表1所示。

序号名称数量1 74LS04 2片2 RESPACK3排阻 8×150Ω2只3 LED 8只4 拨码开关1只5 面包板1个6 T型转接板1个7 导线若干表1 实验元器件清单七实验步骤7.1硬件连线根据图1的实验原电路图,走马灯电路结构电路接线如图2所示。

PROTEUS 跑马灯 单片机课程设计

PROTEUS  跑马灯  单片机课程设计

微型计算机技术课程设计报告专业:通信工程班级:xxxxxxxxx姓名:XXX学号:xxxxxxx指导教师:XX时间:xxx通信与电子信息工程学院8255扩展一、课设目的、内容;1.目的:为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。

通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。

(1).通过本设计,使学生综合运用《微型计算机技术》、《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。

(2).学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。

(3).了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。

2.内容:8155或8255扩展用8155或8255扩展IO实现16个LED的跑马灯,提供多种跑马灯运行模式二、问题分析、方案的提出、设计思路及原因;本次课程设计的题目是8255的扩展,利用AT89C52驱动扩展8255数据输出口来实现16个LED跑马灯的显示。

但是在80C52系列单片机中,有四个8位I/O 端口,但真正能够提供给用户使用的只有P1口,因为P0口和P2口通常需要用来传送外部存储器的地址和数据,P3口也需要使用它的第二功能。

因此,单片机提供给用户的I/O接口线并不多,对于复杂的一些的应用系统都应该进行I/O 口的扩展。

8255具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB 口和PC口.而8255又有多种运行模式,而这些操作模式完全由控制寄存器的控制字决定。

利用8255的控制字模式来定义8255输出口的个数,驱动所需的LED 灯的个数,实现课题目的。

在仿真实验中,两个按键分别控制跑马灯的顺序显示、跳跃显示两种运行方式,顺序显示分别是一个、两个、四个、八个LED灯依次亮。

5_基于PROTEUS的跑马灯设计

5_基于PROTEUS的跑马灯设计

Journal of Information and Electronics of Guangdong Ocean University 广东海洋大学电子信息学刊基于PROTEUS的跑马灯设计陈蕴1+, 林瑞柠21(广东海洋大学信息学院软件技术系,软件1074班湛江524088)2(广东海洋大学信息学院软件技术系,软件1074班湛江524088)Marquee Design On PROTEUSCHEN Yun1+, LIN Ruining21(Department of Software Technology, School of Information GuanDong Ocean University, Zhanjiang 524000, China) 2(Department of Software Technology, School of Information GuanDong Ocean University, Zhanjiang 524000, China)+Correspondingauthor:Phone:+86-137********,E-mail:***************,****************, Abstract: This issue from a mentor, here in the PROTEUS platform for single-chip simulation. Learn to use the installation of PROTEUS, and hands-on design of the Marquee. In this paper, PROTEUS, PROTEUS and KEIL’ Combination and installation, and then use AT89C51 single chip has made several changes in the form of marquees.Key words: PROTEUS; KEIL;Singlechip; Marquee摘要: 在这里是在PROTEUS的平台上对单片机进行仿真。

微机基础原理(根据PROTEUS的跑马灯系统设计及仿真)

微机基础原理(根据PROTEUS的跑马灯系统设计及仿真)

学号:课程设计题目基于PROTEUS的跑马灯系统设计及仿真学院自动化学院专业自动化班级姓名指导教师2012 年 1 月12 日任务书目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献..................................................................... 错误!未定义书签。

引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用内存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

微机原理跑马灯课设报告

微机原理跑马灯课设报告

微机原理课程设计说明书设计题目:跑马灯学院计算机科学与工程学院专业计算机科学与技术专业班级学生学号同组者指导教师2014 年春季学期目录一、实验简介.......................................................... - 2 -1、基本要求 ............................................................................. - 2 -2、设计提示 ............................................................................. - 2 -3、进一步设计要求 ................................................................. - 2 -二、实验原理.......................................................... - 2 -1、实验原理描述 ................................................................... - 2 -2、8254芯片............................................................................. - 3 -2.1、8254芯片组成部分 .................................................. - 3 -2.2、8254芯片工作方式 .................................................. - 3 -3、8255芯片............................................................................. - 4 -3.1、8255芯片的组成部分 .............................................. - 4 -3.2、8255芯片工作方式 .................................................. - 6 -4、实验原理图.................................................................................... - 6 -三、实验流程图与源程序...................................... - 6 -1、流程图 ............................................................................... - 6 -1.1、主程序流程图 ...................................................... - 7 -1.2 Appmain 子程序流程图............................................. - 7 -1.3 灯跳转阶段流程图 ..................................................... - 9 -2、源程序(见附录) ................................................................... - 9 -四、实验结果与测试............................................ - 15 -五、实验提高与扩展............................................ - 16 -六、个人心得与体会............................................ - 16 - 附录 .......................................................................... - 18 -一、实验简介:1、基本要求:采用8254精确定时,LED的点亮规律为LED7--->LED0,每一个LED 的点亮时间间隔由逻辑电平开关K1、K2、K3选择,K1的时间间隔为0.5s,K2的时间间隔为1.0s,K3的时间间隔为1.5s。

跑马灯

跑马灯
贵州大学实验报告
学院: 电气工程学院 姓名 实验时间 实验项目名称 实 2,熟悉 protues 软件,搭建 51 单片机最小系统,并联合 keil 软件编写汇编程 验 序控制单片机 I/O 口。 目 的 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡 器周期。定时常数的设置可按以下方法计算: 机器周期=12÷ 晶振频率(1) (65536-定时常数)*机器周期=定时时间 (2) 由(1) 、 (2)式可计算出所需定时常数。由于各实验板的晶振频率不同,实验时 需根据所使用实验板计算定时常数。 子程序的调用遵循如下流程图的规则: 实 验 原 理 杨泽森 专业: 测控技术与仪器 学号 指导教师 跑马灯的设计 1108040035 陈湘萍 班级: 测控 111 实验组 成绩
指 导 教 师 意 见 签名: 年 月 日
编写并调试程序: ORG LJMP ORG LJMP ORG MAIN: 0000H MAIN 000BH TOISR 0030H MOV P0,#00H
MOV R0,#0 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 SETB ET0 实 SETB EA 验 SJMP $ 内 TOISR: CLR 容 MOV TH0 , #3CH MOV TL0, #0B0H SETB TR0 TR0
最终仿真电路如图所示:
实 验 数 据
在这次设计中我们收获了很多,首先最直接的收获就是我们巩固了这门课程所学过 实 验 总 结 的知识,总的来说,通过这次设计不仅锻炼了我们的动手和动脑能力。在我们的共同努 力和指导老师的指引下我们圆满的完成了设计,实现了设计目的。通过本次的实验的学 习,让我们更加熟悉了编程软件 Keil μVision4 的编程环境及 protues 软件的基本运用, 在实验中,通过 protues 软件的仿真跑马灯的实验,让我们更加熟悉程序的执行过程以 及在生活的实际运用,为今后我们对此门课程打下了基础。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献 (20)引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用内存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

具体要求为:(1)、输入设备三个启动按钮、一个停止按钮,输出设备为八个跑马灯;(2)、三个启动按钮对应三种跑马灯显示效果,按下任意一个启动按钮,跑马灯显示对应的效果,按下停止按钮则跑马灯全部熄灭。

由上分析可知,我们的硬件的电路需要另行搭建,电路中需包含四个按钮和八个跑马灯以及相关芯片,既有输入设备又有输出设备,经过分析可以使用芯片8255A来实现输入与输出,再加上锁存地址芯片74LS273、译码芯片74LS154以及相关门电路即可构成本设计的硬件电路基础。

进一步分析最终决定用8255A 的A口作为输出去控制跑马灯,B口作为按钮信号输入,CPU通过接收输入信号从而发出对应命令去控制8255A芯片A口输出,从而A口输出相应电平控制跑马灯有规律的亮灭。

连接好硬件电路后的主要任务就是编写相应程序,通过程序去控制和调度硬件电路的输入与输出。

1.2系统连接图设计8255A是一种通过可编程并行I/O接口芯片。

广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。

8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。

在本次课程设计中,我们运用8255A为CPU与外设之间提供输入输出输出通道来实现对跑马灯花样变换的控制。

8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。

跑马灯硬件电路如图1所示。

电路包括8个LED彩灯、三片74LS273、一片74LS154、一片8086CPU、一片8255A以及若干导线和电阻。

用LED可以观测在不同按键输入下,跑马灯花样的变化效果。

如图1所示我们利用启动按钮作为输入信号,通过8255A端口扩展芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现跑马灯不同的花样变化。

图1跑马灯硬件电路图1.2.1锁存控制电路锁存控制电路电路如图2所示,在微控制器单元(MCU)中,寄存器是十分重要的资源。

寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据,其锁存功能利用74LS273来实现,74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。

D0~D7:输入,Q0~Q7:输出;第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变。

CPU向外部发出地址锁存允许信号,从而使74LS273锁存地址信号,在通过译码芯片74LS154控制接口芯片8255A,在此系统中充当一个桥梁的作用。

这部分电路将相应信号传送给8255A的A0、A1和CS片选,进而CPU开始控制8255A从而驱动发光二极管显示不同的样式。

图2 锁存控制电路1.2.2可编程并行通信接口芯片8255A芯片8255A有三种工作方式,他们分别是方式0、方式1、方式2,电路如图3所示。

方式0为简单I/O,查询方式,端口A、端口B、端口C均可使用;方式1为选通I/O,中断方式,端口A、端口B可以使用,选通的输入/输出方式;方式2为双向I/O,中断方式,只有端口A可以使用,双向的传输方式。

方式0也叫基本输入/输出方式。

一种方式,不需要应答联络信号,端口A、端口B和端口C的高4位及低4位都可以作为输入或输出端口。

方式0的应用场合有无条件传送和查询传送2种;故根据我们系统设计的要求,综上可知,选择8255A为工作方式0,A口作为输出、B口作为输入。

8255A的3种基本工作方式由方式控制字来决定,D7=1(特征位)表明是设定方式选择控制字;D7=0,则表示是端口C按位置位/复位控制字。

端口C分成高4位(PC7~PC4)和低4位(PC3~PC0),可分别设置成输入端口或输出端口;端口C的高4位与端口A配合组成A组,端口C的低4位与端口B配合组成B 组。

综上可得此系统需要满足A端口为输出,输出数据给到8个LED彩灯;端口B为输入,需要检测按键的输入情况。

图3 芯片8255A接口电路1.3算法说明本程序涉及芯片8255A的初始化,因此首先需要确定端口地址,CPU向8255A 送出方式控制字,进而8255A的A口作为输出、B口作为输入;定义控制LED 灯的相应数据段,由于需要LED亮后持续一段时间这就需要一个相应的延时程序片段,需要确定B口那个按钮开关按下,这就需要一个扫描B口开关按下的子程序,从而CPU发出相应控制等操作给A口送出相应电平,LED显示相应的亮灭。

因此,主要要点就是找对端口地址,这个是程序能够运行的必需品,通过分析硬件线路可以正确找到A口、B口以及控制口的地址。

2程序流程图设计及其说明主程序流程图如图4所示:图4 主程序流程图检测按键延时控制LED子程序流程图如图5所示:图5 子程序流程图3关键程序段落说明3.1数据段定义dseg segmentnum dw 0data1 db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fhdata2 db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh data3 db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh dseg ends三种灯光变幻组合为:第一种为L1→L2→L3→L4→L5→L6→L7→L8;第二种为L8→L7→L6→L5→L4→L3→L2→L1;第三种为L1L8→L2L7→L3L6→L4L5→L3L6→L2L7→L1L8。

dw为灯光循环的控制次数。

3.2程序初始化cseg segment para public 'code'assume ss:sseg,cs:cseg,ds:dsegstart:mov ax,dsegmov ds,ax初始化程序。

3.3芯片初始化mov dx,0206h ;取8255A的控制端口的地址mov al,82h ;初始化8255A的A口为输出模式,B口为输入模式out dx,al82h即为10000010b,也就是说将A口定义在方式0下并且作为输出,B口定义在方式0下并且作为输入,因此这个方式控制字不是唯一的,其通用形式为1000X01X,C口没有定义故可以为任意二进制数。

mov dx,0200h ;取8255的端口A的地址mov al,0FFh ;使8255的PA0-PA7全为1out dx,al上边这个程序段是往外送数据置LED亮灭的。

mov dx,0202h ;取8255的端口B的地址in al,dx ;检测B口输入信号这个是将B口开关闭合信息读回来的,从而发出相应控制命令。

3.4初始LED亮灭状态mov dx,0200h ;取8255的端口A的地址mov al,0FFh ;使8255的PA0-PA7全为1out dx,al ;使所有的灯LED全灭电路上电工作后首先要使所有的LED灯全灭,防止对后面的显示造成影响。

3.5检测按键开关子程序ledflash proc ;检测开关闭合,以便确定哪种闪烁方式mov dx,0202h ;取8255A的端口B的地址in al,dx ;检测B口输入信号choice1:cmp al,0fehjne choice2mov si,offset data1 ;置第一种灯光变幻组合jmp herechoice2:cmp al,0fdhjne choice3mov si,offset data2 ;置第二种灯光变幻组合jmp herechoice3:cmp al,0fbhjne choice4mov si,offset data3 ;置第三种灯光变幻组合jmp herechoice4: ;每盏灯亮完检测开关,如果停止开关没有按下跳到choice5,如果停止开关按下灯全灭cmp al,0f7hjne choice5jmp exutchoice5:cmp num,0h;检测num是否为0,若为0扫描开关,若不为0继续执行jne herejmp ledflashhere:mov bx,nummov al,[si+bx]mov dx,0200h ;取8255的端口A的地址out dx,al ;输出加电数据到端口Ainc num ;改变数字变量的值cmp num,09hje exitmov cx,005fhdl4: mov bx,00ffhdl3: dec bxjnz dl3dec cxjnz dl4jmp ledflashexit:mov num,0retledflash endp检测到开关闭合置相应灯光变换。

相关文档
最新文档