推荐-华科 HUST 微机原理 并行IO接口实验 独立式开关
华中科技大学微机接口课程设计实验报告
![华中科技大学微机接口课程设计实验报告](https://img.taocdn.com/s3/m/e120d3b7fd0a79563c1e72ea.png)
《微机接口技术》课程设计报告设计题:人工降雨系统指导老师:谭支鹏、熊自立、陈永平设计时间:2013.10.28 至2013.11.1人工降雨系统设计一、课程设计目的1、掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统。
2、掌握基本接口电路的综合应用。
3、掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。
4、微机接口技术及接口芯片的综合应用。
5、在干旱了一段时间后,进行人工降雨。
不同的季节,大自然不降雨对生活生产的影响不同,要控制好等待多久才进行人工降雨,以及降雨的量。
二、课程设计要求设计一个模拟的微机应用系统。
要求该系统综合应用实验台上的多种资源(并行接口、串行接口及其它接口和传感器)设计满足选题要求的符合实际应用的硬件系统,编制主控程序;执行元件驱动程序;通信程序等相应的软件,实现主控中心微机与终端机的远距离传送以及远程控制或监测功能。
由一个主控机(上位机)和若干个下位机组成,上位机与下位机利用串行通讯接口进行连接,构成一个完整系统。
主控机负责数据处理,下位机负责接口访问,接口所需的芯片功能需要通过FPGA自己设计实现。
基于FPGA设计的芯片功能可以是一个完整的功能芯片,也可以只是你在应用需要的芯片某项功能即可。
验收的时候会根据实现的情况作出评价。
(1)主控机:在屏幕上用数字、图形、表格、曲线等方式直观地显示数据/状态处理的结果和过程。
(2)下位机:用实验台的声光部件描述当前监控/操作的工作状态,按主控机的命令驱动执行元件并返回状态和结果。
题目要求:1.用实验台上的信号电源模拟湿度计的信号电压。
2.用实验台上的LED和扬声器模拟加湿动作及报警信号。
3.用实验台上的步进电机模拟水泵动作。
4.上位机实现图形监控。
(模拟)三、课程设计内容及过程1.系统总体结构图1) 系统硬件由主控机(其中一台微机)、终端机(另一台位微机)和执行部件组成。
华中科技大学第7七章输入输出
![华中科技大学第7七章输入输出](https://img.taocdn.com/s3/m/bb54a13a767f5acfa1c7cdb2.png)
键盘及显示
LED数码管
COM:显示器位选线 a~dp:显示器段选线
发光管驱动额定电流 10~40mA
D7 D6 D5 D4 D3 D2 D1 D0 Dp g f e d c b a
共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H 共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dp→a)
§ 7.3.2 MCS51与并行I/O口相关的指令
8051指令系统中能与接口打交道的指令可分两类: 1.一般的输入/输出指令 2.“读-修改-写”指令
§ 7.3.2 MCS51与并行I/O口相关的指令
§ 7.3.2 MCS51与并行I/O口相关的指令
注意:读P1、P2、P3I/O口引脚状态前, 必须向所读引脚先输出1。
8 地址总线
&& /WR
无条件传送的输出电路
§ 7.2.1 程序传送
无条件传送适用于以下两类外部设备的数据输入输出: ①具有常驻的或变化缓慢的数据信号的外部设备。例如:机 械开关、指示灯、发光二极管、数码 管等。 ②工作速度非常快,足以和CPU同步工作的外部设备。例如数 /模转换器DAC,由于DAC是并行工作的,速度很快,因此 CPU可以随时向其传送数据,进行数/模转换。
§ 7.3.2 MCS51与并行I/O口相关的指令
2.“读-修改-写”指令
ANL P1,A
逻辑与
ORL P2,A
逻辑或
XRL P3,A
逻辑异或
JBC P1.1 LOOP
如某位为1,跳转并清零
CPL P3.0
对接口某位求反
INC P2
接口锁存器加1
微机接口技术实验报告并行接口实验
![微机接口技术实验报告并行接口实验](https://img.taocdn.com/s3/m/0425c8224b35eefdc8d333fe.png)
微机接口技术实验报告并行接口实验系别: 计算机科学与技术完成时间:2012-5-15一、实验目的1.熟悉并行接口电路;2.掌握8255并行接口芯片及8253定时器的应用及其编程技术。
二、实验内容及要求通过对8255芯片的编程,使得实验台上的步进电机按顺时针或逆时方向转动,同时扬声器(模拟电子琴)做高8度和低8度循环发音:1. 控制步进电机转动和电子琴发音;2.使用K0控制步进电机顺逆时针转动和电子琴发高低音;3.使用K1控制步进电机和电子琴速度(分快和慢两种速度);4.使用K2启动和停止步进电机转动和电子琴发音。
三、实验原理1、可编程并行芯片8255A并行接口即同时在多根I/O线上,以数据字节或字为单位实现CPU通过I/O端口与I/O 设备或被控制对象之间的信息传递,如计算机与打印机,A/D和D/A转换器,开关量接口等。
8255及其改进型8255A是最广泛应用的并行I/O接口。
8255A的主要性能参数如下:(1)8255A内共有4个端口,分别为口A、口B、口C和控制端口。
前三个端口为8位并行I/O端口,常用于传送数据信息;控制端口是用于接收CPU送来的控制命令,即控制字。
(2)8255A芯片可以三种不同的工作方式与I/O设备进行数据传输,具体方式由控制字来设定。
(3)8255与CPU之间交互信息可以使用中断方式进行。
它内部有三个中断源,分别产生与方式1(1个)和方式2(2个)中。
(4)8255A所有信号与TTL信号兼容,可直接与CPU的三总线连接使用。
(5)8255A使用单一的+5V电源,单项时钟。
8255A的三种工作方式:方式0——基本的输入/输出方式,方式1——选通的输入/输出方式,方式2——双向的输入/输出方式。
本次实验采用方式0,将口A和口B作为输出,分别控制步进电机的旋转和电子琴的发音,口C作为控制输入端。
根据端口编址及寻址方式,设定端口A的地址为288H,端口B地址为289H,端口C地址为28AH,控制端口的地址为28BH。
微机原理实验---并行接口实验
![微机原理实验---并行接口实验](https://img.taocdn.com/s3/m/03105910ae45b307e87101f69e3143323968f5f8.png)
微机原理实验---并行接口实验
并行接口(Parallel Port)是一种广泛使用的计算机外围设备接口。
它通常用于连接打印机、扫描仪、摄像头等设备,以实现数据的传输和控制。
本实验旨在教授学生使用并行接口实现数据输入和输出的基本功能,以提高学生对计算机外围设备的理解和应用能力。
具体实验步骤如下:
材料及设备:
1. 一台计算机
2. 并行数据线(Parallel Data Cable)
3. 并口测试器(Parallel Port Tester)
4. 8位开关(8-bit Switch)
5. LED 灯(LED Light)
实验步骤:
1. 将并行数据线连接至计算机的并行接口,并将另一端连接至并口测试器。
2. 使用并口测试器测试并行接口是否正常。
若测试失败,可检查并行接口是否损坏或驱动程序是否正确安装。
3. 将 8 位开关连接至并口测试器的数据输出端,连接正确后,将 8 位开关的位置设置为 0。
4. 运行实验程序,将数据从计算机输出至并口测试器。
5. 将 LED 灯连接至并口测试器的数据输入端,将计算机输入的数据传输至 LED 灯并输出。
华科_HUST_微机原理_并行IO接口实验_独立式开关输入_实验报告
![华科_HUST_微机原理_并行IO接口实验_独立式开关输入_实验报告](https://img.taocdn.com/s3/m/7bbe903b0066f5335a81217f.png)
微机原理实验报告学号姓名专业通信1301指导教师罗杰院(系、所)电信学院并行I/O接口实验一、实验目的1、掌握GPIO IP核的工作原理和使用方法。
2、掌握IO接口程序控制方法1)查询方式2)中断方式3)延时方式3、掌握中断控制方式的IO接口设计原理4、掌握中断程序设计方法二、实验任务使用查询、中断两个方式做独立式开关输入,将开关状态显示到console。
三、硬件电路框图四、硬件平台建立1 创建XPS工程创建basesystem文件夹,建立最小系统。
启动XPS,打开system.xmp工程文件。
2 添加和配置GPIO IP核在XPS主界面左边窗口选择IP Cataiong标签,点击General Purpose I/O展开。
添加AXI Genaral Purpose I/O。
配置开关与led灯分别有16个,将其分别设置为16在ucf文件中添加相应代码3、添加和配置中断控制器IP核在XPS主界面左边窗口选择Clock, Reset and Interrupt标签,点击AXI InterruptController展开。
将INTERRUPT引脚选择axi_intc.c_INTERRUPT。
设置中断输入4、产生外部GPIO链接SW为开关输入,从GPIO_IO接口接入,LED灯输出,从GPIO2_IO接口接入展开External Ports项可看到SW与LED的外部接口五、软件平台建立1.查询源代码#include"stdio.h"#include"xil_io.h"#include"xil_types.h"#define gpio_ctrl 0x40000004 //定义通道1地址#define gpio_data 0x40000000 //定义数据1地址#define gpio1_ctrl 0x4000000c //定义通道2地址#define gpio1_data 0x40000008 //定义数据2地址int main(void){u16 SW,psw; //定义两个输入,psw作比较信号Xil_Out16(gpio_ctrl,0xffff); //输入Xil_Out16(gpio1_ctrl,0x0); //输出psw=SW=0x00; //赋初值0给两个输入信号while(1){SW=Xil_In16(gpio1_data);Xil_Out16(gpio1_data,SW);if(psw!=SW) //判断SW与PSW是否相等{psw=SW;SW=Xil_In16(gpio1_data);xil_printf("the Switch state is 0x%X\n\r",SW);//显示开关状态}}return 0;}状态显示:实验流程图:2 中断源代码:#include"xgpio.h"#include"xparameters.h" #include"xintc.h"#include"stdio.h"#include"xil_io.h"XGpio swled;XIntc intc;//实例化intcint swstate;int pshdip;void Initialize();void GPIOHandler(void * CallBackRef);int main(){Initialize();while(1){if(pshdip){xil_printf("the Switch state is 0x %x\n\r",swstate);pshdip=0;}}return 0;}void Initialize(){XGpio_Initialize(&swled, XPAR_AXI_GPIO_0_DEVICE_ID);XGpio_SetDataDirection(&swled, 1, 0xffff);XGpio_SetDataDirection(&swled, 2, 0x0);XGpio_InterruptEnable(&swled, 1);XGpio_InterruptGlobalEnable(&swled);//XGpio_InterruptClear(&swled,1);XIntc_Initialize(&intc,XPAR_AXI_INTC_0_DEVICE_ID );XIntc_Connect(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR, (XInterruptHandler)GPIOHandler, (void *)&swled);XIntc_Enable(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR);microblaze_enable_interrupts();microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,( void *)&intc);XIntc_Start(&intc, XIN_REAL_MODE);void GPIOHandler(void * CallBackRef){swstate= XGpio_DiscreteRead(&swled, 1); pshdip=1;XGpio_DiscreteWrite(&swled, 2, swstate);XGpio_InterruptClear(&swled, 1);状态显示:}实验流程图:六、实验小结在这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。
华中科技大学HUST微机原理并行IO接口数码管实验报告
![华中科技大学HUST微机原理并行IO接口数码管实验报告](https://img.taocdn.com/s3/m/7372c9c36f1aff00bed51e7d.png)
电子信息与通信学院实验报告实验名称:微机原理实验课程名称:并行IO接口设计班级:姓名:学号:教师:一、实验目的1.掌握GPIO IP核的工作原理和使用方法2.掌握中断控制方式的IO接口设计原理3.掌握中断程序设计方法4.掌握IO接口程序控制方法-------查询方式-------延时方式二、实验任务写一个数码管滚动输出任意数字的程序,并下载到FPGA板子上,用延时、中断两种方式实现。
三、实验原理硬件实现框图如图所示:四、硬件实现步骤1.使用XPS创建一个基于AXI总线的最小计算机系统。
File –> New BSB Project,如图:2.修改时钟设置:将时钟产生器的时钟输入信号进行修改,修改为单一时钟源。
修改后的结果如图:3.添加GPIO IP核,设置seg_0配置:a.在IP Catalog标签中,双击下面图标创建GPIO IP核:b.添加GPIO IP核后,将名字改为LED_16Bits,如图:c.更改seg_0配置窗口的属性,如图:4.添加AXI Interrupt Controller IP核:a.在IP Catalog标签中,双击下面图标创建INTC IP核:b.添加axi_intc_0的中断源,如图:c.将microblaze_0实例的INTERRUPT引脚选择axi_intc_0_INTERRUPT,如图:5.产生外部GPIO连接:a.选中seg_0中的GPIO_IO_O,选择make external,生成外部连接端口;选中GPIO_IO,设置为“No connection”,取消其外部连接端口;选中seg_0中的GPIO2_IO_O,选择make external,生成外部连接端口;选中GPIO2_IO,设置为“No connection”,取消其外部连接端口。
结果如图:b.在ports标签下,展开External Ports项,可看到seg_0生成的seg_0_GPIO2_IO_pin和seg_0_GPIO_IO_pin端口,如图:6.添加timer IP核:a.选择如图的IP核并双击,添加到工程:b.中断信号的连接结果如图所示:7.配置UCF文件:在UCF文件中修改如下所示配置,配置LED连接电路约束:NET "CLK" TNM_NET = sys_clk_pin;TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;NET "CLK" LOC = "E3" | IOSTANDARD = "LVCMOS33";NET "RESET" LOC = "E16" | IOSTANDARD = "LVCMOS33";NET "RsRx" LOC = "C4" | IOSTANDARD = "LVCMOS33";NET "RsTx" LOC = "D4" | IOSTANDARD = "LVCMOS33";NET "seg_0_GPIO2_IO_pin<0>" LOC = "L3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<1>" LOC = "N1" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<2>" LOC = "L5" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<3>" LOC = "L4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<4>" LOC = "K3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<5>" LOC = "M2" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<6>" LOC = "L6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<7>" LOC = "M4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<0>" LOC = "N6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<1>" LOC = "M6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<2>" LOC = "M3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<3>" LOC = "N5" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<4>" LOC = "N2" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<5>" LOC = "N4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<6>" LOC = "L1" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<7>" LOC = "M1" | IOSTANDARD = "LVCMOS33";8.创建工程过程完成后,a.在主界面下选择Hardware->Generate Netlist;b.在主界面下选择Hardware->Generate Bitstream;c.单击Graphical Design View,可以看到系统的连接图,如下:五、软件设计1.中断方式实现数码管滚动任意数字用户应用程序的设计包括定时器配置、启动中断系统、设计中断服务程序。
微机原理 简单Io接口设计实验
![微机原理 简单Io接口设计实验](https://img.taocdn.com/s3/m/e89044df195f312b3169a593.png)
四、实验步骤
1、取箱子,把电源线和USB通信线接好
START:
MOVAL,0FH
BEGIN:ROLAL,01H
MOVDX,208H
OUTDX,AL
MOVCX,5000
AA:LOOPAA
LOOPBEGIN
JMPBEGIN
CODEENDS
七、实验收获
运行的原理,将课堂上的只是在实际中运用到实验连接中,了解各部分的功能,是最好本实验的基础。
此实验是最基础的微机实验,运用最基础的知识,强调对课本知识的熟悉与掌握。要熟悉仪器的连接方法,通过此次实验,了解了实验,对课本的只是加强了理解,很有收获!
(3)按试验箱的RST键。
断开试验箱的电源,根据实验要求接线,然后编写程序,编译,连接,全速运行。
五、实验接线图
六、程序清单
实验代码
1.利用芯片74LS244作为输入接口,输入8位逻辑电平开关的状态。用芯片74LS273作为输出接口,用以驱动8个LED。
2.
CODE SEGMENT
ASSUME CS:CODE
微机原理简单io接口设计实验微机原理与接口技术微机原理及接口技术微机原理与接口微机原理及应用微机原理pdfio接口微机原理微机原理及应用pdf微机原理与应用微机原理视频教程
计算机学院实验报告
课程名称_微机原理与接口技术__实验名称_简单I/O设计____
班级_ ________姓名___________学号___________仪器组号_______实验日期______
华中科技大学微机原理与接口实验报告
![华中科技大学微机原理与接口实验报告](https://img.taocdn.com/s3/m/f0e8b1d30c22590102029dfd.png)
一、硬件实验环境的检测(一)硬件实验环境简介TD-PIT实验装置提供了多种常用接口及控制应用部件,如定时器/计数器8254、并行接口8255、键盘输入及LED显示、二进制开/关输入及发光管显示等接口单元电路。
TD-PIT实验装置还向PC机申请了接口实验所需的配置资源。
其中包括16M的存储地址空间、256字节的I/O地址空间和一条中断请求线。
中断请求线是映射到PC机内部的15条中断线的一个。
这些信号如下表1.1所示。
表1.1 TD-PIT实验装置的仿真ISA接口信号TD-PIT实验装置提供了四个I/O设备片选信号和两个存储器设备片选信号,片选信号与偏移地址空间对应关系如下表1.2所示。
表1.2 片选地址对应偏移地址范围(二)硬件实验环境的检测检测硬件环境的好坏是每次微机原理与接口实验之前的必需工作,防止试验中出现未知的bug而无从查起。
1. 检测方法运行检测程序,用示波器检测实验装置的所有信号是否正常。
如发现故障,应检查实验装置上该信号的连线是否开路,是否短路。
查出故障,予以排除。
2. 检测工具TD-PIT实验装置、示波器、连接线若干、PC机3. 检测程序若要在示波器上观测到实验装置上各种信号的波形,则必须执行循环程序,如果只执行几条语句而不构成循环,则输出的信号一闪而过,在示波器上就无法观测到信号的波形。
计算机执行无循环程序后无法退出,这种循环称为“死循环”。
为防止“死循环”,必须在循环语句中加入退出循环命令,一般采用11号功能调用来退出循环。
测试程序如下所示:Stck segment stack 'stack'dw 32 dup(?)stck endsdata segmentdata endscode segmentbegin proc farassume ss:stck,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axAGN: MOV AL,0FHMOV DX,0E060H ;送端口地址IN AL,DX ;从给出端口输入数据MOV DX,0E067HOUT DX,AL ;从给出端口输出数据MOV AH,0BH ;11号功能调用INT 21H ;检测有无键盘输入CMP AL,0 ;AL=FFH,有输入;AL=00,无输入JZ AGNretbegin endpcode endsend begin4. 地址线、数据总线及有关信号控制的波形̅̅̅̅̅̅的信号(1)片选译码输出IOY0该信号应为负脉冲选通信号,如下图1.1所示。
实验2 并行IO口的使用
![实验2 并行IO口的使用](https://img.taocdn.com/s3/m/c027568c84868762caaed566.png)
语句组1;
}
else if( 表达式 2)
{
语句组2;
}
...
else if( 表达式 n)
{
语句组n;
}
else
{
语句组n+1;
}
switch语句的一般形式为:
switch(表达式)
{
case常量表达式1: 语句序列1;break;
case常量表达式2: 语句序列2;break;
...
case常量表达式n: 语句序列n;break;
一、实验目的
1.进一步熟悉Keil C、proteus软件的使用方法。
2.掌握分支结构语句、运算符和数组的运用。
3.掌握LED数码管的结构和静态显示工作原理。
二、实验内容
1.程序一:按键K0~K3,用分支语句实现P0口的多值输出。
2.程序二:用循环语句实现P0口的多值输出。
3.程序三:用数组方式控制跑马灯。
程序二:运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。
程序三:用数组方式控制跑马灯。将跑马灯的全部状态用数组表达,然后用循环语句依次读取数组各元素,送P0口显示。
程序四:在P1口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。思路同程序一,只不过数组元素是由共阴极数码管所对应的字形码所组成。
2)P0口与数码管之间的电阻起什么作用?
3)RST端的电路起什么作用?
4)EA接电源是什么意思?
5)XTAL1、XTAL2接的电路起什么作用?
六、体会
}
do-while语句的一般形式:
do
{
语句组; //循环体
并行IO口ppt课件
![并行IO口ppt课件](https://img.taocdn.com/s3/m/5e36114b6bec0975f565e256.png)
T
引脚
读引脚
单片机原理与应用
16
②P3的内部结构
一、作为通用I/O口与P1口类似----准双向口(W=1)
读锁存器
内部总线 写锁存器
读引脚
第二输出功能 VCC
W
DQ CLK Q
R
P3.n P3口
T
引脚
第二输入功能
单片机原理与应用
17
②P3的内部结构
二、P3第二功能(Q=1) 此时引脚部分输入(Q=1、W=1) , 输出(Q=1、W输出) 。
脚处于悬浮状态,变为高阻抗输入。这就是所谓的
准双向口。
地址/数据 VCC
读锁存器
控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
单片机原理与应用
10
2、P0作为地址/数据总线
在系统扩展时,P0端口作为地址/数据总线使用时, 分为:
▪ P0引脚输出地址/输出数据信息。
读锁存器
delay();
/*延时*/
P1=0xB6; /*置P1口状态10110110*/
delay();
/*延时*/
}while(1);
}
单片机原理与应用
20
void delay() {
int x=20000; do {
x=x-1; } while(x>1); }
单片机原理与应用
21
问题:
1.MCS-51单片机的哪些端口,有两种功能?分别是什 么功能?
T1
P0.n P0口
T2
引脚
MUX
读引脚
单片机原理与应用
华科_HUST_微机原理_类MIPS单周期微处理器设计_实验报告
![华科_HUST_微机原理_类MIPS单周期微处理器设计_实验报告](https://img.taocdn.com/s3/m/f9585706a21614791711287f.png)
微机原理实验报告学号姓名华中科技大学专业通信1301指导教师罗杰院(系、所)电信学院类MIPS单周期微处理器设计一.实验目的1.了解微处理器的基本结构。
2.掌握哈佛结构的计算机工作原理。
3.学会设计简单的微处理器。
4.了解软件控制硬件工作的基本原理。
二.实验任务利用HDL语言,基于Xilinx FPGA nexys4实验平台,设计一个能够执行以下MIPS指令集的单周期类MIPS处理器,要求完成所有支持指令的功能仿真,验证指令执行的正确性,要求编写汇编程序将本人学号的ASCII码存入RAM的连续内存区域。
(1)支持基本的算术逻辑运算如add,sub,and,or,slt,andi指令(2)支持基本的内存操作如lw,sw指令(3)支持基本的程序控制如beq,j指令三.各模块实现原理1.指令存储器设计指令存储器为ROM类型的存储器,为单一输出指令的存储器。
设置一个程序计数器指针PC指向指令存储器,当时钟上升沿到来时,取出PC所指的指令,当时钟的下降沿到来时,修改PC的值,使其指向下一条要执行的指令。
因此其对外的接口为clk、存储器地址输入信号(指令指针)以及数据输出信号(指令)。
在本实验中调用ISE提供的IP核进行设计,设定的指令存储器大小为128字。
指令存储器模块在顶层模块中被调用。
输入为指令指针(PC)与时钟信号(clkin),输出为32位的机器指令,并将输出的机器指令送到后续的寄存器组模块、控制器模块、立即数符号扩展模块进行相应的处理。
2.数据存储器设计数据存储器为RAM类型的存储器,并且需要独立的读写信号控制。
因此其对外的接口为clk、we、datain、addr;输出信号为dataout。
当时钟上升沿到来时,如果写信号(we)为真,根据addr所表示的地址找到对应的存储单元,并将输入的数据(datain)写到对应的存储单元中;如果写信号为假,则根据addr所表示的地址,将对应存储单元的数据送到输出端(dataout)。
实验五 简单并行I
![实验五 简单并行I](https://img.taocdn.com/s3/m/e96f64df26fff705cc170a5e.png)
实验五简单并行I/O接口实验【实验内容】试编写程序,实现以74LS245(或74HC541)作为输入缓冲器,接8个开关作为输入装置;74LS374(或74HC573)作为输出缓存器,接8个发光二极管作为输出装置。
开关状态按表4-1读入,8个发光二极管按表4-1对应显示(显示时间设0.5s)。
表4-1 开关状态与LED状态对应表序号 1 2 3 4 5 6 7 8 9开关状态0AAH55H44H0FAH0F7H0EFH0DFH0BFH其它LED状态01H7FH0BFH7AH02H0AAH55H44H0FFH【实验程序】#include <reg51.h>#include <absacc.h> //F1:包含这个头文件的目的是使程序能够找到并使用函数XBYTE#define IN PORT XBYTE[0x4010]#define OUT PORT XBYTE[0x4000]#define uchar unsigned char#define uint unsigned intuchar idata Switch[ ] ={0xAA, 0x55, 0x44, 0xFA, 0xF7, 0xEF, 0xDF, 0xBF};uchar idata LED[ ] = {0x01, 0x7F, 0xBF, 0x7A, 0x02, 0xAA, 0x55, 0x44, 0xFF};//F2:表中数据存放在内部数据存储器存储空间void delay(uint xms){uint i, j;for( i=xms; i>0; i-- )for( j=110; j>0; j-- ); //Q1:将此循环语句后面的分号去掉行吗?} 答:不行void main(){uchar Key, i;while(1){Key=IN PORT; //读入开关状态,并送入Key保存for( i=0; i<9; i++ ) //Q2:将i值改为8行吗?答:行{if(Key==Switch[i]) //如果读入的开关量与表中数据相同{OUT PORT = LED[ i ];delay(500);}else //如果输入表中无读入的开关值{OUT PORT = LED[8];Delay(500);}}}}。
微机原理综合实验报告_nexys4_简易数字信号发生器_HUST_华中科技大学
![微机原理综合实验报告_nexys4_简易数字信号发生器_HUST_华中科技大学](https://img.taocdn.com/s3/m/f0a83509f18583d0496459bd.png)
一、项目简介
1.设计思路
本次项目我们小组选择的是信号发生器,由于之前做过 D/A 显示锯齿波的实验,便 想到在该实验的基础上进行功能的扩充,这样思路比较清晰。首先我们想到在上次实验 的基础上加上方波、三角波和正弦波这几种常见波形,实现起来也与锯齿波较为类似, 只是在正弦波的显示上花了点功夫,最后决定通过 MATLAB 取值来实现,最后能正常 显示。而几种波形的切换我们则想到了开关,通过添加开关的 GPIO 核来获取开关的状 态,预留了三位用于波形的切换。仅仅几种波形的显示是远不够的,所以我们决定添加 频率的调节和幅度的调节部分,实现时发现幅度调节容易实现但频率调节有些难度,最 后从代码产生波形的原理上来分析想到通过改变取样的次数来调节频率的增减,而选择 用一位开关用于切换频率增加和减小,这样会节省资源。
Switch<2>---Switch<0>:选择波形 Switch<8>---Switch<3>:调节频率 Switch<9>:控制频率增加和减小 Switch<15>---Switch<10>:调节幅度 BTNU:增加占空比 BTND:减小占空比
1
二、项目构成及概要设计
1.硬件模块构成
本项目用到的硬件平台包括 SPI IP 核与 D/A 芯片构成数据的传输和数模转换的功能, 4 个 GPIO IP 核分别用于开关状态的读取,按钮状态的读取,LED 灯的显示,数码管的 段选和位选。一个 INTC IP 核用于接受来自于 SPI 和按钮的 GPIO 的中断,并将中断发 送给 microblaze 核来控制。
微机原理与接口实验室简介1
![微机原理与接口实验室简介1](https://img.taocdn.com/s3/m/3a743920915f804d2b16c1ba.png)
教学特色 实验室旨在培养学生的创新能力。通过本课程的系统的工 程训练,使学生能够较系统的掌握微机接口技术的设计, 安装,软硬件结合调试,总结报告文挡整理等全过程的各 个环节,并付诸实现。
•让学生自己接线 安装,调试实验电 路及程序,以培养 学生设计微机应用 系统的能力。 •课设由学生自行 设计系统电路,电 路安装,编写驱动 程序,软硬连调, 最后完成整个系统 功能。
第二步,将多个模块程序的连接在一 起,自行设计一个较复杂的程序,掌握各 模块程序的连调方法(设计性实验)。
2、硬件实验: 微机接口的硬件实验与其它课程的硬件 实验不同,它不是独立的,它必须通过编 程来对硬件电路实施控制。这是微机接口 实验的一个难点。因此,在实验中,重点 是使学生掌握软、硬件的联调方法,学生 运用调试工具对汇编程序及硬件电路进行 调试,找出软、硬问题,排除故障。
3年来,每年平均完成实验教学任 务1300学时左右。
设备完好率在95%以上。 设备利用率全年平均在92%。
谢谢参观指导!
下面分三个方面的内容介绍:
1、软件实验:
课件内容规范生动,将书本上枯燥的 汇编程序,用动画的形式描述,使其变 得生动易理解,使学生对内存数据的传 送看得见,摸得着,增强了学生对指令 理解和编程的兴趣。在试验中教师认真 传授编程的方法及技巧,启发学生编程 的新思路,鼓励创新。 程序设计分两步进行:
第一步,理解和运用课本中的经典程 序,在此基础上,学会自己编一些模块程 序,并学会程序的调试方法(基础实验)。
单片机
扬声器
用户并行口预留焊孔、插针
拨动开关K1-K8
电 源 插 座
EEPROM
A/D
89S52
中断 请求
电通 脑过 ,串 作行 双线 机连 串另 行一 通实 信验 板 或
微机原理,可编程并行接口、七段数码管
![微机原理,可编程并行接口、七段数码管](https://img.taocdn.com/s3/m/fe437d99dd88d0d233d46ab0.png)
可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法。
二、实验内容1.实验电路如图20,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2. 编程从8255C口输入数据,再从A口输出.三、编程提示1、8255控制寄存器端口地址28BHA口的地址288HC口的地址28AH2、参考流程图(见图21):ioport equ 0d400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b ;设8255为C口输入,A口输出mov al,8bhout dx,alinout: mov dx,io8255c ;从C口输入一数据in al,dxmov dx,io8255a ;从A口输出刚才自C口out dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回DOSint 21hcode endsend start/************************//* 可编程并行接口(一) *//************************/#include <stdio.h>#include <conio.h>#include"ApiEx.h"#pragma comment(lib,"ApiEx.lib")void main(){BYTE d ata;printf("--------------------EXP10_4_8255-0---------------------\n");printf("1. 8255 (PA0-PA7) === TPC (L0-L7)\n");printf("2. I/O (288-28F) === 8255 (CS)\n");printf("3. TPC (K0-K7) === 8255 (PC0-PC7)\n");printf("Press any key to begin!\n\n");getch();if(!Startup()) /*打开设备*/{printf("ERROR: Open Device Error!\n");return;}printf("Press any key to exit!");while(!kbhit()) /*有键按下则退出*/{PortWriteByte(0x28b,0x8b); /*设8255为方式0,C口输入,A口输出*/PortReadByte(0x28a,&data);PortWriteByte(0x288,data); /*将C口输入的数据自A口输出*/}Cleanup(); /*关闭设备*/}七段数码管一、实验目的掌握数码管显示数字的原理二、实验内容静态显示:按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。
华中科技大学微机原理第9九章串行通信
![华中科技大学微机原理第9九章串行通信](https://img.taocdn.com/s3/m/e436f0bba1c7aa00b52acbbb.png)
§9.2 MCS-51的串行口 §9.2.2串行口的工作方式
工作方式1 特点:波特率可变的8位异步通信; 数据结构10位: 1位起始位+8位数据位+1位停止位
1.方式1发送 :发送完毕置位TI 2.方式1接收 :接收条件RI=0、SM2=0;接收完毕 置位RI 波特率:2SMOD/32 X T1溢出率
IE
EA
位地址 AF
ES ET1 EX1 ET0 EX0
AC AB AA A9 A8 00000000 00100000
§9.2 MCS-51的串行口 例
ORG 0000H ;复位入口
AJMP MAIN ORG 0023H ;串行口中断入口
AJMP L1 ORG 0100H ;主程序入口
MAIN: MOV SCON, #0D0H ;串行口方式3允许接收,RI=0
;允许串行口中断
MOV R0, #50H ;设数据指针
MOV R7, #10H ;数据长度
MOV A, @R0
;取一个字符
MOV C, P
;加奇偶校验
MOV TB8, C
MOV SBUF, A
;发送一个字符
SJMP $
;CPU原地循环,等待发送结束
§9.2 MCS-51的串行口 例
L1: CLR TI ;中断服务程序,发送结束标志位清0
11000000
IE
EA
位地址 AF
ES ET1 EX1 ET0 EX0
AC AB AA A9 A8 10010000 00100000
§9.2 MCS-51的串行口 例
微机原理实验---并行接口实验
![微机原理实验---并行接口实验](https://img.taocdn.com/s3/m/38dc30f87375a417876f8fc5.png)
深圳大学实验报告课程名称:微机计算机设计实验项目名称:8255 并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:2009100000班级:<1>班实验时间:2011. 06. 09实验报告提交时间:2011. 06. 25教务处制一、实验目的1. 学习并掌握8255的工作方式及其应用。
2. 掌握8255 典型应用电路的接法。
3. 掌握程序固化及脱机运行程序的方法。
二、实验要求1. 基本输入输出实验。
编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2. 流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
三、实验设备PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。
四、实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构框图和引脚图五、实验过程1. 基本输入输出实验要求:实验使8255 端口A 工作在方式0 并作为输入口,端口B 工作在方式0 并作为输出口。
用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
(1)按要求连接好实验电路。
(2)编写实验程序,经编译、无误后装入系统。
代码如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。
实验1 并行IO口编程
![实验1 并行IO口编程](https://img.taocdn.com/s3/m/4e7e3b1914791711cc79177e.png)
实验一并行I/O口编程`实验目的1.了解编程环境,熟悉开发工具;2.学习汇编语言和C语言编程方法;3.学习KEIL工程设置方法和STC单片机程序下载方法。
实验内容1.(汇编程序)假设以60H为起始地址的内部RAM单元存放着8个数据,并给定一个数据在内部RAM单元50H,编程实现数据检索目的。
如果在8个数据中找到给定数据,则使用数码管指示数据位置;如果没有找到数据,则所有数码管全亮。
硬件连接如图1所示,J30与J1通过8根排线连接,JP2的PIN1(下侧靠近JP6)与J13 PIN1 VCC单根线连接,即使用P1口控制8个发光二极管。
其中地址60H~67H分别对应P1.0~P1.7,譬如检索到的数据在60H单元,则P1.0输出低电平点亮发光二极管。
图1 数据检索硬件连接图2.(C语言程序)已知数组dat[16]里存放着16个数据(数据自己编写),编程实现数据从小到大排序,并把最大值显示在P1口,要求发光二极管亮代表数字‘1’,灭代表数字‘0’。
此处的接线方法与题目1相同。
3.编制花样灯显示程序(至少3种模式),通过拨码开关控制花样灯显示效果;接线方法在题目2的基础上,连接排线J16与J24。
在连线时,可先将J24上的跳线帽取下,然后通过排线连接拨码开关与P2口,如图2所示。
图2 花样灯硬件连接图附录1.Keil C生成hex文件方法(1)选择工程选项图3 工程选项选择界面(2)选取标签图4 标签选取界面(3)选择输出HEX图5 输出HEX文件的选择界面(4)重新编译即可图6 重新编译界面2.STC单片机程序下载方法(1)运行程序图7 单片机的运行程序(2)配置方法图8 参数配置界面(3)给板子断电一下,然后重新给电即可下载程序(4)串口助手使用图9 串口调试助手的参数配置界面其他不懂的可以提前到网上查阅相关资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
学号
姓名
专业通信1301
指导教师罗杰
院(系、所)电信学院
并行I/O接口实验
一、实验目的
1、掌握GPIO IP核的工作原理和使用方法。
2、掌握IO接口程序控制方法
1)查询方式
2)中断方式
3)延时方式
3、掌握中断控制方式的IO接口设计原理
4、掌握中断程序设计方法
二、实验任务
使用查询、中断两个方式做独立式开关输入,将开关状态显示到console。
三、硬件电路框图
四、硬件平台建立
1 创建XPS工程
创建basesystem文件夹,建立最小系统。
启动XPS,打开system.xmp工程文件。
2 添加和配置GPIO IP核
在XPS主界面左边窗口选择IP Cataiong标签,点击General Purpose I/O展开。
添加AXI Genaral Purpose I/O。
配置开关与led灯分别有16个,将其分别设置为16
在ucf文件中添加相应代码
3、添加和配置中断控制器IP核
在XPS主界面左边窗口选择Clock, Reset and Interrupt标签,点击AXI Interrupt
Controller展开。
将INTERRUPT引脚选择axi_intc.c_INTERRUPT。
设置中断输入
4、产生外部GPIO链接
SW为开关输入,从GPIO_IO接口接入,LED灯输出,从GPIO2_IO接口接入展开External Ports项可看到SW与LED的外部接口
五、软件平台建立
1.查询
源代码
#include"stdio.h"
#include"xil_io.h"
#include"xil_types.h"
#define gpio_ctrl 0x40000004 //定义通道1地址
#define gpio_data 0x40000000 //定义数据1地址
#define gpio1_ctrl 0x4000000c //定义通道2地址
#define gpio1_data 0x40000008 //定义数据2地址
int main(void)
{
u16 SW,psw; //定义两个输入,psw作比较信号
Xil_Out16(gpio_ctrl,0xffff); //输入
Xil_Out16(gpio1_ctrl,0x0); //输出
psw=SW=0x00; //赋初值0给两个输入信号
while(1)
{
SW=Xil_In16(gpio1_data);
Xil_Out16(gpio1_data,SW);
if(psw!=SW) //判断SW与PSW是否相等
{
psw=SW;
SW=Xil_In16(gpio1_data);
xil_printf("the Switch state is 0x%X\n\r",SW);//显示开关状态}
}
return 0;
}
状态显示:
实验流程图:
2 中断
源代码:
#include"xgpio.h"
#include"xparameters.h" #include"xintc.h"
#include"stdio.h"
#include"xil_io.h"
XGpio swled;
XIntc intc;//实例化intc
int swstate;
int pshdip;
void Initialize();
void GPIOHandler(void * CallBackRef);
int main()
{
Initialize();
while(1)
{
if(pshdip)
{
xil_printf("the Switch state is 0x %x\n\r",swstate);
pshdip=0;
}
}
return 0;
}
void Initialize()
{
XGpio_Initialize(&swled, XPAR_AXI_GPIO_0_DEVICE_ID);
XGpio_SetDataDirection(&swled, 1, 0xffff);
XGpio_SetDataDirection(&swled, 2, 0x0);
XGpio_InterruptEnable(&swled, 1);
XGpio_InterruptGlobalEnable(&swled);
//XGpio_InterruptClear(&swled,1);
XIntc_Initialize(&intc,XPAR_AXI_INTC_0_DEVICE_ID );
XIntc_Connect(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR, (XInterruptHandler)GPIOHandler, (void *)&swled);
XIntc_Enable(&intc, XPAR_AXI_INTC_0_AXI_GPIO_0_IP2INTC_IRPT_INTR);
microblaze_enable_interrupts();
microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,( void *)&intc);
XIntc_Start(&intc, XIN_REAL_MODE);
void GPIOHandler(void * CallBackRef)
{
swstate= XGpio_DiscreteRead(&swled, 1); pshdip=1;
XGpio_DiscreteWrite(&swled, 2, swstate);
XGpio_InterruptClear(&swled, 1);
状态显示:
}
实验流程图:
六、实验小结
在这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。
通过与同学交流,和看书上的相关内容,最后我也把代码理解了,这样就很好地把整个实验的过程都理解了。
总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。
希望综合项目的实验也一样顺利。