南邮通达微机系统串行口的测试实验报告

合集下载

南邮微机原理实验报告

南邮微机原理实验报告

微机原理硬件实验报告实验一 I/O 地址译码一、实验目的1、掌握 I/O 地址译码电路的工作原理。

二、实验内容及原理实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,…… 当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

根据图1-1,我们可以确定A9~A3,AEN,IOW,IOR的值。

要使译码电路正常工作,必须使处于低电平有效。

因而可以确定A6=A8=0,A7=A9=1,AEN=0,IOW与IOR不可同时为1(即不能同时读写)。

当要从Y4输出低脉冲时,A5A4A3=100;从Y5输出时,A5A4A3=101。

综上所述,Y4输出时,应设置值2A0H(A9~A0=1010100000B);Y5输出时,应设置值2A8H(A9~A0=1010101000B)。

执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲到D触发器的CLK上,因为D=1(接了高电平+5V),所以Q被赋值为1.延时一段时间(delay);执行下面两条指令;MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲到CD,D触发器被复位,Q=0。

再延时一段时间,然后循环上述步骤。

利用这两个个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

三、硬件接线图与软件流程图硬件接线:Y4/IO 地址接 CLK/D 触发器Y5/IO地址接 C/D触发器D/D触发器接 SD/D角发器接+5VQ/D触发器接 L7(LED灯)或逻辑笔软件流程图:四、源程序OUTPORT1 EQU 2A0H ;预置,方便修改OUTPORT2 EQU 2A8HCODE SEGMENTASSUME CS:CODESTART: MOV DX,OUTPORT1 ;根据原理图设定A9~A0 的值(Y4)OUT DX,AL ;让译码器Y4 口输出一个负脉冲CALL DELAY ;延时MOV DX,OUTPORT2 ;根据原理图设定A9~A0 的值(Y5)OUT DX,AL ;让译码器Y5 口输出一个负脉冲CALL DELAY ;延时MOV AH,1 ;调用1 号DOS 功能,等待键盘输入INT 16HJE START ;若有键盘输入则退出程序,否继续循环MOV AH,4CHINT 21HDELAY PROC NEAR ;延时子程序MOV BX,200 ;时延长度 (200)A: MOV CX,0B: LOOP BDEC BXJN E ARETDELAY ENDPCODE ENDSEND START五、实验结果LED 灯处于闪烁状态,键盘有输入后,成功退出。

串行通信实验报告

串行通信实验报告

串行通信实验报告串行通信实验报告引言:串行通信是一种数据传输方式,通过将数据一位一位地传输,相比并行通信具有更高的传输效率和更少的硬件成本。

本实验旨在通过搭建串行通信系统,了解串行通信的原理和应用,并探究不同参数对传输效果的影响。

一、实验目的本实验旨在:1. 了解串行通信的原理和基本概念;2. 掌握串行通信的实验搭建方法;3. 分析不同参数对串行通信传输效果的影响。

二、实验原理串行通信是一种将数据一位一位地传输的通信方式。

在串行通信中,数据以二进制形式传输,每一位的传输时间相等。

常见的串行通信方式有同步串行通信和异步串行通信。

同步串行通信中,发送端和接收端的时钟信号同步,以确保数据的准确传输。

发送端将数据按照一定的帧格式发送,接收端通过时钟信号进行同步,按照相同的帧格式接收数据。

异步串行通信中,发送端和接收端的时钟信号不同步,通过起始位和停止位来标识数据的开始和结束。

发送端在每个数据帧前加上一个起始位,接收端通过检测起始位来判断数据的开始。

三、实验步骤1. 搭建串行通信系统:将发送端和接收端连接,通过串口线进行数据传输。

2. 设置串行通信参数:根据实验要求,设置波特率、数据位、停止位等参数。

3. 编写发送端程序:通过编程语言编写发送端程序,实现数据的发送。

4. 编写接收端程序:通过编程语言编写接收端程序,实现数据的接收和显示。

5. 调试和测试:进行通信测试,观察数据的传输效果,记录实验结果。

四、实验结果与分析在实验中,我们通过设置不同的串行通信参数进行测试,观察数据的传输效果。

实验结果显示,在较低的波特率下,数据传输速度较慢,但传输稳定性较高;而在较高的波特率下,数据传输速度较快,但传输稳定性较差。

此外,我们还测试了不同数据位和停止位对传输效果的影响。

结果显示,增加数据位可以提高数据的传输精度,但也会增加传输的时间和成本。

增加停止位可以增加数据的传输稳定性,但也会降低传输速度。

五、实验总结通过本次实验,我们深入了解了串行通信的原理和应用,并通过实验搭建了串行通信系统。

串行口实验报告

串行口实验报告

串行口实验报告
《串行口实验报告》
实验目的:通过串行口实验,探索数据传输的可靠性和稳定性。

实验材料:计算机、串行口数据线、串行口设备。

实验步骤:
1. 连接串行口数据线:首先,将串行口数据线插入计算机的串行口接口,并将另一端连接到串行口设备上。

2. 设置串行口参数:在计算机上打开串行口设置界面,设置波特率、数据位、校验位和停止位等参数,确保与串行口设备相匹配。

3. 发送数据:通过计算机上的串行口通讯软件,向串行口设备发送数据,观察数据传输的稳定性和可靠性。

