读取开关量实验(微机实验)
微机原理上机实验(三+五)实验报告 简单IO(16位)实验 8255控制交通灯信号实验

微机原理上机实验(三+五)实验报告实验三:简单I/O(16位)实验一、实验目的1、了解外设的扩展方法,掌握外设的读写时序。
2、了解74HC273、74HC244的功能,掌握它们的使用方法。
3、掌握CPU对16位外设的访问方法4、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验内容1、说明:二片74HC244组成16位的只读外设,二片74HC273组成16位的只写外设,它们都可以按字节或字方式操作。
实验仪具有16位数据总线D0..D15、BLE(低电平有效,选中挂在低8位数据总线上外设)、BHE(低电平有效,选中挂在高8位数据总线上外设);BLE、BHE同时有效,对外设字方式读写,BLE或BHE有效,对外设字节方式读写。
二片74HC273的输出端与F4区的16个发光二极管相连;低位74HC244的输入端与F4区的8个拨动开关相连,8个拨动开关循环左移一位后与高位74HC244的输入端相连。
2、编写程序:将B4区的二片74HC244中数据读出、写入二片74HC273中;然后逐一点亮挂在74HC273上的16个发光二级管;循环执行3、连接线路验证功能,熟悉它的使用方法。
三、实验代码IO244 EQU 0230H ;244(16位)片选信号IO273 EQU 0230H ;273(16位)片选信号_STACK SEGMENT STACKDW 100 DUP(?)_STACK ENDS_DATA SEGMENT WORD PUBLIC'DATA'_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV MOV AX,_DATA DS,AXMOV DX,IO244 ;选定244IN AX,DX ;从244读取开关数据(16位,K0 K7K6 K5 K4 K3 K2 K1 K7 K6 K5 K4K3 K2 K1 K0)MOV DX,IO273OUT DX,AX ;将244的开关数据传输至273的对应接口CALL Delay 调用Delay程序CALL DelayCALL DelayCALL DelayCALL DelayCALL DelayMOV DX,IO273MOV AX,0FFFEHSTART1: OUT DX,AX ;将273的K0置0,其余端口置1CALL DelayTEST AX,8000H ;检查AX的D15位是否为1JZ START ;若AX的D15位为1,则转向START程序ROL AX,1 ;将AX循环左移一位JMP START1 ;循环执行START1Delay PROC NEAR ;延时Delay1: XOR CX,CX ;将CX清零LOOP $ ;延时RET 返回调用处Delay ENDPSTART ENDPCODE ENDSEND START四、拓展题与拓展实验1、画出读(74HC244)写(74HC273)的时序。
《第6课 连续量与开关量》作业设计方案-小学信息技术浙教版23六年级下册

《连续量与开关量》作业设计方案(第一课时)一、作业目标通过本次作业,学生应能够:1. 理解连续量与开关量的概念;2. 掌握在电路中如何使用连续量和开关量;3. 了解在硬件设备中使用这些量的方法。
二、作业内容1. 实验一:制作简单的开关电路任务:使用开关量控制LED灯的亮灭。
设计一个简单的电路,包括一个开关和一个LED灯。
要求:了解开关量的状态变化(开/关),并观察LED灯的相应反应。
2. 实验二:使用传感器测量温度任务:使用温度传感器来检测环境温度,并使用连续量进行控制。
设计一个电路,将温度传感器与电脑连接,通过编程控制LED灯的亮灭。
要求:理解温度传感器的原理,了解连续量的变化对LED灯的影响。
3. 阅读材料:学习连续量和开关量的基础知识学生需要阅读教材中关于连续量和开关量的部分,了解它们在电子电路中的重要作用。
三、作业要求1. 独立完成:每个学生需独立完成的作业,不能抄袭或与他人合作。
2. 实验报告:学生需记录实验过程和结果,并撰写实验报告。
3. 思考问题:在阅读材料过程中,学生应思考连续量和开关量的基础知识,并尝试解答相关问题。
四、作业评价1. 评价标准:根据实验报告的完成情况、电路设计是否合理、实验结果是否正确以及阅读材料中的理解程度进行评价。
2. 评价方式:教师评价与学生互评相结合。
五、作业反馈请学生在完成作业后,将自己的作业成果拍照或扫描,发到教师指定的平台上,以便于我们及时给予反馈和指导。
同时,也欢迎学生在完成作业过程中遇到问题时,及时向教师提问,我们会尽快给予解答。
通过本次作业,学生将能够亲手制作开关电路和温度传感器电路,了解连续量和开关量的概念和在硬件设备中的应用。
同时,学生还需要阅读教材中的相关知识,进一步加深对连续量和开关量的理解。
通过独立完成作业和与他人合作完成实验,学生将能够更好地掌握这些基础知识,为后续的电子电路设计和编程打下坚实的基础。
最后,教师将根据学生的作业成果和表现给予评价和反馈,帮助学生更好地理解和掌握相关知识。
微机原理第1、2次实验

