(完整word版)微机原理————走马灯实验设计
微机原理————走马灯实验设计
微型计算机技术课程设计指导教师:赵立辉李鹏学生班级:计科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之间的双向传输和隔离。
制作跑马灯的实训报告
一、实验背景随着科技的不断发展,电子技术在我们的日常生活中扮演着越来越重要的角色。
作为电子信息工程专业的学生,掌握电子电路的设计与制作技能是必不可少的。
本实训旨在通过制作跑马灯,让学生了解基本电子元件的原理和电路设计方法,提高学生的动手能力和创新思维。
二、实验目的1. 熟悉电子元件的使用方法和电路原理。
2. 掌握电路图的绘制和实际电路的制作。
3. 理解跑马灯的工作原理,并能够进行简单的故障排除。
4. 培养学生的团队协作能力和实践创新能力。
三、实验内容1. 基本跑马灯电路制作(1)材料准备:8个发光二极管(LED)、1个按键(K1)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:根据图1电路图,将LED按照顺序连接到面包板上,确保每个LED的正负极正确连接。
将按键K1连接到电路中,并设置合适的电阻以限制电流。
(3)程序编写:使用C语言或汇编语言编写程序,实现LED的顺序点亮和熄灭,模拟跑马灯效果。
2. 键控跑马灯电路制作(1)材料准备:8个发光二极管(LED)、2个按键(K1、K2)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在基本跑马灯电路的基础上,增加按键K2。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序的功能。
3. 多功能跑马灯电路制作(1)材料准备:8个发光二极管(LED)、3个按键(K1、K2、K3)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在键控跑马灯电路的基础上,增加按键K3。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮;按下K3时,LED全部熄灭。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序和熄灭的功能。
四、实验结果与分析1. 成功制作出基本跑马灯电路,实现了LED的顺序点亮和熄灭。
2. 成功制作出键控跑马灯电路,实现了按键控制LED点亮顺序的功能。
微机原理跑马灯的设计原理
微机原理跑马灯的设计原理
跑马灯是一种实现循环显示效果的电路,常用于LED灯条、数字管、点阵等显示设备中。
它的设计原理与微机系统有关,具体包括以下几个方面:
1.微机系统:跑马灯的实现需要使用微机系统,包括CPU、存储器、输入输出接口等。
CPU用于控制程序的执行,存储器用于存储程序和数据,输入输出接口用于控制LED灯条的显示。
2.循环显示:跑马灯的核心是循环显示。
通过不断循环变化LED灯条的状态,形成灯条上移或下移的效果。
具体可以通过移位操作实现,将灯条的状态左移或右移,从而达到循环显示的效果。
3.定时器:为了保证跑马灯循环显示的频率和速度,需要使用定时器。
定时器可以产生一定的脉冲信号,控制每个LED灯的亮灭时间和显示周期。
定时器还可以配合中断技术实现自动循环和停止功能。
4.程序设计:跑马灯的程序设计需要采用适当的算法和流程控制语句。
一般采用循环结构控制灯条的状态变化,同时利用函数和数组等数据结构优化程序的效率和可维护性。
总之,跑马灯的设计涉及多个方面的技术,并需要综合考虑程序效率、硬件资源、用户体验等多个因素。
只有充分理解微机系统的原理和设计思路,才能更好地实
现跑马灯的功能和效果。
实验三、跑马灯的程序设计
实验三、跑马灯程序设计实验(2学时)一、实验目的1、熟悉89C51单片机系列指令系统;2、掌握软件定时程序的编写方法和子程序的调用方法;3、掌握使用汇编语言来实现跑马灯设计。
二、实验内容参照如下原理图设计一个跑马灯控制程序,让8个led按照自己的设想发光,显示的样式尽可能的丰富,灯的变化延时通过调用软件延时子程序来实现,要求延时时间为0.5S。
LED灯样式参考:1、让8个灯闪烁完后,1个灯向左(RL)或向右(RR)移动(流水灯)。
2、8个灯通过取表格“T AB:DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH”值进行变化。
三、实验设备微机1台,单片机实验板1块四、实验报告要求1、写出实验目的、实验内容、实验设备、程序流程图和源程序清单(加注释);2、写出运行结果,并分析其是否正确;3、说明实验中遇到的问题及解决的方法;4、用实验报告纸手写实验报告。
ORG 0000HSJMP MAINORG 0030H;LCALL MAINMAIN:MOV P1,#00HMOV DPTR,#LIGHTCHU:MOV R3,#06HMOV A,#00HTURN:MOV 20H,AMOVC A,@A+DPTRMOV P1,AMOV A,20HINC ALCALL DELAYDJNZ R3,TURNSJMP CHUDELAY:MOV R0,#05HD1:MOV R1,#250D2:MOV R2,#200D3:DJNZ R2,D3D4:DJNZ R1,D2DJNZ R0,D1RETLIGHT:DB 81H,42H,24H,18H,24H,42H SJMP $END本实验,使我受益良多。
在实验未开始之前,老师给了我们讲解了什么是跑马灯,让我们知道这跑马灯是怎么一回事;后来老师还讲了一两个例子,这让我们在设计程序的时候,有了头绪。
本实验,我的程序是P1两边同时来灯,当两灯相碰撞时,就反弹;反弹到顶/底时,再向内聚;然后再反弹……这是实验最终的程序,但在程序未出炉之前,遇到了一些问题。
跑马灯-微机课设报告
微机原理课程设计——跑马灯专业计算机科学与技术班级学生同组指导教师目录跑马灯实验 (2)一、实验目的 (2)二、实验要求 (2)1、基本要求 (2)2、提高要求 (2)三、设计思路 (2)四、实验原理 (3)1、8254定时器 (3)(1)计数通道 (3)(3)工作方式(6种) (3)(4)内部结构 (4)(5)引脚 (4)(6)方式控制字 (4)2、并行接口电路8255 (5)(1)3个数据端口 (5)(2)工作方式 (5)(3)方式控制字 (5)(4)内部结构 (6)五、实验原理图 (6)六、实验流程图 (7)七、实验代码 (9)八、实验结果 (14)1、开关都未闭合 (14)2、开关K0闭合 (14)3、开关K1闭合 (14)4、开关K2闭合 (14)九、实验总结 (14)跑马灯实验一、实验目的(1)通过本次实验更加清楚的掌握芯片8255和8254的使用方法和工作原理;(2)编写一个简单的程序来实现最简单的跑马灯;(3)在此基础上来实现本次实验的要求和任务。
二、实验要求1、基本要求采用8254精确定时,LED的点亮规律为LED7—>LED0,每个LED的点亮时间间隔由逻辑电平开关K0、K1和K2选择。
K0的时间间隔为0.5s,K1的时间间隔为1.0s,K2的时间间隔为1.5s,当主机键盘按下任意键时停止演示。
2、提高要求LED灯的点亮规律变成LED7 —>LED0—> LED7。
三、设计思路使用8255的A端口连接开关,以此判断选择哪个定时。
用B口和LED 灯连接,来实现跑马灯开始亮。
使用C口来判断此时CLK是否为下降沿,以此判断此时是不是达到一个周期。
四、实验原理1、8254定时器8254有3个相互独立的计数器通道,计数器0、计数器1和计数器2. (1)计数通道8254每个计数器通道都有3个信号与外界接口:CLK时钟输入信号、GATE 门控输入信号和OUT计数器输出信号;(2)内部数据总线8254内部通过数据总线缓冲期引出8位数据引脚D7~D0,地址引脚A0和A1,控制引脚 RD、WR、CS;(3)工作方式(6种)●方式0:计数结束中断●方式1:可变成单稳脉冲●方式2:频率发生器●方式3:发波发生器●方式4:软件触发选通信号●方式5:硬件触发选通信号(4)内部结构(5)引脚(6)方式控制字D7 D6 D5 D4 D3 D2 D1 D02、并行接口电路8255(1)3个数据端口8255的3个数据端口分成两组进行控制:A组控制端口A和端口C的上半部;B组控制端口B和端口C的下半部。
实验报告 跑马灯
实验报告跑马灯实验报告:跑马灯引言:跑马灯作为一种常见的室内装饰和广告展示工具,广泛应用于商场、剧院、车站等公共场所。
本实验旨在探究跑马灯的工作原理和设计过程,并通过实际搭建跑马灯模型进行验证。
一、跑马灯的工作原理跑马灯是通过一组灯泡或LED灯组成的,它们按照一定的顺序依次亮灭,从而形成连续的动态效果。
跑马灯的工作原理主要包括电路控制和程序设计两个方面。
1. 电路控制:跑马灯的电路控制是通过继电器或集成电路实现的。
继电器是一种电磁开关,通过控制电磁铁的通断来控制灯泡的亮灭。
而集成电路则是通过逻辑门和计时器等元件实现灯泡的顺序控制。
2. 程序设计:跑马灯的程序设计是通过编写一段简单的代码来实现的。
在代码中,通过控制灯泡或LED灯的亮灭时间和顺序来实现跑马灯效果。
常见的程序设计语言如C、Python等都可以用来编写跑马灯的代码。
二、跑马灯的设计过程跑马灯的设计过程包括灯泡或LED灯的选型、电路设计、程序编写和外壳制作等步骤。
1. 灯泡或LED灯的选型:在跑马灯的设计中,选择合适的灯泡或LED灯是非常重要的。
灯泡的亮度、寿命和能耗等指标需要进行综合考虑。
而LED灯则具有节能、寿命长和颜色丰富等优点,因此在现代跑马灯设计中更加常见。
2. 电路设计:电路设计是跑马灯设计中的关键环节。
在电路设计中,需要考虑灯泡或LED灯的亮灭顺序、时间间隔和电源供应等因素。
通过合理的电路设计,可以实现跑马灯的稳定运行和灯泡的长寿命。
3. 程序编写:程序编写是跑马灯设计中的另一个重要环节。
通过编写一段简单的代码,可以控制灯泡或LED灯的亮灭顺序和时间间隔。
程序编写需要考虑灯泡或LED灯的数量和控制方式等因素,以实现预期的跑马灯效果。
4. 外壳制作:外壳制作是跑马灯设计中的最后一步。
通过设计和制作合适的外壳,可以保护电路和灯泡或LED灯,同时也可以增加跑马灯的美观性。
外壳的材料可以选择塑料、金属或木材等,根据实际需要进行选择。
微机原理(基于PROTEUS的跑马灯系统设计及仿真)
目录引言 (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以及相关门电路即可构成本设计的硬件电路基础。
科学课科技小制作教案:走马灯
授课教师:XXX
班级:XX
人数:XX
日期:XXXX
时间:XXXX
教学题目
走马灯
教学目标
知识目标:了解冷热空气,风的形成,走马灯原理
技能目标:学会根据所学知识制作走马灯
情感目标:通过观察及动手实验培养孩子科学观念和创新精神
教学重点
走马灯运动原理
教学难点
走马灯运动原理
所需材料
走马灯套件
所需工具
根据需要准备
7.七安装,把做好的灯罩扣在支架的铁杆上,一个简易的走马灯就做好了。
四、重点知识回顾
1.走马灯
2.认识冷热空气
3.走马灯的原理
4.如何让走马灯转的最快
必要时展示实物
板书设计
生:用风等。
师:就是这种灯,不用电就能转起来。它的名字叫做走马灯。
知识点介绍
1.什么是走马灯?
师:中国许多古籍都有关于走马灯的记述。正月十五元宵节,民间风俗要挂花灯,走马灯为其中一种,它的外形多为宫灯状 ,内部用剪纸粘成一轮 ,把绘好的图案粘贴在上面。点燃灯以后,纸轮开始转动 ,灯屏上即出现人马追逐 、物换景移的影像。宋代时已有走马灯 ,当时称“马骑灯”。因多在灯罩的各个面上绘制古代武将骑马的图画,而灯转动时看起来好像几个人你追我赶一样,故名走马灯。那究竟是什么让走马灯转起来的呢?
4.如何让走马灯转得最快
师:走马灯做好了,那怎么才能让走马灯走的更快呢?
生:猜测回答。
师:我们根据下面的表格,一起来实验一下吧!
实验
项目
记录
项目
蜡烛的位置
叶轮上叶片张开的角度
靠近铁签
远离铁签
小于30度
大约45度
大于60度
单片机 跑马灯实验精选全文
可编辑修改精选全文完整版实验一跑马灯实验一、实验内容1、基本的流水灯根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。
每点亮一个LED,采用软件延时一段时间。
2、简单键控的流水灯不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。
松手后,又按正序点亮流水灯。
3、键控的流水灯上电,不点亮LED,按一下K1键,按正序点亮流水灯。
按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。
二、实验方案1、总体方案设计考虑到K4键未被使用,所以将实验内容中的三项合并到一个主函数中:K4键代替实验内容第二项中的K1键;单片机一开机即执行实验内容第一项;K1、K2、K3键实现实验内容第三项。
所用硬件:AT89C52、BUTTON、LED-BLUE、电源输入:P2.0-K1;P2.1-K2;P2.2-K3;P2.3-K4。
低电平有效输出:P0.0~P0.7-D0~D7。
LED组连线采用共阳极,低电平有效软件设计:软件延时采用延时函数delay(t),可调整延迟时间:void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}由于涉及到按键变化所以要设置一个变量oldK保留按键键值,要在延时程序中检测是否按键,当按键后立即设置oldK的值。
按键判断采用在while循环中利用条件语句判断P2的值然后执行该键对应的代码段,达到相应的响应。
为了让K4键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点亮,利用全局变量n来记录灯号,利用算法即可实现。
主要算法:1、全局变量的定义:uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;2、顺序、逆序点亮流水灯:void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}3、实验内容第二项流水灯灯亮顺序变换:void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){out=D[n];n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}4、对应实验内容第一项,开机顺序点亮流水灯:while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}2、实验原理图图2-1 实验原理图3、程序流程图图2-2 程序流程图三、源程序#include"reg51.h"#define uchar unsigned char#define uint unsigned int#define out P0uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;//记录当前亮的灯号void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}void delay10ms(){uint i;for(i=0;i<10000;i++);}void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}int delay4(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK){ //按键变化退出循环return 1;}}return 0;}void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}void main(){oldK=K[0];while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}while(1){out=AllOff;if((P2&0x0f)!=0x0f){//检测有键按下delay10ms();//延时10ms再去检测//P2.0_K1键按下正序点亮流水灯if(P2==K[1]){oldK=K[1];while(1){forward();if(P2!=K[1]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.1_K2键按下逆序点亮流水灯if(P2==K[2]){while(1){backward();if(P2!=K[2]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.2_K3键按下关闭全部LEDif(P2==K[3]){oldK=K[3];out=AllOff;}//P2.3_K4键按下长按逆序点亮流水灯,不按正序点亮流水灯,直到其他键按下停止if(P2==K[4]){hold();}}}}四、实验结果1、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。
11.2 跑马灯控制程序设计
二、跑马灯控制程序设计 结合顺序控制设计法来设计跑马灯控制程序。
首先来看一下该任务的控制要求: 要求通过启动按钮SB1使得8盏灯按照L0、L1~L7的 顺序亮,每隔1S亮一盏灯;再按L7、L6~L1、L0的 顺序灭,每隔1S灭一盏灯;如此循环,直至按下停 止按钮SB2,全部灯熄灭,停止工作。
下面我们按步来看一下程序的编写: (2)S1步:S1步是起始步,表示程序开始运行,满足 转换条件SB1可以进入S2步。SB1为启动按钮I0.0,按 下后程序开始运行,S2步激活。我们使用M0.0来指示 启停状态,M0.0为1表示启动,M0.0为0表示停止。这 段程序比较简单,使用置位线圈指令,当I0.0按下, 使M0.0置位为1。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
(4)S3步和S4步
S3步负责控制左移,S4步负责控制右移,这两步 是密切相关的。由于操作对象是MW20,是一个字的存 储空间,所以我们要选择字的移位指令。如图蓝色圈 中所示,使用移位脉冲T1,T1每1S产生一个下降沿, 检测这个下降沿使移位指令产生移位。如图红色圈中 所示,在写入初值后,一次移一位,先左移,就会看 到MB20的各个位,从M20.0至M20.7依次变1;等M20.7 变1了,再右移,一次移一位,就会看到MB20的各个 位,从M20.7至M20.0依次变0。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
第二项工作是为移位对象写入初值,有的同学要 问了,移位对象不是输出Q0.0至Q0.7吗?应该这么说 ,控制Q0.0至Q0.7是我们的目的,怎么来达到这个目 的呢?为了避免直接控制输出所带来的误操作,我们 要使用一个中间存储空间MW20来作为移位对象,将移 位后的结果通过MB20来传送到QB0。我们来看看这个 MW20的空间,MW20包含MB20和MB21两个字节,给这个 空间填入初值W#16#FF,这时MB20的各个位为0,MB21 的各个位为1。
跑马灯电路设计
跑马灯电路设计单片机嵌入式系统中的跑马灯就像C语言的―Hello World!‖程序一样,虽然简单,却是一个非常经典的例子。
对初学者来说,通过跑马灯系统设计的学习与编程,能很快熟悉单片机的操作方式,了解单片机系统的开发流程,并通过第一个实例增强自己学习单片机系统设计的信心。
下面详细讲解跑马灯电路的设计。
6.1.1 跑马灯跑马灯,顾名思义,就是―会像马儿一样跑动‖的小灯,故取名―跑马灯‖。
跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由8个LED发光二极管组成,可以方便地显示一个8位数据(0~255)。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
如图6-1所示为开发板上的跑马灯,由8个贴片LED发光二极管组成,下面详细介绍LED 发光二极管的知识与电路设计方法。
6.1.2 发光二极管基础知识发光二极管的英文名为Light Emitting Diode,简称LED,发明于20世纪60年代,几十年来,发光二极管在各种电路及嵌入式系统中得到了广泛的应用,跑马灯使用的―小灯‖就是8个并排的LED。
LED发光二极管将电能转变成光能,可由Ⅲ-V族半导体材料制成。
当工作在正向偏置状态时,LED发光二极管与普通的二极管极其相似,其同样具备单向导电特性,不同之处仅在于当加上正向偏置时,LED发光二极管将向外发光,此时能量通过PN结的载流子过程从电能转换为光能。
LED发光二极管具有亮度高、耗电小、体积小、重量轻、寿命长、可靠性高、价格便宜等优点,已经被广泛地应用到不同的产品中,作为电源指示灯、系统状态灯、信号灯等用途。
在通常工作状态下,LED发光二极管的使用寿命保守估计约为10万小时,部分甚至可以达到100万小时。
走马灯实验计划实验工具实验收集实验步骤
走马灯实验计划实验工具实验收集实验步骤下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!走马灯实验:计划、工具、收集与步骤详解一、实验计划走马灯实验,又称为旋转彩灯实验,是一个经典的物理实验,旨在展示电磁感应现象。
微机原理走马灯课程设计
走马灯的设计与实现一实验目的通过走马灯的设计与制作,深入了解与掌握利用可编程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所示。
跑马灯控制器 微机原理课程设计 丁同飞 0904013004
合肥学院计算机科学与技术系微机原理与接口技术课程设计报告2011~2012学年第1学期课程微机原理与接口技术课程设计名称跑马灯控制器学生姓名丁同飞学号**********专业班级计算机科学与技术专业(09计本3)指导教师张向东教授2012 年 1 月一、题意分析及解决方案1、题意需求分析本次实验需要用STAR ES598PCI单板开发机和接口设计跑马灯控制器,应用软件控制并行接口电路,使连接在该接口上的8个发光二极管和8个控制开关,按控制开关定义的功能形式闪烁。
跑马灯的含义:通过开关来控制LED指示灯的不同闪烁形式,而不同的闪烁形式通过给开关设定不同的编码来确定不同的闪烁形式,使LED指示灯呈现一种流动闪烁的状态。
下面列出跑马灯可能的闪烁形式:1、依次左移或右移闪烁2、隔一左移或隔一右移闪烁3、隔二左移或隔二右移闪烁4、左右相向移动闪烁5、左右从中间向两边依次闪烁6、从左至右先依次点亮再反向熄灭为了实现上述功能,需要解决一些问题:1、需要使用什么芯片来实现跑马灯控制器的运行?2、开关的扫描问题?如何设置开关的编码?3、选择了芯片后,如何设置芯片控制口的端口地址以及各端口的输入输出形式?4、开关的不锁存是否有影响?5、如何使显示灯变化过程中给人视觉上产生依次闪烁的效果?2、解决问题及思路(1)硬件部分本实验需要在STAR ES598PCI单板开发机中执行,所用到用户程序存储器共32KB,集成环境为Winxp Xingyan,接口选择8255A芯片,控制用逻辑开关。
接口方面:8255芯片是可编程的并行接口芯片,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。
8255A芯片内部有三个8位端口,分别为A口、B口和C口。
这三个端口可与外部设备相连接,可用来与外设进行数据信息、控制信息和状态信息的交换。
本实验为了实现跑马灯的并行输入输出,选择奖8255A中的A口作为输出口,B口作为输入口,A口接8个LED指示灯,通过指示灯的移动闪烁来实现跑马。
微机原理实验——走马灯程序
;*********************************************************************; Aexp8.asm 走马灯(灯光变幻)程序 *; 内容:用DIP的8位开关控制走马灯的花样,用SW3控制走马灯的起/停 * ; 运行步骤:1.按下一次开关SW3,开始灯光变幻,再按下一次则停止; 可重复进行 *; 2.按下SW3后,拨动不同的数码开关DIP,就会出现不同的灯光变幻 *; 3.按下"q"或者"Q",退出 *;*********************************************************************sseg segment para stack 'stack'dw200dup (?)sseg endsdseg segment para public 'data'message db 'press SW3 to start and then press SW3 to stop,and so on!',0ah,0dh;系统提示信息db 'turn on DIP one by one and display various soud-op patterns!'db0ah,0dhdb 'if you want to quit, please hit ''q'' or ''Q''!',0ah,0dh,'$'flag db0;初始化状态标志变量为0t dw0;初始化延时变量为0 num dw0;初始化数字变量为0data1 db80h,40h,20h,10h,08h,04h,02h,01h;八种不同的灯光变幻组合data2 db01h,02h,04h,08h,10h,20h,40h,80hdata3 db80h,20h,08h,02h,40h,10h,04h,01hdata4 db01h,04h,10h,40h,02h,08h,20h,80hdata5 db0c0h,30h,0ch,03h,0c0h,30h,0ch,03hdata6 db03h,0ch,30h,0c0h,03h,0ch,30h,0c0hdata7 db81h,42h,24h,18h,81h,42h,24h,18hdata8 db18h,24h,42h,81h,18h,24h,42h,81hdseg endscseg segment para public 'code'assume ss:sseg,cs:cseg,ds:dsegm proc farstart: mov ax,dspush axmov ax,00hpush ax;保留程序数据段地址mov ah,09h;显示系统提示信息mov dx,seg messagemov ds,dxmov dx,offset messageint21h;初始化8255mov dx,303h;取8255的控制端口的地址mov al,91h;初始化8255的B口和C口高四位为输出模式out dx,al;A口和C口低四位为输入模式;初始化灯LED全灭mov dx,301h;取8255的端口B的地址mov al,00h;使8255的PB0-PB7全为0out dx,al;使所有的灯LED全灭wait: ;检测"q"或者"Q"键mov ah,0bhint21h;调用DOS 21H 功能0BH 进行键盘判断inc aljnz readpc ;检测是否有键按下mov ah,08hint21h;调用DOS 21H 功能08H 进行键盘输入判断cmp al,'q'jz quit ;检测到"q",退出cmp al,'Q'jz quit ;检测到"Q",退出readpc: ;判断开关SW3的状态mov dx,302h;取8255的端口C的地址in al,dx;读端口C的值;当按下开关SW3时,PC2口为低电平test al,04h;检测PC2口状态jnz caselp: in al,dxtest al,04hjz lp ;循环检测直至放开xor flag,01h;将状态值取反case: cmp flag,01h;进行状态值比较jne stopbegin: call ledflash ;调用灯光变幻过程call delay2jmp wait;灯LED全灭stop: mov dx,301h;取8255的端口B的地址mov al,00h;使8255的PB0-PB7全为0out dx,al;使所有的灯LED全灭jmp waitquit: ;灯LED全灭mov dx,301h;取8255的端口B的地址mov al,00h;使8255的PB0-PB7全为0out dx,al;使所有的灯LED全灭;返回DOSmov ah,4ch;DOS功能调用int21h;返回DOSm endpdelay2 procpush cxpush bxmov cx,02ffhdl4: mov bx,0ffffhdl3: dec bxjnz dl3dec cxjnz dl4pop bxpop cxretdelay2 endp;检测数码开关DIP的状态,以便产生八种不同的灯光变幻ledflash procmov dx,300h;取8255的端口A的地址in al,dx;读端口A的值cmp al,0feh;检测PA0口是否为0mov si,offset data1 ;置第一种灯光变幻组合jmp herechoice1: cmp al,0fdh;检测PA1口是否为0jne choice2mov si,offset data2 ;置第二种灯光变幻组合jmp herechoice2: cmp al,0fbh;检测PA2口是否为0jne choice3mov si,offset data3 ;置第三种灯光变幻组合jmp herechoice3: cmp al,0f7h;检测PA3口是否为0jne choice4mov si,offset data4 ;置第四种灯光变幻组合jmp herechoice4: cmp al,0efh;检测PA4口是否为0jne choice5mov si,offset data5 ;置第五种灯光变幻组合jmp herechoice5: cmp al,0dfh;检测PA5口是否为0jne choice6mov si,offset data6 ;置第六种灯光变幻组合jmp herechoice6: cmp al,0bfh;检测PA6口是否为0jne choice7mov si,offset data7 ;置第七种灯光变幻组合jmp herechoice7: cmp al,7fh;检测PA7口是否为0jne choice0mov si,offset data8 ;置第八种灯光变幻组合jmp here;choice0: call m0 ;调用声光变幻过程choice0: jmp wait;送加电数据here: add si,num mov al,[si] ;取当前加电数据not almov dx,301h;取8255的端口B的地址out dx,al;输出加电数据到端口Binc num ;改变数字变量的值jne nextmov num,00h next: retledflash endpcseg endsend start。
跑马灯实验
数学计算机科学学院实验报告专业名称:物联网工程实验室:学苑南楼1幢403室实验课程:微机原理和接口技术实验名称:跑马灯姓名:高鹏飞学号:120706006实验日期:2014年11月1日星期一一、实验目的1.掌握跑马灯实验原理2.熟悉debug环境下编写程序3.在独立运行的单板机配置方式下,输入目标代码,运行,观察实验现象,分析其结果的正确性。
二、实验仪器1、AEDK8688ET教学实验机2.pc机三、实验原理CPU将数据通过8255并口送入LED,控制显示输出并口8255内部结构框图工作方式控制字:方式0-基本输入输出方式8255驱动LED显示输出jmp abc(3)修改程序,每输出一个数据延迟一段时间mov cx,ffffhdely: loop dely观察实验现象(4)在debug环境下,反汇编找出其目标代码(5)在独立运行的单板机配置方式下,输入目标代码,运行,观察实验现象,分析其结果的正确性。
(6)全速运行:GO IP.在实验箱的具体操作步骤(1)在实验箱上先执行EB命令显示/修改内存单元的内容。
(2)将段地址设置为8000,偏移地址设置为300(在“-”状态下,按“EB”出现“.”提示符,输入段地址8000“:”偏移地址300“,”出现该单元内容,按“,”出现下一单元内容,继续按“,”出现下一单元内容,此时输入新的内容,此单元内容可以修改(内容即反汇编中输入内容),按“ .”可以退出。
)在跑马灯实验当中即(B080BA1B02EEBOFEBA1802EED0C0EBFB000000000000000000000000340053130 0)(3)在“-”状态下,按“ST”出现,出现IP的值,若和输入的不符,直接新值,按“,”执行。
即把段地址和偏移地址改成8000和300五、实验结果和分析跑马灯从左至右依次亮起。
微机原理跑马灯课设报告
微机原理课程设计说明书设计题目:跑马灯学院计算机科学与工程学院专业计算机科学与技术专业班级学生学号同组者指导教师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。
51单片机走马灯实验报告
微机原理及单片机应用实验实验报告实验跑马灯一、实验内容开关控制输出方式,共四种,开关拨到k1时奇数灯亮,开关拨到k2时偶数灯亮,开关k3时奇数偶数灯轮流亮,开关拨到k4时从左到右依次亮,开关拨到k5时从右到左依次亮。
二、实验步骤①依次L1-L8接入P1.0-P1,7,将P3接入高低电平开关②编程③实现三、实验原理图四.实验程序清单ORG 0000HPX00: MOV P1,#0FFH KEY : MOV A,#0FEHPO00: JB P3.0,PO01JNB P3.0,PO02PO01: MOV A,#055HMOV P1,ALJMP PO00PO02: JB P3.1,PO03JNB P3.1,PO04PO03: MOV A,#0AAHMOV P1,ALJMP PO00PO04: JB P3.2,PO05JNB P3.2,PO06PO05:MOV A,#0FEHK1:MOV P1,AJNB P3.2,LASTAJMP W1W1:RL ASJMP K1C1:MOV R6,#0A0HMOV R7,#0FFHK2:MOV R7,#0FFHK3:DJNZ R7,K3DJNZ R6,K2LJMP W1PO06:JB P3.3,PO07JNB P3.3,PO08PO07:MOV A,#7FHK4:MOV P1,AJNB P3.3, LASTAJMP W2W2: RR ASJMP K4C2: MOV R6,#0A0HMOV R7,#0FFHK5:MOV R7,#0FFHK6:DJNZ R7,K6DJNZ R6,K5LJMP W2PO08:JB P3.4,PO09JNB P3.4,LASTPO09:MOV A,#55HMOV P1,AMOV R6,#0A0HMOV R7,#0FFHK7:MOV R7,#0FFHK8:DJNZ R7,K8DJNZ R6,K7MOV A,#0AAHMOV P1,AMOV R6,#0A0HMOV R7 ,#0FFHK9:MOV R7,#0FFHK10:DJNZ R7,K10DJNZ R6,K9LJMP PO08LAST:MOV P1,#0FFHLJMP PO00END五、实验总结参考8255交通灯实验,加上延时程序以及查询式的跳转方法实现跑马灯。
微机原理课程设计跑马灯
微机原理课程设计走马灯运用8086最小模式和8255等芯片设计出一个跑马灯电路,要求至少有5中花式,在ISIS 7 Professional软件中运行。
设计电路图如图所示:源代码DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA START :MOV AX,DATAMOV DS,AXMOV AL,10010000B OUT 96H,ALA0: IN AL,90HNOT ALMOV BL,ALOUT 92H,ALCMP AL,1JNZ A3A2: MOV DL,AL ;第一个开关实现从上至下的流水 OUT 92H,ALIN AL,90HNOT ALCMP AL,BLJNZ A0MOV CX,50000A1: LOOP A1MOV AL,DLROL AL,1JMP A2A3: CMP AL,2 ; 实现第二个开关从下至上的流水 JNZ A6MOV AL,80HA5: MOV DL,ALOUT 92H,ALMOV CX,50000A4: LOOP A4IN AL,90HNOT ALCMP AL,BLJNZ A0ROR AL,1JMP A5A6: CMP AL,4 ;第三个开关实现相隔的两个灯自上而下流水JNZ A9MOV AL, 05HA8: MOV DL,ALOUT 92H,ALMOV CX,20000A7: LOOP A7IN AL,90HNOT ALCMP AL,BLJNZ A0MOV AL,DLROL AL,1JMP A8A9: CMP AL,8 ;第四个开关实现相隔的两个灯从下而上流水JNZ A12MOV AL,0A0HOUT 92H,ALMOV CX,20000A10: LOOP A10IN AL,90HNOT ALCMP AL,BLJNZ A0MOV AL,DLROR AL,1JMP A11A12: CMP AL,10HJNZ A17A16: MOV AL,18H ;第五个开关实现从中间向两边流水 A14: MOV DL,ALOUT 92H,ALMOV CX,20000A13: LOOP A13IN AL,90HNOT ALCMP AL,BLJNZ A0CMP AL,81HJZ A16AND AL,0F0HMOV CX,0MOV CH,ALROL CH,1MOV AL,DLAND AL,0FHMOV CL,ALROR CL,1ADD CH,CLMOV AL,CHJMP A14A17: CMP AL,20H ;第六个开关实现从两边向中间流水 JNZ A0A19: MOV AL,81HA20: MOV DL,ALOUT 92H,ALMOV CX,20000A18: LOOP A18IN AL,90HNOT ALCMP AL,BL JNZ A0MOV AL,DL CMP AL,18H JZ A19AND AL,0F0H MOV CX,0MOV CH,AL ROR CH,1MOV AL,DL AND AL,0FH MOV CL,AL ROL CL,1ADD CH,CL MOV AL,CH JMP A20RETCODE ENDSEND START运行后程序如图所示:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机技术课程设计指导教师:赵立辉李鹏学生班级:计科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之间的双向传输和隔离。
3.利用面包板上时钟(1MHz或2MHz)和8253设计一个1s定时电路,将定时信号接到8255的PC4,编程查询PC4的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。
按下Esc键结束程序。
4.每个74LS06中包含了6个非门,它的输入来自PA口的某一位,输出接到发光二极管的负极。
5.每个发光二极管的正极接排电阻的从2到9的一个引脚,排电阻的1脚接VCC(+5V)。
四.电路设计及功能说明电路设计:74LS245用于总线和8253、8255A之间的双向传输和隔离。
利用面包板上时钟(1MHz或2MHz)和8253设计一个1s定时电路,将定时信号接到8255的PC4,编程查询PC4的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。
74LS06中包含了6个非门,它的输入来自PA口的某一位,输出接到发光二极管的负极。
每个发光二极管的正极接排电阻的从2到9的一个引脚,排电阻的1脚接VCC(+5V)。
利用74LS138设计地址译码电路,其输出端Y0,Y1分别接8255和8253。
理论连线图功能说明:采用8253设计一个1s定时电路,将定时信号接到8255的PC口的某一位,编程查询该位的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。
按下Esc 键结束程序。
五.硬件原理图(包括接口芯片的介绍)1. 硬件原理图实物连线图2.接口芯片介绍1). 74LS245数据总路线缓冲器其真值表如下:74LS245是由8个双向缓冲器组合起来,控制端连接在一起而构成的8位双向三态缓冲器芯片.每个双向三态缓冲器由两个三态缓冲器构成,它有两个控制端,即输出允许控制端OE(低有效,用于控制数据的输出)和方向控制端DIR(用于控制数据驱动的方向),它用于隔离和缓冲.2). 74LS06 反向驱动器74LS06 反向驱动器的内部引脚图如下:74LS06 反向驱动器是由6个非门构成,在本次课设中是将8255的PA口输出的数据经过它反向驱动8个发光二极管发光.当8255的PA的某个口输出高电平时,经反相为低电平接到发光二极管Li负极,发光二极管正极接着高电平.这样,二极管形成导通电流,发光二极管Li将点亮.3) 74LS138 译码器74LS138 译码器的引脚图如下:74LS138 译码器是一种集成3位二进制(3-8线)译码器.A、B、C 为二进制译码输入端,G0~G7为译码输出端(低电平有效).当G1=1、G2A+G2B=0时,译码器处于工作状态. 74LS138 译码器的输出端包含了输入端变量A,B,C组成的所有最小项的非.译码电路的真值表如下:4) 8255A并行接口电路芯片8255A并行接口电路芯片的引脚图如下:8255的内部结构如下:8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。
参见下表:8255A并行接口电路芯片具有24条可编程输入输出引脚,分成A、B、C三个端口,每个端口8位,都可以编程设定为输入或输出端口.它共有3种工作方式:基本输入输出方式、选通输入输出方式和双向选通传送方式.8255A的初始化编程比较简单,只需要一个方式控制字就可以把3个端口设置完成(把方式控制字送到控制端口的地址).对控制字的写入要采用控制I/O地址: A1A0=11(即控制端口). 外设数据的读写利用端口A、B、C的I/O地址: A1A0依次等于00、01和10(本课设中用到的译码电路产生的对应的PC机I/O地址为300H、301H、302H)。
初始化编程之后,处理器执行输入IN指令和输出OUT指令、对3个数据端口进行读写就可以实现处理器与外设间的数据交换.5) 定时/计数器8253定时/计数器8253的内部结构图和引脚图如下所示:8253是可编程间隔定时器,有3个独立的16位减法计数器通道,每个计数器有6种工作方式(由处理器写入的方式控制字确定).8253芯片面向处理器连接的引脚类似于处理器的数据、地址和控制信号.8253内部通过数据总线缓冲器引出8位数据引脚D7~D0,与系统数据总线相连,用于接收处理器的控制字(保存于控制字寄存器中)和计数初值,以及发送计数器的当前计数值和工作状态.8253内部的读写控制逻辑接收来自系统总线的读写控制信号,控制整个芯片的工作.PC机主板I/O地址译码电路译码输出Y1与8253片选信号连接,系统地址总线A1和A0与8253芯片对应的地址引脚A1和A0连接,这样得到定时器的4个I/O地址304H~307H.8253的初始化需要首先写入方式控制字,再写入计数初值.对于计数器的工作方式2和工作方式3,计数值减为0后自动将预置寄存器的计数初值送到减1计数器,同时重复下一次的计数过程,直到写入新的方式控制字才停止.这一特点使得8253在本课设中用于产生一个1s定时信号(OUT2接PC4)。
六.程序流程图和汇编源程序流程图源程序DATA SEGMENTMESG1 DB '1s invoke interrupt one time,and to light one of LEDs',0ah,0dhDB 'Exit with Esc',0ah,0dh,'$'LEDDATA DB 01H,02H,04H,08H,10H,20H,40H,80H;NUM DW 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATADELAY PROCPUSH CXPUSH BXMOV BX,05FFFHLOOP2:MOV CX,0FFFFHLOOP1:LOOP LOOP1DEC BXJNZ LOOP2POP BXPOP CXRETDELAY ENDPSTART:MOV AX,DATAMOV DS,AXMOV AH,09HMOV DX,OFFSET MESG1INT 21h ;显示提示信息MOV DX,303H ;初始化8255 MOV AL,80H ;PA输入OUT DX,ALMOV DX,300HMOV AL,0FFHOUT DX,AL ;D灯熄灭MOV DX,307H ;8253定时1SMOV AL,01110110BOUT DX,ALMOV DX,305HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALMOV DX,307HMOV AL,10110110BOUT DX,ALMOV DX,306HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALMOV CX,0L1: MOV AH,0BH ;检查是否有Esc键按下INT 21HINC ALJNZ LP ;若无键按下,则程序往下执行 MOV AH,08H ;如有Esc键按下,则程序退出 INT 21HCMP AL,27JZ EXITLP: MOV DX,302HIN AL,DXTEST AL,10H ;看PC4位是否为0, JNZ LPMOV SI,OFFSET LEDDATAADD SI,cxMOV AL,[SI]MOV DX,300HOUT DX,ALCALL DELAY ;点亮LEDINC CXCMP CX,08HJE L0JMP L1L0:MOV CX,00Hjmp L1IRETEXIT:MOV AX,4C00H ;程序退出INT 21HCODE ENDSEND START七. 实验结果及分析接通电源,在课设平台上编译连接运行程序后,8盏LED灯一次间隔1s点亮,出现走马灯似的效果。
效果图如下:八.课设总结经过一个星期的课程设计,确实有很多的收获。
微机原理的课程设计与之前做的C++、数据结构课设不同,这次不光要求我们又一定的编程基础,同时要求有较强的动手能力。
因为要自己按照电路图在电路板上连接电路,这就要求我们明白各个器件的功能,我们必须要细心,精心排布各器件才能更合理的完成课程设计。
这些都是一种锻炼。
此外,通过课程设计,加深了我对8255、8253、74LS138等器件的功能的了解与应用,弥补了课堂上学习的不足。
之前上课我们只是在理论上接触了一些硬件方面的东西,但并没有深入的了解,很多人都是空有理论却并不懂的应用,通过课程设计,刚好弥补了这点。
课程设计的过程中我们也遇到了一些困难,比如电路图的一些小错误,连接电路时不细心导致出不了结果,但在老师的帮助以及自己和搭档的努力下都得到了解决,希望以后自己在做事情的时候可以更加的细心谨慎,谦虚好问,相信自己可以做的更好。