4. 接收数据:同样通过串行口通讯软件,接收串行口设备发送的数据,检验数据接收的准确性和完整性。

实验结果:
经过一系列的实验操作,我们发现串行口数据传输的稳定性和可靠性较高。

在设置合适的参数后,数据传输过程中几乎没有出现丢失或错误的情况。

同时,数据的传输速度也较为稳定,符合预期的要求。

实验结论:
通过本次串行口实验,我们验证了串行口数据传输的可靠性和稳定性。

在实际应用中,可以通过合理设置串行口参数,确保数据的准确传输。

串行口技术在工业控制、通讯设备等领域有着广泛的应用前景,为数据传输提供了一种可靠的解决方案。

南邮微机原理实验报告资料

南邮微机原理实验报告资料
STR2 DB 'WELCOME'
COUNT EQU $-STR2
EXTRA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:EXTRA
BEG: MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV CX,COUNT
源程序:
.586
DATA SEGMENT USE16
MESG DB 'What is your name?$'
MESG2 DB '?(Y/N)$'
BUF DB 30
DB ?
DB 30 DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
七、教师评阅
日期:
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,5
LL1: MOV MESG+5,0DH
MOV MESG+6,0AH
MOV MESG+7,'$'
CALL DISP
MOV MESG+5,0
MOV DI,OFFSET STRING
MOV CX,LENS
CLD
AGA: REPNE SCASB
JNZ NEXT
MOV FLAG,1
MOV SI,DI
DEC SI

南邮通达学院《微型计算机接口技术》实验报告格式2015年秋

南邮通达学院《微型计算机接口技术》实验报告格式2015年秋

实验报告(2015--2016学年第 1 学期)课程名称微型计算机接口技术实验名称(1)流光发生器设计、(2)基于中断的字符串屏幕动态显示、(3)测试微机系统串行口实验时间2015 年12 月日指导单位物联网学院指导教师陆骥学生姓名韩胜远班级学号13001527 学院(系) 物联网学院专业网络安全实 验 报 告(一)实验名称 流光发生器设计 指导教师陆骥实验类型验证实验学时2实验时间 2015.12.一、 实验目的和要求目的:运用定时/计数器8254的知识,设计流光发生器。

要求:在开放式微机实验装置上完成相应硬件电路连接;编写程序实现:8254的三个计数器输出不同周期的信号,控制发光二极管,达到流光效果。

二、实验环境(实验设备)PD-32开放式微型计算机教学实验装置 8254定时器/计数器模块 PC 系列机,Windows 操作系统汇编语言开发工具TASM5.0,上位机软件PD-BUG三、实验原理及内容8254有3个独立的16位计数器,每个计数器有3个引脚,GATE 、CLK 、OUT 。

每个计数器有6种工作方式,其中方式2、3有具有初值自动重装功能,所以可以选择计数器工作在方式3,输出的是连续信号,输出信号的周期T out =N ×T CLK,。

8254定时器/计数器模块可见实验书P89,数据线已经接至系统数据总线D 0~D 7,实验机上将地址总线的A 1、A 0引出接插口,可从其中的两个相邻的地址线A 2、A 3连至8254的A 0、A 1,用于片内端口选择。

A 5、A 6、A 7接3-8译码器模块,用于片选,8254的最高计数频率不能超过3M 、6M ,输入脉冲可选择47kHz 等。

利用PD-32实验台的8254计数器模块,控制实验台的发光二级管闪烁(点亮、熄灭、点亮、……),循环往复。

根据8254的特点,可设计以下两种方案:方案一:设置三个计数器初值一样,时钟频率接47KHz 、93KHz 、187KHz ,可达到流光效果。

串行接口实验报告

串行接口实验报告

课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (13)实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。

具体过程如下:1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。

2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。

3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。

控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。

另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。

2.8251方式指令(端口地址2B9H)3.8251工作指令(端口地址2B9H)4.8251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz波特率=1200波特率因=16计数初值= 1000000/1200*16=527.程序流程框图4.程序代码Fxc.asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz nextmov dl,0ffh ;有键盘输入,读入字符mov ah,06hint 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend startSend .asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址buf3 byte 0mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz next; mov dl,0ffh ;有键盘输入,读入字符;mov ah,06h; int 21hmov dx,28ahin al,dxcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend start步进电机:1.K0=0,逆时针转;K0=1,顺时针转2.K1=0,慢转;K1=1,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jnz kai ;转反转test al,01 ;测试K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,9jnz S1call change9_0S1: inc al ;数据加1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;数据完成加1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复C口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试K2=1?jnz T2call change0_9S2: dec al ;数据减1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转rol al,1 ;数据右移mov buf2,almov dx,288h ;A口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复C口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endpchange9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验需要用到两种芯片8253和8251,两种芯片的作用分别是8253提供串行通讯所需的特定频率的脉冲信号,8251提供输入输出控制,所以在实验的过程中需要熟悉这两种芯片的方式字等使用规范,在仔细阅读了书本以及书本的编程实例后,基本摘掉了程序的设计方法实验过程中,出现了程序编译通过了但是不能运行的情况,后来经过检查发现是程序没有设置好的原因,要设置为编译后运行状态,否知只编译不运行,经过这次实验,知道了8253和8251两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。