微机原理第1、2次实验
3.1 IO口读写实验(245、373)
1、实验内容
利用板上集成电路上的资源,扩展一片74HC245,用来读入开关状态;扩展一片74HC373,用来作来输出口,控制8 个LED 灯。
2、实验目的
(1)了解CPU 常用的端口连接总线的方法。
(2)掌握74HC245、74HC373 进行数据读入与输出。
3、实验电路
4、实验流程图
5、实验说明
一般情况下,CPU 的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如74HC245、74HC373。
74HC245 是三态总线收发器,本实验用它做输入,片选地址为0D0000H-0DFFFFH。
就是用于读入开关值。
74HC373 是数据锁存芯片,通过它作数据的锁住输出。
6、发现的问题
(1)实验指导书中译码器上的连线与代码中的地址不对应,在CPU的输出状态时译码器的Y0为低电平,其他位为高电平,应将原先连接在Y9的线改接到Y0上。
如图:
如果不想改电路,把代码中的OUT373 EQU 8000H改为OUT373 EQU 0E000H,也能使CPU在输出状态时Y9呈现低电平。
如图:
(2)元件与元件直接必须用导线相连,两个元件挨在一起是不算作导通的
否则会出现比如下面这种即使两端有电势差LED灯也不亮的情况
如图,只需将右边改为下图这样即可
添加三极管的目的是为了在8个开关都闭合(向74HC245输入低电平)的情况下,使七段数码管的第一根管脚断路,七段数码管不发光,避免了在8个开关都
闭合时显示数字8。
8255实验-微机原理与接口技术

实验线路连接
(1) 8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2) 8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3) 8255A的CS插孔CS-8255接译码输出Y7插
孔。
要求: ① 读懂系统程序中有关 8255A 的部分。
包括:端口地址、初始化编程、 二极管发光情况与开关状态间的对应关系
并使其根据开关 K1~ K8 的状态发光。 · 以 K8 作为总开关,
若 K8打开(0),则 L1~ L8同时熄灭; 若 K8闭和(1),则 L1~ L7由K1~ K7控 制。
IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H IOAPT EQU 0070H
② 执行程序,并进行观察,记录。 PC 口 8 位接 8 个开关 K1~ K8 , PB 口 8 位接 8 个 LED 发光二极管 L1~ L8 , 并使其根据开关 K1~ K8 的状态发光。
③ 改变电路接法并修改程序,要求实现:
· PA 口 8 位接 8 个开关 K1~ K8 ,
PB 口 8 位接 8 个发光二极管 L1~ L8
IOLED: CALL FORMAT CALL LEDDISP
MOV AL,90H B口输出
;10010000 写方式控制字 方式0 A口输入
MOV DX,IOCONPT
OUT P
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
并行接口 8255 的应用
1、实验目的 掌握8255A和微机接口方法。 掌握8255A的工作方式和编程原理。
2、实验内容
华电微机原理与接口实验实验(完整可用程序)

