(完整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 跑马灯控制程序设计

厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
二、跑马灯控制程序设计 结合顺序控制设计法来设计跑马灯控制程序。
首先来看一下该任务的控制要求: 要求通过启动按钮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。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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等器件的功能的了解与应用,弥补了课堂上学习的不足。

之前上课我们只是在理论上接触了一些硬件方面的东西,但并没有深入的了解,很多人都是空有理论却并不懂的应用,通过课程设计,刚好弥补了这点。

课程设计的过程中我们也遇到了一些困难,比如电路图的一些小错误,连接电路时不细心导致出不了结果,但在老师的帮助以及自己和搭档的努力下都得到了解决,希望以后自己在做事情的时候可以更加的细心谨慎,谦虚好问,相信自己可以做的更好。

相关文档
最新文档