微机原理 实验报告 串行

微机原理 实验报告 串行

微机原理与接口技术实验实验六、串行接口实验学号U201413416姓名班级电信1406班一、实验目的理解RS232 串行通信协议以及接口设计理解SPI串行通信协议掌握RS232 串行接口设计掌握SPI串行接口设计掌握串行AD/DA 接口设计二、实验任务Nexey4开发板通过外接SPI AD模块,实现AD转换,并打印结果到console三、基本原理1.SPI IP核接口寄存器2. D/A转换接口时序逻辑框图四、硬件电路框图、模块设计1.硬件电路框图2.SPI IP核设计1) 在IP Catalog里面选择AXI SPI Interface2) 配置SPI核如下图所示:3) 删除SPISEL外部引脚,将其配置成net_vcc:4) 配置ucf引脚如下:3. 中断控制器设计1) 通过AXI Interrupt Controller添加中断控制器2) 在Intr添加spi中断3) 将此中断控制器改成axi4lite_0 的中断控制器4. 查看当前最小系统的引脚输出及硬件框图外部引脚地址Interrupt ViewInterface view5.生成Netlist 以及bitstream,导出到SDK点击project中的Export hardware design to SDK 五、软件实现步骤六、实验结果1. A0连接VCC2.A0连接GND七、心得体会本次实验给我的收获颇多,通过这次实验,我理解了SPI串行通信协议。

在写程序的过程中,首先需要很熟悉的了解SPI串口通信的过程,一步一步对SPI接口进行配置,否则实验无法成功。

我还使用了ADC数模转换器。

这次实验相对复杂,不管是在配置还是使用上,都比传统的GPIO外设难度大,所以能做成功这次实验是非常有收获的。

实验五:串行接口输入输出实验

实验五:串行接口输入输出实验

实验五串行接口输入/输出实验一、实验目的1、学习TEC-XP+教学计算机I/O接口扩展的方法;2、学习串行通信的基本知识,掌握串行通信接口芯片的设置和使用方法。

二、实验说明1、TEC-XP+教学计算机的I/O结构TEC-XP+教学计算机配置有COM1和COM2两个串行接口,其中COM1是TEC-XP+默认的标准接口,与PC终端相连接,监控程序负责对COM1进行初始化和使用管理。

COM2预留给用户扩展使用,监控程序不能识别COM2,也不对COM2进行任何操作,用户需要对COM2进行初始化和使用管理。

COM1和COM2均由可编程串行通信接口芯片intel8251芯片构成。

2、Intel8251的组成及控制和使用方法可编程串行通信接口芯片Intel8251支持同步和异步两种通信方式。

在异步方式下,波特率为0~19.2Kbps,数据位可为5、6、7或8位,可设1个奇偶校验位,1个起始位,1个、1.5个或2个停止位。

Intel8251内部有7个功能模块负责实现与CPU的数据交换以及与I/O设备的数据通信功能,内部有6个寄存器,其中与异步通信方式的有关的寄存器有5个,即模式寄存器、控制寄存器、状态寄存器、数据发送寄存器和数据接收寄存器。

模式寄存器的功能是设定intel8251的工作模式,控制寄存器的功能是控制intel8251的数据发送和接收等工作过程,状态寄存器的功能是反映intel8251数据发送和接收等工作的状态,各寄存器的格式如图5-1、图5-2和图5-3所示。

当CPU把需发送的数据写入数据发送寄存器后,intel8251将自动把数据组成帧并逐位发送出去。

Intel8251能自动完成数据接收操作,并把接收到的数据存放在数据接收寄存器中,CPU从中读取即可。

图5-1模式寄存器格式图5-2 控制寄存器格式图5-3 状态寄存器格式CPU对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。

对状态寄存器和数据接收寄存器只能读出,不能写入。

串行通信实验报告

串行通信实验报告

串行通信实验报告班级姓名学号日期一、实验目的:1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串口通讯的程序编写方法。

二、实验要求1.单机自发自收实验:实现自发自收。

编写相应程序,通过发光二极管观察收发状态。

2.利用单片机串行口,实现两个实验台之间的串行通讯。

其中一个实验台作为发送方,另一侧为接收方。

三、实验说明通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。

也可以将本机的TXD接到RXD上。

连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。

波特率定为600,SMOD=0。

在第二个实验中,将两台实验箱的RXD和TXD交叉相连。

编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。

通过运行程序观察存储单元内数值的变化。