TPC-1实验系统的结构及使用说明1. 结构TPC—l实验系统不能单独使用,它必须和PC机相连才能工作。
系统由一块PCI总线驱动卡和一个实验台构成,实验台上有8251A、8255A、8253、DAC0832、ADC0809等芯片和小键盘、数码管、8MHz晶振等器件。
实验台的结构如图1所示。
图1 TPC—1实验台主要部件分布图为了实验方便,在每一部分实验电路附近都预留有单线信号插孔,实验时只要将相应插孔用单股导线相连即可。
2. 安装安装时请按下述步骤进行。
(1)用60芯扁平电缆线连接总线驱动卡和实验台。
(2)连接实验台电源。
(3)启动计算机。
(4)打开实验台电源开关,实验台上的指示灯亮即可进行实验。
注意:在进行线路的连接过程中,必须关闭实验台的电源,在断电条件下进行操作,否则可能会引起实验台的损坏。
3. 实验台上的I/O地址实验台上的I/O地址为200~23F共64个,分8个插孔引出,它们分别是200~207;208~20F;210~217;218~21F;220~227;228~22F;230~237;238~23F;实验时只要用导线将任一插孔信号引到相应电路的CS 端即可。
图2是I/O地址译码电路。
1图2 I/O译码电路4. 编写汇编程序时使用的I/O地址因为PCI总线结构支持P&P即插即用功能,所以微机分配给PCI扩展板的资源也是动态浮动的,而不是固定不变的,因此分配给设备的I/O地址、内存储器MEM地址以及中断INT号会随着微机不同而有所变化,所以在实验前必须确定当前微机中PCI卡的资源分配,从而确定实验台上的实际I/O地址和内存储器MEM地址,并在程序中使用该地址。
操作步骤如下:(1)打开“控制面板”中“系统”对话框,找到并打开“设备管理器”,可以看到“微机原理教学实验装置”,如图3所示。
(2)查看TPC的属性,如图4所示。
可以看到两个输入/输出范围(具体数值不同计算机可能不同),其中一个范围大小是0FFH的是PCI接口芯片占用的I/O地址空间,另一个一个范围大小是07FH的是TPC 设备占用的I/O地址空间;两个内存范围,一个范围大小是0FFH的是PCI接口芯片占用的内存储器MEM 地址空间,另一个范围大小是0FFFFFH的是TPC设备占用的内存储器MEM地址空间。
东北大学_微机原理实验报告及答案_简单IO扩展

4、写出实验源程序,并给出注释。
DATE SEGMENT
ASSUMECS:DATE
ORG 100H
START:MOV D0H
OUTDX,AL
JMP START
DATE ENDS
ENDSTART
思考题
1DATE SEGMENT
JMP START返回到开始
DATE ENDS 代码段结束
ENDSTART程序结束
注:双击鼠标,可放大图形
五、实验步骤
1、实验连线:
CPLD单元的输出端插孔CS0、CS1分别与244/273单元的片选信号CS244、CS273相连;
电平开关的输出端KK1~KK8分别与244/273单元的IN0~IN7对应连接;
244/273单元的输出端O0~O7分别与发光二极管的输入端LED 1~L ED8对应连接。
3、调试通过后,全速运行程序,观看实验结果。
4、编写实验报告,完成思考题与练习。
六、实验框图
七、思考与练习
1、KK1-KK4开关向上,让LED1-LED4发光二极管灯灭,而其它发光二极管灯保持不变,程序如何修改。
2、74LS244、74LS273的片选信号可以改变,若244/273的片选信号改为与CPLD单元中的CS2、CS3(04c0h、04d0h)相连,应如何修改程序中相应地址。
编辑:点击快捷图标[新建],进入编辑系统。将编写好的源程序逐一输入,然后保存。这时在桌面上就会产生以new .asm命名的文件。
编译运行:选择[编译]菜单,点击[编译或连接],对源程序进行汇编、连接,这时在屏幕左下方的窗口有信息显示:程序下传成功,编译,连接完成;然后点击快捷图标RUN,即运行程序。
实验一 开关量输入输出实验

实验一开关量输入输出实验
一、实验要求
1.利用ATC89C51单片机的P1口作开关量输出口,连接8个LED发光二极管;
2.在单步模式(debug菜单下的step over,F10)下,循环点亮这8个LED管(流水灯);
3.画出AT89C51实现上述功能的完整电路图,包括单片机电源、复位电路、晶振电路和控制电路。
4.完成全部程序和电路调试工作。
5. 先在proteus下运行程序,有时间再尝试用keil 与proteus联调。
二、实验目的
1.掌握AT89C51单片机的最基本电路的设计;
2.了解单片机I/O端口的使用方法;
三、设计提示
1. 硬件电路图
可参考switch controll.DSN,请删除无关电路。
2. 程序框架
start:
mov r0,0
again:
….. ;从tab表中获取相应数值(请补充相应指令)
mov p1,a
inc r0 ;r0+=1
jmp again
tab: db 01h,02h,04h,08h,10h,20h,40h,80h; 数值表(具体数值可自行修改)
feh,fdh,fbh,f7h,efh,dfh,bfh,7fh
(db是伪指令,定义一个byte的内容单元,上述的语句是定义了包含8个元素的数组,每个元素占据1个byte)。
end
四、主要元件。
电气化自动技术 实验2 IO口开关量输入-实验指导书