四、程序甲方发送程序如下:ORG 0000HLJMP MAINORG 0023HLJMP COM_INTORG 1000HMAIN: MOV SP,#53HMOV 78H,#20HMOV 77H,00HMOV 76H,20HMOV 75H,40HACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1MOV SCON,#40H MOV IE,#00HCLR F0MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TIMOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TIMOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TIMOV SBUF,75H WAIT4: JNB TI,WAIT4CLR TIMOV IE,#90HMOV DPH,78HMOV DPL,77HMOVX A,@DPTRMOV SBUF,A WAIT: JNB F0,WAITRETCOM_INT: CLR TIINC DPTRMOV A,DPHCJNE A,76H,END1 MOV A,DPLCJNE A,75H,END1 SETB F0CLR ESCLR EARETEND1: MOVX A,@DPTRMOV SBUF,AEND乙方发送程序如下:ORG 0000HLJMP MAINORG 0023HLJMP COM_INTORG 1000H MAIN: MOV SP,#53HACALL RECEI HERE: SJMP HERE RECEI: MOV R0,#78H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1MOV SCON,#50H MOV IE,#90H CLR F0CLR 7FH WAIT: JNB 7FH,WAITCOM_INT: PUSH DPLPUSH DPHPUSH AccCLR RIJB F0,R_DATAMOV A,SBUFMOV @R0,ADEC R0CJNE R0,#74H,RETN SETB F0RETN: POP AccPOP DPHPOP DPLRETIR_DATA: MOV DPH,78HMOV DPL,77HMOV A,SBUFMOVX @DPTR,AINC 77HMOV A,77HJNZ END2INC 78HEND2: MOV A,76HCJNE A,78H,RETNMOV A,75HCJNE A,77H,RETNCLR ESCLR EASETB 7FHSJMP RETNEND五、实验过程中遇到的主要问题OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口HasRcv equ 20h.0 ; 接收标志位LEDBuf equ 40h ; 显示缓冲RCVBuf equ 50H ; 接收缓冲ORG 0000HLJMP START; 串行口中断程序ORG 0023HJNB TI,S0_RCLR TINOPSJMP S0_RETS0_R: ; 接收数据CLR RIMOV RCVBUF,SBUF ; 保存数据SETB HasRcv ; 提示收到数据NOPS0_RET:RETILEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, LoopretTestKey:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 输出线置为0mov dptr, #INmovx a, @dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(IN)mov r1, #00100000bmov r2, #6KLoop:mov a, r1 ; 找出键所在列cpl amovx @dptr, acpl arr amov r1, a ; 下一列movx a, @r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh ; 没有键按下, 返回0ffhsjmp ExitGoon1:mov r1, a ; 键值= 列X 4 + 行mov a, r2dec arl arl amov r2, a ; r2 = (r2-1)*4mov a, r1 ; r1中为读入的行值mov r1, #4LoopC:rrc a ; 移位找出所在行jc Exitinc r2 ; r2 = r2+ 行值djnz r1, LoopCExit:mov a, r2 ; 取出键码mov dptr, #KeyTablemovc a, @a+dptrmov r2, aWaitRelease:mov dptr, #OUTBIT ; 等键释放clr amovx @dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2retSTART:MOV SP, #60HMOV IE, #0 ; DISABLE ALL INTERRUPTMOV TMOD,#020H ; 定时器1工作于方式2 (8位重装)MOV TH1, #0F3H ; 波特率?2400BPS @ 12MHzMOV TL1, #0F3HANL PCON,#07FH ; SMOD 位清零orl PCON,#80hMOV SCON,#050H ; 串行口工作方式设置MOV LEDBuf, #0ffh ; 显示8.8.8.8.mov LEDBuf+1, #0ffhmov LEDBuf+2, #0ffhmov LEDBuf+3, #0ffhmov LEDBuf+4, #0mov LEDBuf+5, #0SETB TR1SETB ESSETB EA;mov sbuf,a;jnb ti,$MLoop:jb HasRcv, RcvData ; 收到数据?call DisplayLED ; 显示call TestKey ; 有键入?jz MLoop ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 通讯口输出键码MOV SBUF,ALJMP MLoopRcvData:clr HasRcv ; 是mov a, RcvBuf ; 显示数据mov b,aanl a,#0fh ; 显示低位mov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+5, amov a,bswap a ; 显示高位anl a,#0fhmov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+4, aljmp MLoopEND六、实验后的心得体会。

南京邮电大学微型计算机原理与接口技术实验报告书微机报告1

南京邮电大学微型计算机原理与接口技术实验报告书微机报告1

微型计算机原理与接口技术
实验报告书
班级155302 学号15530232 姓名高文俊
RESET ENDP
CODE ENDS
END BEG
三.上机结果及分析
我初步掌握了对系统定时源1CH中断进行计时实现长时间定时的方法,复习了DOS系统I/O功能的调用,并学会了BIOS键盘输入01H号功能的调用,对汇编程序的设计有了进一步的理解未来汇编只能在32位操作系统中才能更高的运行,不会轻易的出现错误,好在最后我也实现了我的实验目的,完成了用户登录的要求,完善了实验结果,而我自己对于错误密码也有一定程度的反应。

签名高文俊
时间:2017年5月31日。

微机原理串行电路实验报告

微机原理串行电路实验报告

实验内容:串行口通信实验1.设计CRC16程序。

CRC检错码是比较通用的一种串行检测码,其原理是:对一个K比特的数据块(或称报文),发送方生成一个N比特的序列,称为帧检验序列(FCS),这个序列与原K比特的数据块组成一个长为K+N比特的新序列(帧),一起发送;当接收方收到这个K+N比特的新序列(帧)后,用同样运算方法,若余数为0,则认为没有差错;否则有差错。

其中帧检验序列(FCS)采用原始发送数据块模二除以某些预定的数值。

而这种预定的数值称为生成多项式。

该实验中选用的生成多项式为:CRC-16:P(x)=x16+x15+x2+x0其硬件电路如下:下面编程用软件实现:程序框图如下:程序源代码如下:data segmentxx db 10010010Bzijie EQU 1 ;和上面xx为自定义数据yy dw 1000000000000101B ;17为校验多项式的后16位zz db 20 dup(?)aa dw 2data endscode segmentassume cs:code,ds:datamain proc nearmov ax,datamov ds,axmov bx,zijie ;字节计数器,计剩余字节mov si,offset(xx)mov dx,word ptr [si+bx-2] ;dx为计算所用寄存器mov ax,word ptr[si+bx-4] ;ax为备用寄存器p0:dec bxjnz p1 ;判断是否奇数个字节jmp p2p1:dec bxjmp p3p2:mov di,9p3:clctest dx,dxjs rp3dec dicmp di,0 ;此字节或字是否结束jz r0sal dx,1sal ax,1 ;移位jnc p4add dx,1p4:cmp di,0jnz p3r0:cmp bx,0jz rmov ax,word ptr[si+bx-2] ;将下一字节读入备用寄存器rp3:dec dicmp di,0jz r0sal dx,1sal ax,1jnc r6add dx,1r6:xor dx,yy ;满足条件进行异或jmp p3r:mov bp,offset(zz)mov [bp],dxmov si,offset(xx)mov cx,size xxinc bpp5:inc bp ;将结果写出mov ax,[si]mov [bp],axloop p5jmp $经验证运行单字节和两个字节是正确的,只要改变程序开头处的字节数和其对应的信息码,即可进行CRC的计算。

串行通讯实验报告

串行通讯实验报告

串行通讯实验报告串行通讯实验报告一、引言串行通讯是一种在计算机和通信领域中常见的数据传输方式。

与并行通讯相比,串行通讯一次只传输一个比特位,但由于其简单性和可靠性,广泛应用于各种领域。

本实验旨在通过实际操作串行通讯的硬件设备和软件实现,深入了解串行通讯的原理和应用。

二、实验目的1. 理解串行通讯的基本原理;2. 掌握串行通讯的硬件设备和软件实现方法;3. 学会使用串行通讯进行数据传输。

三、实验设备和材料1. 一台计算机;2. 串行通讯设备:串行数据线、串行通讯接口等;3. 实验软件:串行通讯调试助手等。

四、实验步骤1. 连接串行通讯设备:将串行数据线连接到计算机的串行通讯接口上;2. 打开串行通讯调试助手软件,并设置串行通讯的参数,如波特率、数据位、停止位等;3. 编写发送数据的程序:使用编程语言编写一个简单的程序,通过串行通讯接口发送数据;4. 编写接收数据的程序:编写另一个程序,通过串行通讯接口接收并处理发送的数据。

五、实验结果与分析经过实验,成功实现了串行通讯的数据传输。

通过串行通讯调试助手软件,可以观察到数据的发送和接收情况,确保数据的准确传输。

实验中,我们还尝试了不同的波特率和数据位设置,发现较高的波特率和较多的数据位可以提高数据传输的速度和精度。

六、实验总结串行通讯作为一种常见的数据传输方式,在计算机和通信领域中具有广泛的应用。

通过本次实验,我们深入了解了串行通讯的原理和应用,掌握了串行通讯的硬件设备和软件实现方法。

实验结果表明,串行通讯具有简单可靠的特点,可以实现高效的数据传输。

在实际应用中,我们需要根据具体需求选择合适的波特率和数据位设置,以确保数据的准确传输。

七、参考文献[1] 陈晓宏. 串行通讯原理与应用[M]. 清华大学出版社, 2010.[2] 张伟. 计算机通信与网络[M]. 电子工业出版社, 2018.八、致谢感谢实验室的老师和同学们对本次实验的支持和帮助。

实验过程中,他们提供了宝贵的意见和建议,使我们能够更好地完成实验任务。

串行通信的实验报告

串行通信的实验报告

串行通信的实验报告一、实验目的了解串行通信的基本概念和原理,并通过实际搭建串行通信系统,掌握串行通信的实验过程和操作方法。

二、实验设备1. 一台个人电脑2. 两台串行通信设备3. USB转串口线三、实验原理串行通信是将数据按位顺序传输,相对于并行通信来说,节省了传输线的数量。

串行通信一般采用帧的方式进行数据传输,包括起始位、数据位、校验位和停止位。

在实验中,我们将使用两台串行通信设备通过串口进行数据传输。

四、实验步骤1. 将一台串行通信设备连接到个人电脑的USB转串口线上,使用USB接口将其连接到个人电脑的USB接口上。

2. 打开串行通信设备的电源,并将其与个人电脑连接好。

3. 在个人电脑上打开串行通信软件,根据实际情况选择波特率、数据位、校验位和停止位等参数,并建立通信连接。

4. 在串行通信软件中,输入要发送的数据,并点击发送按钮。

5. 在另一台串行通信设备上观察接收到的数据。

五、实验结果与分析经过实验,我们成功地建立了串行通信系统,并进行了数据传输。

在发送端输入的数据在接收端得到了正确的接收,表明串行通信系统正常工作。

通过实验我们可以得出以下结论:1. 串行通信较并行通信更经济和节省资源,因为它只需一根传输线,而并行通信需要多根。