实验二 IO开关量输入实验一、实验概述使用按键来控制单片机IO口的高低电平。
二、实验目的熟悉单片机的最小系统,了解单片机I/O的结构;掌握按键键值的读入和处理;学习简单程序的编写。
三、实验预习要求1、单片机最小系统电路构成;2、I/O口的内部结构;3、简单程序指令熟悉;四、实验原理图:AT89C52本实验使用了单片机AT89C52来做实验,该单片机有4组IO口。
单片机总的IO 会分为这几类:电平可变化的IO口和VCC、GND两类。
其中电平可变化的IO有P0口、P1口、P2口、P3口。
本实验就是读取了P1口的电平从而读取按键输入的值,P0口来输出高低电平来控制LED的亮或灭。
图:P1口的电路R1、R2是上拉电阻,拉高了P10和P11两个端口的电平,当按下按键的时候,相应的端口变为低电平。
图:P0口的电路P0口接了8个LED,RP1是限流电阻,保护LED,避免电流过高,烧坏LED;RP2是上拉电阻,将P0口的电平拉高。
五、Proteus使用的元器件1.AT89C51 //51单片机。
2.BUTTON //按键,用于最小系统复位;实现输入功能。
3.CAP //电容,用于搭建复位电路。
4.CAP-ELEC //电解电容,用于搭建复位电路。
5.CRYSTAL //晶振,给单片机提供时钟信号。
6.LED-YELLOW //黄色LED灯。
7.RES //电阻。
8.RESPACK-8 //排阻;RP1是限流电阻,RP2是上拉电阻。
六、实验要求1、利用单片机,按键和发光二极管,构成一个LED灯控制电路;2、上电时, 点亮LED,按下K1时, LED向左移一位,按下K2时, LED向右移一位。
七、硬件连接图1. 硬件电路图:8位独立LED图:8位独立按键2.硬件连接表3.Proteus仿真图图:Proteus仿真图八、实验程序/******************************************************************** ****文件名称: main.c作者:版本: V1.00说明: IO开关量输入实验修改记录:-------------------------------------------------------------------------* 功能描述: 按键扫描程序* 上电时, 点亮P00口LED ,按下K1时, LED向右移一位,按下K2时, LED向左移一位-------------------------------------------------------------------------* 接线说明:P10-K1,P11-K2,P00~P07——D1~D8********************************************************************** ****/#include <reg52.h>#include <intrins.h>#define uchar unsigned char //数据类型宏定义#define uint unsigned int/**********单片机IO口引脚定义********************************************/#define LED P0sbit K1 = P1^0;sbit K2 = P1^1;/**********函数定义******************************************************/uchar scan_key();void proc_key(uchar key_v);void delayms(uchar ms);/**********主函数********************************************************/void main(void){uchar key_s,key_v;key_v = 0x03; //初始化IO口LED = 0xfe;while(1){key_s = scan_key();if(key_s != key_v) //判断按键是否按下{delayms(10); //延时消抖key_s = scan_key();if(key_s != key_v){key_v = key_s;proc_key(key_v);}}}}/**********键盘扫描函数**************************************************/ uchar scan_key(){uchar key_s;key_s = 0x00;key_s |= K2;key_s <<= 1;key_s |= K1;return key_s; //返回按键号}/**********键盘处理函数**************************************************/ void proc_key(uchar key_v){if((key_v & 0x01) == 0){LED = _cror_(LED,1); //循环右移一位}else if((key_v & 0x02) == 0){LED = _crol_(LED, 1); //循环左移一位}}/***********延时函数*****************************************************/void delayms(uchar ms)// 延时子程序{uchar i;while(ms--){for(i = 0; i < 120; i++);}}九、实验步骤1、打开Proteus 8环境,在快捷工具栏中点击源代码按纽,然后在菜单栏选择系统-编译器配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 读取开关量实验
实验目的
1.学习使用32位汇编语言,学习对32位的I/0接口进行读写操作,掌握对16位的I/O 端口进行读写操作。
2.学习使用74LS245和74LS244来扩展输入口。
实验设备
PC机一台,THTWK-2实验箱一台
实验要求
根据配置空间的原理,通过编程将PCI卡开放给用户的I/O 端口空间读出
编写汇编程序来对2片74LS245 进行读操作,读出当前拨位开关的状态
实验内容1
读取开关量,在实验箱的32位总线上有4片74LS245(地址04H)对应了32个开关量,可用一条32 位指令IN EAX,DX将32个开关的状态全部读回到EAX 寄存器中,并且显示在屏幕上。
运行程序后显示THE RESULT IS 加上开关量的输出值
实验步骤
1.接线:无需接线。
2.把D盘“程序”文件夹中SWITCH.ASM文件复制到D:\BIN。
3.重启计算机进入纯DOS,使用CD命令到BIN 路径下,输入下面命令后回车。
4.编译:tasm /zi SWITCH.ASM (注:“.ASM”可省略)
5.连接:tlink /v/3 SWITCH.OBJ (注:“.OBJ”可省略)
6.运行:SWITCH.EXE (注:“.EXE”可省略)
7.运行结果显示的数据值与32位开关输入相对应。
如32拨位开关的状态为0000 0000 0000 0000 1111 1111 1111 1100,则屏幕上应显示THE RESULT IS 0000FFFC 8.把BIN文件夹下“SWITCH.ASM”源程序及生成“.map”、“.obj”、“.exe”文件删除掉。
实验内容2
读取16位开关量,本实验中所用的芯片是2片74LS245,参考书中P234,分配的地址为
04H,05H.试编程实现读取16位的开关量的程序。
程序名为SHIYAN4.ASM。
运行程序后显示“THE SWITCH IS”加上16位开关量的输出值。
注意,这时拨高16位的开关对输出结果没有影响。
实验步骤
1.按实验3的操作步骤,生成SHIY AN4.ASM文件。
并编译,调试。
也可直接采用EMU8086或任一款集成编译器生成SHIY AN4.ASM文件并完成编译,在EMU8086或其它集成编译器均有出错提示。
改正错误后确定能生成.OBJ文件和.EXE文件。
生成的”.EXE”文件可直接拖到TD.EXE调试。
2.重启进入纯DOS,打开实验箱电源
3.编译:tasm /zi shiyan4.ASM (注:“.ASM”可省略)
4.连接:tlink /v/3 shiyan4.OBJ (注:“.OBJ”可省略)
5.运行:shiyan4.EXE (注:“.EXE”可省略)
6.运行结果显示的数据值与16位开关输入相对应。
如32拨位开关的状态为0100 0011 0011 0001 0011 1111 1111 1100,则屏幕上应显示”THE RESULT IS 3FFC”
观察屏幕是否出现想要的结果,如果不是,重新调试,直到显示出想要的结果为止。
7.把文件夹下“SHIYAN4.ASM”源程序及生成“.map”、“.obj”、“.exe”文件删除掉。
(注意:在D盘“程序”文件夹下有SHIYAN4的部分源代码,如果编写不出完整的源程序可参考,后面直接编写读16位开关量的程序即可)
8.把BIN文件夹下“SHIYAN4.ASM”源程序及生成“.map”、“.obj”、“.exe”文件删除掉。
实验报告要求:
1.仔细观察SWITCH.ASM汇编语言源程序,给程序段
MOV EDX,D244
IN EAX,DX
MOV DWORD PTR TEMP,EAX
MOV AH,09H
MOV DX,OFFSET TAB
INT 21H
MOV AX,WORD PTR TEMP+2
CALL DISPWORD
加上注释,对有注释的地方不可直接抄录,要注释详细。
如几条语句完成一个功能可注释为:以下某几条语句完成什么功能。
2.说明SWITCH.ASM中的DISPWORD子程序完成什么功能
3.写出实验内容2的汇编语言源程序,并加上必要的注释。