2. 串行通信的传输速率相对较慢,但可以通过改变波特率提高传输速度。

3. 串行通信的稳定性较强,不容易出现数据冲突和传输错误。

六、实验总结通过本次实验,我们了解到了串行通信的基本概念和原理,并通过搭建串行通信系统实际操作了一次串行通信。

实验结果表明串行通信系统正常工作,实验目的得到了满足。

在实验过程中,我们也注意到了一些问题,例如串行通信的传输速率较慢,不适合传输大量数据;同时,串行通信的配置稍显复杂,需要设置多个参数。

综上所述,本次实验使我们对串行通信有了更深入的理解,并有助于我们在日后的相关研究和应用中更好地应用和掌握串行通信技术。

微机原理-串行接口实验报告

微机原理-串行接口实验报告

实验报告一.实验任务采用UART IP 核,实现Nexys4 或Nexys4 DDR 实验板UART接口之间的通信。

要求当拨动开关时,将开关对应的值通过UART1发送到UART2,同时利用LED 灯指示UART2接收到的当前开关的值;当按下按键时,将按键对应的值通过UART2发送到UART1,同时利用数码管指示UART1接收到的当前按下的按键位置码(C,U,d,L,r)。

UART 波特率为9600bps。

二.硬件电路框图三.程序源代码#include "xil_io.h"#include "stdio.h"#include "xintc_l.h"#include "xgpio_l.h"#include "xuartlite_l.h"void UART_SR();void BtnHandler();void My_ISR() __attribute__ ((interrupt_handler));int main(){Xil_Out32(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_TRI_OFFSET,0x1f); //设定BUTTON为输入方式Xil_Out16(XPAR_GPIO_0_BASEADDR+XGPIO_TRI2_OFFSET,0x0); //LED灯输出Xil_Out32(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_IER_OFFSET,XGPIO_IR_CH1_MASK); //通道1允许中断Xil_Out32(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_GIE_OFFSET,XGPIO_GIE_GINTR_ENABLE_ MASK); //允许GPIO中断输出Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_CONTROL_REG_OFFSET,XUL_CR_ENABL E_INTR|XUL_CR_FIFO_RX_RESET|XUL_CR_FIFO_TX_RESET);//使能中断,清除RX,TX寄存器Xil_Out32(XPAR_AXI_INTC_0_BASEADDR+XIN_IER_OFFSET,XPAR_AXI_GPIO_2_IP2INTC_IRPT _MASK|XPAR_AXI_UARTLITE_3_INTERRUPT_MASK);//对中断控制器进行中断源使能Xil_Out32(XPAR_AXI_INTC_0_BASEADDR+XIN_MER_OFFSET,XIN_INT_MASTER_ENABLE_MA SK|XIN_INT_HARDWARE_ENABLE_MASK);microblaze_enable_interrupts();//允许处理器处理中断return 0;}void My_ISR(){int status;status=Xil_In32(XPAR_AXI_INTC_0_BASEADDR+XIN_ISR_OFFSET);//读取ISRxil_printf("0x%x\n",status);if((status&XPAR_AXI_UARTLITE_3_INTERRUPT_MASK)==XPAR_AXI_UARTLITE_3_INTERRUPT _MASK){UART_SR();}elseif((status&XPAR_AXI_GPIO_2_IP2INTC_IRPT_MASK)==XPAR_AXI_GPIO_2_IP2INTC_IRPT_MASK) BtnHandler(); //调用按键中断Xil_Out32(XPAR_AXI_INTC_0_BASEADDR+XIN_IAR_OFFSET,status);//写IAR}void UART_SR(){Xil_Out16(XPAR_GPIO_0_BASEADDR+XGPIO_DATA2_OFFSET,Xil_In32(XPAR_AXI_UARTLITE_3 _BASEADDR+XUL_RX_FIFO_OFFSET));}void BtnHandler(){unsigned short btncode;btncode=Xil_In8(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_DATA_OFFSET)&0x1f;while((Xil_In32(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_DATA_OFFSET)&0x1f)!=0){xil_printf("The pushed button's code is 0x%x\n",btncode);//打印输入的按键序号}switch(btncode){case 0x1:Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_TX_FIFO_OFFSET,btncode);break;case 0x2:Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_TX_FIFO_OFFSET,btncode);break;case 0x4:Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_TX_FIFO_OFFSET,btncode);break;case 0x8:Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_TX_FIFO_OFFSET,btncode);break;case 0x10:Xil_Out32(XPAR_AXI_UARTLITE_3_BASEADDR+XUL_TX_FIFO_OFFSET,btncode);break;default:break;}Xil_Out32(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_ISR_OFFSET,Xil_In32(XPAR_AXI_GPIO_2_B ASEADDR+XGPIO_ISR_OFFSET)); //清除中断}四.实验结果五.实验心得在这个实验当中,主要是运用UART模块实现Nexys4 DDR 实验板UART接口之间的通信,在实验进程中,硬件平台搭设时,需要增加新的UART IP核作为标准输入输出接口,另外在管脚约束时,需要自己重新定义。

微机系统实验报告.doc

微机系统实验报告.doc

微机系统实验报告(XXXX第一学期)课程名称微机原理与接口技术实验名称(1)消除语法错误(2)微机系统串口测试实验时间12月11日XXXX南京邮电大学教师李爱群学生姓名巨黄杰班级编号B14020230电子科学与工程学院电子科技字模课文(1)实验名称排除语法错误教师李爱群实验类型验证实验课时2实验时间2016.11。

首先,实验的目的和要求进一步学习汇编语言源程序的编辑、汇编、目标文件的完整性和可执行文件的执行过程;掌握编辑软件的使用,MASM,链接和调试;掌握汇编语言的语法规则。

二、实验环境(实验设备)未来汇编软件windows 7三、实验的原则和内容1.实验【1.3.1】要求通过比较法完成8位二进制数转换为十进制数的屏幕显示功能。

给定的程序中有许多语法错误。

需要按原样编辑源程序。

组装后,根据TASM给出的错误信息修改源程序,直到没有语法错误。

然后链接并执行相应的可执行文件。

屏幕上会显示正确的执行结果:25 9=34,修改程序如下:. 486数据段使用16总和数据库?MESG数据库' 25 9='数据库0,0 ',$' N1数据库9N2数据库25数据结束代码段使用16假定条件为CS:代码,DS :数据开始: MOV轴,数据MOV轴,MOV BX轴,偏移量总和MOV轴,N1移动轴,N2添加轴,移动轴[BX],AH调用昌移动轴,9移动轴DX,偏移量MESG INT 21H移动轴AH,4CH INT 21H昌进程最后3360凸轮轴位置字节PTR [BX]首先,实验的目的和要求进一步学习汇编语言源程序的编辑、汇编、目标文件的完整性和可执行文件的执行过程;掌握编辑软件的使用,MASM,链接和调试;掌握汇编语言的语法规则。

二、实验环境(实验设备)未来汇编软件windows 7三、实验的原则和内容1.实验【1.3.1】要求通过比较法完成8位二进制数转换为十进制数的屏幕显示功能。

给定的程序中有许多语法错误。

南邮 微机接口-[CH10]微机系统串行通信接口(打印版)

南邮 微机接口-[CH10]微机系统串行通信接口(打印版)

2015/9/8
21
2015/9/8
22
微型计算机原理与接口技术
串行通信基础
微型计算机原理与接口技术
串行通信基础
(4) TTL电平和RS-232C电平的转换电路 使用电平转换芯片MAX3243进行DTE类串行接口电平转换

(4) TTL电平和RS-232C电平的转换电路 使用电平转换芯片MAX3238进行DCE类串行接口电平转换
8250内部结构
微型计算机原理与接口技术
8250内部寄存器功能描述 (4) [BASE+2]:中断识别寄存器IIR(只读)
8250内部结构
D1 ETBEI
D0 ERBI
D7 0
D6 0
D5 0
D4 0
D3 IID2
D2 IID1
(3) 用RS-232C接口连接系统 调制解调器连接称为远程连接,通过Modem接入电话网,可 连接世界上任何接入电话网络的主机,理论上连接距离不受 限制。如下图所示:
2015/9/8
19
2015/9/8
20
5
微型计算机原理与接口技术
串行通信基础
微型计算机原理与接口技术
(4) TTL电平和RS-232C电平的转换电路 使用专用电平转换芯片MAX232/3232进行转换
15
2015/9/8
16
4
微型计算机原理与接口技术
串行通信基础
微型计算机原理与接口技术
串行通信基础
(2) 信号电平标准(电气特性) 标准规定: 逻辑“1”信号,电平在 –3V ~ -15V 之间; 逻辑“0”信号,电平在 +3V ~ +15V 之间; 上述电平标准被称为“负逻辑”。 在使用RS-232C标准与微机接口时,需要将TTL电平(0 ~ 5V)与RS-232C电平进行转换。

南邮交换技术实验报告成品[五篇范文]

南邮交换技术实验报告成品[五篇范文]

南邮交换技术实验报告成品[五篇范文]第一篇:南邮交换技术实验报告成品实验一脉冲与双音多频信号的接收实验(实验指导书中“实验五”)一、实验目的1、了解脉冲信号与双音多频信号在程控交换系统中的发送和接受方法。

2、熟悉该电路的组成及工作过程。

二、实验仪器1、程控交换实验箱一台2、电话单机两台三、实验内容与步骤1、实验准备:连接电话单机;检查实验箱与 PC机的串口连线。

2、打开实验箱电源,电源指示灯亮,正常状态下,CPU工作指示灯间歇闪动,+5V、-5V、-48V开关电源灯亮,25Hz信号灯闪亮,L11-L14 灯亮,串行通信指示灯亮,四路话机处于待机状态。

之后启动 PC 机,选择进入实验界面。

3、脉冲信号发号收号实验1)设置话机拨号方式“P”。

2)主叫取机,PC 上显示出主叫号码。

19-1 3)主叫听到拨号音后,拨被叫号码。

拨号同时观察 PC界面上脉冲拨号波形,当有键按下时可看到拨号脉冲波形。

拨号完毕后PC 界面上显示被叫号码(只认前两位拨号)4、DTMF 信号的发送、接收、编/解码实验1)设置话机拨号方式“T”。

2)主叫取机,PC 上显示出主叫号码。

3)主叫听到拨号音后,拨被叫号码。

4)拨号同时观察 PC 界面上的双音频信号波形并记录: DTMF 状态:DTMF 状态检测点。

当有键按下时,该点为高电平;DTMF信号消失后,该点则为低电平。

收号中断:DTMF 发号中断检测点。

当无键按下时,该点为低电平;有键按下时是高电平,同时DTMFIN灯亮。

DTMF 输入: DTMF 拨号检测点。

当有键按下时有双音频信号;无键按下时无信号。

19-24)按键同时观察发光二极管L11-L14 与所按键值的关系(BCD 码)。

数码管同步显示电话拨号。

19-3看是否满足表 5-4 所述的对应关系。

拨号完毕后,实验界面上显示被叫号码。

四、心得体会第一个实验相对比较简单,在了解仪器的基础上很容易就能做出实验结果。

实验过程相对来说比较简单,在仪器充足的情况下并不难实现。

微机原理实验报告串行通信和模数转换

微机原理实验报告串行通信和模数转换

东南大学《微机实验及课程设计》实验报告实验七串行通信实验八数模模数转换《微机实验及课程设计》实验报告学号实验七串行通信一. 实验目的与内容(概述)1.了解串行通信的基本原理,认识串行收发过程。

2.掌握串行接口芯片8251的工作原理和编程方法。

二. 基本实验原理(或基本原理)(含简单文字叙述,关键电路原理图,程序框图)8251的编程分为初始化和工作两部分。

初始化主要是约定数据通信规范,工作编程则是实现数据的发送和接接收。

8251的控制口地址为2B9H,数据口地址为2B8H。

8253计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接脉冲源1MHz,波特率选1200,波特率因子选16,则计数器初值为52.收发采用查询方式。

程序框图:三. 方案实现与测试(或调试)(含实验步骤—分步进行-调试-测试,关键/重要的程序片段,程序框架无需)1.按图连接电路,其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD直接相连。

2.编写测试程序,初始化8251,实现连续发送固定字符。

3.编程实现从键盘上输入一个字符,将其ASCⅡ码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。

电路图如下:实验现象:从键盘输入字符a,收到字符,并在屏幕上显示c。

因为发送时将a的ASCⅡ码加1,接收时又将ASC Ⅱ码加1接收,所以显示的字符为c。

实验中现象:重要程序片段:发送是否准备好,是,则从键盘上读入一字符。

waiti:mov dx,io8251bin al,dxtest al,01jz waitimov ah,01int 21h检查接收是否准备好,没有则等待,准备好,则接收next:mov dx,io8251bin al,dxtest al,02jz nextmov dx,io8251ain al,dxinc almov dl,almov ah,02int 21hjmp waiti四.分析与总结(总结现象,分析原因和结果,评价实验(设计/效果/调试/测试方法))《微机实验及课程设计》实验报告 学号通过实验,进一步了解了串行通信的原理以及通过串行方式发送和接收数据的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合
实验学时
2
实验时间
2016/11/17
一、实验目的和要求
学习串行接口8250的工作原理及编程和中断程序的设计,运用微机知识点,给出设计方案和程序框图,提前编制源程序。要求字符发送采用查询方式,字符的接收采用中断方式。
二、实验环境
PC,Windows系统,TPC-486EM_32位微机原理及接口技术实验系统
南邮通达微机系统串行口的测试实验报告
实验报告
(2016 / 2017学年第一学期)
课程名称
微型计算机原理与接口技术
实验名称
微机系统串行口的测试
实验时间
2016

11

17

指导单位
南京邮电大学
指导教师
许建
学生姓名
班级学号
学院(系)
通信工程
专业
信息工程
实验报告
实验名称
微机系统串行口的测试
指导教师
许建
实验类型
三、实验原理及内容
【实验3】编写程序对微机系统的串行口进行自发自收内环测试,从键盘键入发送数据,屏幕显示接收数据。
.586
DATASEGMENTUSE16
MESGDB‘14110214CYB’
COUNTEQU $-MESG
DATAENDS
CODESEGMENTUSE16
ASSUMECS:CODE,DS:DATA
OUTDX,AL
MOVDX,AL
MOVDX,3FCH
MOVAL,10H
OUTDX,AL
RET
I8250ENDP
CODEENDS
ENDBEG
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
通过这次,我学会了串行接口8250的工作原理及编程和中断程序的设计,再利用微机系统串行通信知识成功进行了微机系统串行口的测试。书本知识与实践的结合使我体会更加深刻。
BEG:MOVAX,DATA
MOVDS,AX
CALLI8250
MOVBX,OFFSETMESG
MOVCX,COUNT
SCANS:MOVDX,3FDH
INAL,DX
TESTAL,20H
JZSCANS
MOVDX,3F8H
MOVAL,[BX]
OUTDX,AL
SCANR:MOVDX,3FDH
INAL,DX
TESTAL,21H
JZSCANR
MOVDL,AL
MOVAH,2
INT21H
MOVDL,ODH
INT21H
INCBX
LOOPSCANS
MOVAH,4CH
INT21H
I8250PROC
MOVDX,3FBH
MOVAL,80H
OUTDX,ALMOVDX,3F9H
MOVAL,0
OUTDX,AL
MOVDX,3F8H
MOVAL,60H
五、指导教师评分
成绩
批阅人
日期
2016.12
相关文档
最新文档