实验7串行接口输入输出实验
- 格式:doc
- 大小:99.00 KB
- 文档页数:10
目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (34)实验八数码管动态显示实验 (39)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。
二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。
三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。
作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。
例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。
5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。
课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二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两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。
实验报告实验名称__8251A串行口实验____课程名称__微机原理与接口技术__院系部: 专业班级:学生姓名:学号:同组人: 实验台号:指导教师: 成绩:实验日期:华北电力大学一、实验目的及要求:(1)了解串行通信的一般原理和8251A的工作原理。
(2)掌握8251A的编程方法。
二、仪器用具:三、实验原理:1.串行通信的原理串行通信是通过一位一位地进行数据传输来实现通信。
具有传输线少,成本低等优点,适合远距离传送;缺点是速度慢。
完成串行通信任务的接口称为串行通信接口,简称串行接口。
串行接口作为输入时,完成串行到并行格式转换,作为输出时,完成并行到串行格式转换。
图1是串行通信的一般模型。
图1 串行通信的一般模型2.8251A的工作原理825lA是可编程的串行通信接口芯片,是Intel公司生产的一种通用同步/异步数据收发器(USART),可工作在同步方式,也可工作在异步方式,且能进行出错检测。
其内部结构框图如图2所示。
图2 8251A内部结构框图由图可知,8251A由数据总线缓冲器、读/写控制逻辑、调制/解调器控制逻辑、发送缓冲器、发送控制器、接收缓冲器、接收控制器等组成。
(1)在同步方式时,每个字符可定义为5、6、7或8位。
两种方法实现同步,由内部自动检测同步字符或由外部给出同步信号。
允许同步方式下增加奇/偶校验位进行校验。
(2)在异步方式下,每个字符可定义为5、6、7或8位,用1位作奇偶校验。
时钟速率可用软件定义为波特率的l、16或64倍。
另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位、1.5位或2位停止位。
(3)能进行出错检测。
带有奇偶、溢出和帧错误等检测电路,用户可通过输入状态寄存器的内容进行查询。
3.8251A的编程(1)8251A的编程地址:8251A只需要两个端口地址,一个用于数据端口,一个用于控制端口。
数据输入输出用读信号RD和写WR信号区分;状态端口只能读不能写,控制端口只能写不能读。
实验七 8250串口实验一、实验目的1、熟悉串行通信的一般原理和8250的工原理。
2、了解RS--232串行接口标准及连接方法。
3、掌握8250芯片的编程方法。
二、实验设备MUT—Ⅲ型实验箱、8086CPU模块。
三、实验原理介绍1.实验原理图见8250串行接口电路。
由MAX232完成RS232电平和TTL电平的转换,由8250完成数据的收发。
8250内部有10个寄存器,分别对应着不同的IO口地址。
对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。
由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。
8250实验电路的所有信号均已连好。
8250串行接口电路(1)电路原理:该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。
原理图如下:(2)电路测试:见整机测试2.程序框图(8250.ASM)3.程序代码;*******************************************code segment ;define data segmentassume cs:codeorg 0100hstart:mov bx,0480hmov dx,bxadd dx,6mov ax,80hout dx,axmov dx,bxmov ax,0ch ;000ch---9600 ,clk=4.77MHZ/4 ; AL=4770000/16/9600/4=8out dx,axadd dx,2mov ax,0hout dx,axadd dx,4mov ax,07 ;no pe,8 bit, 1 stopout dx,axmov dx,bxadd dx,2 ;no interuptmov ax,0out dx,axadd dx,8hin ax,dxmov dx,bxin ax,dxcrd: call recvcall sendjmp crdsend: push axmov bx,0480hmov dx,bxadd dx,0ahin ax,dxtest ax,20hjnz recv2pop axjmp sendrecv2: pop axmov dx,bxout dx,axretrecv: mov bx,0480hmov dx,bxadd dx,0ahin ax,dxtest ax,01hjnz recv1jmp recvrecv1: mov dx,bxin ax,dxretcode ends ;end of code segmentend start ;end assembly3.实验提示实验中,通讯波特率选用9600bps。
北京林业大学11学年—12学年第 2 学期计算机组成原理实验任务书专业名称:计算机科学与技术实验学时: 2课程名称:计算机组成原理任课教师:张海燕实验题目:实验七串行接口输入输出实验实验环境:TEC-XP+教学实验系统、PC机实验内容1.串行接口输入输出;2.串行接口扩展。
实验目的学习串行口的正确设置与使用。
实验要求1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。
2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果;3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。
4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。
善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。
必要知识串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。
从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。
接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。
串行接口用于执行数据的输入输出操作。
一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。
《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。
掌握各种数制之间的转换是一种基本功。
我们将给定的一个二进制数,转换成二十进制(BCD)码。
将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。
首先进行仿真器的设置,选择使用伟福软件模拟器。
2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。
用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。
修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
第1篇一、实验目的1. 理解输入输出设备的基本概念和功能。
2. 掌握常用输入输出设备的使用方法。
3. 熟悉计算机系统中的输入输出操作。
二、实验环境1. 硬件环境:计算机、键盘、鼠标、显示器、打印机等。
2. 软件环境:操作系统(如Windows、Linux等)、文本编辑器等。
三、实验内容1. 输入设备实验(1)键盘输入实验1)打开计算机,进入操作系统界面。
2)使用键盘输入一段文字,如:“Hello, World!”。
3)将输入的文字保存到文本文件中。
(2)鼠标输入实验1)打开计算机,进入操作系统界面。
2)使用鼠标点击、拖拽等操作,完成以下任务:a. 打开一个应用程序。
b. 在应用程序中创建一个文本框,输入文字。
c. 使用鼠标选择文字,进行复制、粘贴等操作。
2. 输出设备实验(1)显示器输出实验1)打开计算机,进入操作系统界面。
2)观察显示器显示的界面,如桌面、应用程序窗口等。
3)在应用程序中编辑文字,观察文字在显示器上的显示效果。
(2)打印机输出实验1)连接打印机,确保打印机正常工作。
2)打开一个文档,如Word文档。
3)将文档发送到打印机打印。
3. 输入输出设备综合实验1)使用键盘输入一段文字,如:“This is a test.”2)将文字复制到文本框中。
3)使用鼠标将文本框中的文字拖拽到打印机图标上,将文字打印出来。
四、实验结果与分析1. 输入设备实验结果与分析(1)键盘输入实验:通过键盘输入文字,成功保存到文本文件中。
(2)鼠标输入实验:使用鼠标完成各项操作,如打开应用程序、创建文本框、复制粘贴等。
2. 输出设备实验结果与分析(1)显示器输出实验:显示器正常显示操作系统界面和应用程序窗口,文字在显示器上显示清晰。
(2)打印机输出实验:打印机成功打印出文档,文字清晰可辨。
3. 输入输出设备综合实验结果与分析通过键盘输入文字,复制到文本框,最后使用鼠标将文字拖拽到打印机图标上打印,实验成功完成。
74ls164与单片机的串并转换(串转并\串进并出)
74LS164串转并实验本实验是用74LS164把输入的串行数转换成并行数输出,74LS164为串行输入并行输出移位寄存器,其引脚图及功能如下:
A、B:串行输入端;
QA~QH:并行输出端;
CLR:清零端,低电平有效;
CLK:时钟脉冲输入端,上升沿有效。
实验采用单片机串行工作方式0和P1端口两种方式串行输出数据。
串行口工作方式0时,数据为8位,从RXD端输出,TXD端输出移位信号,其波特率固定为Fosc/12。
在CPU 将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将状态寄存器的TI位置1,TI必须由软件清零。
串行口工作方式0数据/时钟是自动移位输出,用P1端口输出数据时,要编程位移数据,每输出一个数据位,再输出一个移位脉冲。
内容及步骤:
本实验需要用到单片机最小系统(F1区)、十六位逻辑电平显示(I4区)和74LS164(G3区)。
1、选用89C51单片机最小应用系统模块,用八位数据线连接74LS164的并行输出JD5G 与十六位逻辑电平显示模块JD2I,将74LS164的串行输入端A/B(1和2脚)接到RXD 上,CLK接到TXD上,CLR接INT0。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加TH23_74164.ASM 源程序,进行编译,直到编译无误。
4、全速运行程序,观察发光二极管亮灭情况,先右移动两次,再左移动两次,然后闪烁两次。
关于串口的实验报告1. 实验目的本实验的目的是通过学习并实践串口通信的基本原理和方法,加深对串口通信的理解,掌握串口通信的使用技巧和开发工具。
同时,了解串口通信在实际应用中的重要性和应用场景。
2. 实验原理串口是一种用于计算机与外部设备之间进行数据通信的接口标准。
在计算机中,串口通常通过RS-232或RS-485等标准来实现。
串口通信采用的是异步通信方式,即接收方和发送方的时钟不同步,通过发送和接收的数据包中的控制信息来实现数据的传输。
串口通信的基本原理如下:- 串口通信通过一个物理接口连接计算机和外部设备。
- 通信数据被分为一个个字节进行传输,每个字节由一定的控制信息和实际数据组成。
- 发送方通过发送字节的方式将数据发送给接收方。
- 接收方通过接收字节的方式将数据接收并进行处理。
3. 实验步骤步骤一:准备实验环境为了进行串口通信的实验,我们需要准备以下工具和设备:- 一台计算机- 一个串口转USB转换器- 一个外部设备(如Arduino、传感器等)步骤二:安装串口驱动程序在开始实验之前,我们需要安装串口转USB转换器所需的驱动程序。
驱动程序的安装方式因不同的设备而有所差异,一般可以通过官方网站下载并按照说明进行安装。
步骤三:编写串口通信程序根据所使用的编程语言和开发工具,编写一个简单的串口通信程序。
该程序应包括以下功能:- 打开指定的串口端口- 配置串口的波特率、数据位、停止位等参数- 循环读取串口接收缓冲区中的数据,并进行处理- 将需要发送的数据写入串口发送缓冲区步骤四:测试串口通信将串口转USB转换器插入计算机,并将外部设备连接至串口转USB转换器。
运行编写好的串口通信程序,并观察实验结果。
测试串口通信的方法可以有很多,可以通过发送和接收数据包来验证通信是否正常。
步骤五:总结与分析根据实验结果,总结并分析串口通信的性能和应用场景。
可以考虑以下问题:- 串口通信在哪些领域得到了广泛应用?- 串口通信有哪些特点和优势?- 在实际应用中,串口通信可能遇到哪些常见问题,如何解决?4. 实验结论通过本实验,我们了解了串口通信的基本原理和实际应用方法。
实验7 CC2530串口控制器编程本实验完成时间:第8周、第9周一、实验目的1、CC2530串口控制器的原理;2、掌握CC2530串口控制器的编程步骤;二、实验任务从PC 机上的串口调试助手(超级终端)输入的字符能够发送给CC2530,CC2530再把所接收到的字符“原路”回传给对方。
直观的效果:当串口调试助手(超级终端)激活时,键盘上输入的字符能够在串口调试助手的窗口那个回显。
三、实验原理1、何谓超级终端和串口调试助手超级终端:一个和uart 串口相关联的窗口应用程序。
它能够从uart 串口上所接收到的字符显示出来,同时当该窗口激活时能够把键盘所键入的字符从串口发送出去。
超级终端能够从串口收发字符成功的前提是串口通信双方所约定的收发格式一致。
它和一般所说的串口调试助手类似,但有区别:超级终端不会以16进制的形式显示所接收的字符编码;串口调试助手不会把键盘输入的字符实时从串口发送出去,需要点击手动发送。
串口调试助手:桌面上有串口聊天助手,如果不能打开,可以如图1在S503的D 盘/试验箱资料光盘/工具软件/串口工具和驱动/串口聊天助手,打开后如图2所示。
图1串口聊天助手位置图2 串口聊天助手界面图打开任意一个即可!设置参数2、实验室GEC-CC2530开发板的uart串口接口(USB转串口,红色圈圈)如图3:图3 单片机开发板的USB转串口该接口和cc2530所连接的电路图如下:由该图不难得知:P0_3作为串口的发送管脚;P0_2作为串口的接收管脚;P0_5、P0_4作为硬件流控用的,一定要注意,我们平时见到的串口的交叉线都只用到了收、发、地三根线,所以在串口设置是都禁止硬件流控!由此可见,GEC-CC2530所占的资源就是P0_3(发送管脚)、P0_2(接收管脚),更进一步结合CC230数据手册的GPIO设备管脚映射表分析:可知:GEC-CC2530串口——> P0_3(发送管脚)、P0_2(接收管脚)——>uart 0 3、cc2530串口uart编程步骤(1)总线初始化,相关SFR如下PERCFG P2DIR PxSEL UxCSR2、数据链路格式化(数据位、停止位、校验位、波特率);UxUCR UxGCR UxBAUD在3、读写串口收发寄存器UxDBUF 、RX_BYTE(UxCSR的第2位) 、TX_BYTE(UxCSR的第1位) RX_BYTE:接收字节状态,0:没有收到字节;1:准备好接收字节TX_BYTE:传送字节状态,0:字节没有被传送;1:字节准备被传送我们读取数据时,RX_BYTE置1,然后读UxDBuf;我们发送数据时,TX_BYTE置1,且将准备传送的字节写入到UxDBUF;四、实验步骤1、领取单片机开发板,编写代码,先编译下载,如图4下载时需要接下载器,下载好之后,断开下载器和方口线,再将方口线直接接在单片机开发板的USB 转串口上如图5,如果电源指示灯不亮,则将RST旁边的拨码开关打到OFF位置。
实验五串行接口输入/输出实验一、实验目的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对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。
对状态寄存器和数据接收寄存器只能读出,不能写入。
实验一并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。
二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。
P1口作为输出,接8个发光二极管D1~D8经限流电阻分别接至8个引脚。
本实验仿真电路图、流程图如下:三、实验代码:#include<reg51.h>#include<intrins.h> //移位库函数包含于此头文件中void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main(){ unsigned char i,sel;while(1){ sel=0xfe;for(i=0;i<=8;i++){ P1=sel; //显示变量赋给P1口delay(50000); //延时sel=_crol_(sel,1); //改变显示变量}}}四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。
实验二C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。
二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。
本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include <reg51.h>void main(){ char a;do{ P1=0xff;a=P1;a=a&0x03;switch(a){ case 0:P2=0x0e;break;case 1:P2=0x0d;break;case 2:P2=0x0b;break;case 3:P2=0x07;break;}}while(1);}四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。
实验三串行口通信实验一、实验目的1、掌握单片机串行口的工作原理及工作方式;2、掌握单片机串行口波特率的设置方法;3、掌握单片机串行口查询方式程序的设计方法。
二、实验内容及要求1、单片机的串行口经RS-232 电平变换后和PC 机相连;2、单片机系统的晶振频率选择11.0592MHz,串行口设置为9600bps、无校验位、8 位数据位、1 位停止位(简记为N81)模式;3、单片机采用查询方式收发数据,将PC 机送来的除回车/换行之外的数据加1 后送回。
三、实验设备硬件:PC 机,nKDE-51 单片机实验教学系统;软件:Keil C51 集成开发环境,FlashMagic 单片机程序烧写软件。
四、实验原理及步骤MCS-51 串行口的结构、原理及各种工作方式参阅教材相关内容。
本实验使用串行口工作方式1,通过定时器1(T1)产生波特率时钟,通过查询串行口收发中断标志RI 和TI 来判断单片机串行口数据收发的状态。
步骤如下:1、创建新项目:Project—New Project—命名、存储—CPU类型(philips P89C52X2)2、创建新程序:编译程序—完成后保存为“.c”格式3、添加程序:Target1—Source Group—add……(程序)4、检测程序:Project—Build Target5、选择烧录程序的方式(右键点target1--opption):output—Creat Execulate:Dubug Information Browse、Creat HexDebug 右侧选择use “Keil Monitor-51 Driver”6、选择程序执行点:在Debug程序烧路后,在开始执行的程序断点上鼠标右键—Set Program Counter7、Go执行五、实验过程1. 电路连接PC 机串行口为RS-232 标准的串行接口,用-15V~-5V 表示1,+5V~+15V 表示0,而单片机的串行口为TTL 电平,+5V 表示1,0V 表示0,因此单片机的串行口不能直接和PC 机的串行口相连,必须经过电平变换才能和PC 机通信。
实验七、UART串行数据通信实验1(查询与中断方式)一、实验目的通过实验,掌握UART查询与中断方式的程序的设计。
二、实验设备●硬件:PC 机一台●LPC2131教学实验开发平台一套●软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境。
●EasyARM工具软件。
三、实验原理EasyARM2131 开发板上,UART0 的电路图如图8.1 所示,当跳线JP6 分别选择TxD0和RxD0 端时方可进行UART0 通讯实验。
图8.1 UART0 电路原理图四、实验内容实验内容1使用查询方式,通过串口0 接收上位机发送的字符串如“Hello EasyARM2131!”,然后送回上位机显示,主程序以及各子程序流程如图8.2 所示。
(改写发送内容,字符个数不同)。
说明:需要上位机(PC机)串口终端如EasyARM.exe 软件。
使用串口延长线把LPC2131教学实验开发平台的CZ2(UART0)与PC机的COM1 连接。
PC 机运行EasyARM 软件,设置串口为COM1,波特率为115200,然后选择【设置】->【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口。
图8.2 串口实验相关程序流程图1.实验预习要求①研读LPC2000 UART工作原理与控制章节,注意FIFO 接收情况的特性。
②了解LPC2131教学实验开发平台的硬件结构,注意串口部分的电路。
2.实验步骤①启动ADS 1.2,使用ARM Executable Image for lpc2131工程模板建立一个工程DataRet_C。
②在user 组中的main.c 中编写主程序代码,在项目中的config.h 文件中加入#include <stdio.h>。
③选用DebugInFlash生成目标,然后编译连接工程。
④将EasyARM2131开发板上的JP6跳线分别选择TxD0和RxD0端时,方可进行UART0通信实验。
(完整版)微机原理与接⼝技术作业(含答案)o d 浙江⼤学远程教育学院《微机原理与接⼝技术》课程作业姓名:学号:年级:学习中⼼:第2章 P522.80C51单⽚机引脚有哪些第⼆功能?第⼀功能第⼆功能P0.0~P0.7 地址总线Ao ~A7/数据总线D0~D7 P2.0~P2.7 地址总线A8~A15 P3.0 RXD(串⾏输⼊⼝) P3.1 TXD(串⾏输出⼝) P3.2 INT0外部中断0) P3.3 IINT1(外部中断1)P3.4 TO(定时器/计数器0的外部输⼊) P3.5 T1(定时器/计数器0的外部输出) P3.6 WR(外部数据存储器或I /O 的写选通)P3.7 RD 外部数据存储器或I /O 的读选通)4.80C51单⽚机的存储器在结构上有何特点?在物理上和逻辑上各有哪⼏种地址空间?访问⽚内RAM 和⽚外RAM 的指令格式有何区别?1、80C5l 单⽚机采⽤哈佛结构,即将程序存储器和数据存储器截然分开,分别进⾏寻址。
不仅在⽚内驻留⼀定容量的程序存储器和数据存储器及众多的特殊功能寄存器,⽽且还具有较强的外部存储器扩展能⼒,扩展的程序存储器和数据存储器寻址范围都可达64 KB 。
2、在物理上设有4个存储器空间·⽚内程序存储器; ·⽚外程序存储器;·⽚内数据存储器;. ·⽚外数据存储器。
在逻辑上设有3个存储器地址空间●⽚内、⽚外统⼀的64 KB 程序存储器地址空间。
●⽚内256字节(80C52为384字节)数据存储器地址空间。
⽚内数据存储器空间在物理上⼜包含两部分:●对于80C51型单⽚机,0~127字节为⽚内数据存储器空间;128~255字节为特殊功能寄存器(SFR)空间(实际仅占⽤了20多个字节)。
●对于80C52型单⽚机,O ~127字节为⽚内数据存储器空间;128~255字节共128个字节是数据存储器和特殊功能寄存器地址重叠空间。
⽚外64 KB 的数据存储器地址空间。
信息工程学院实验报告课程名称:单片机原理及接口实验项目名称:串口通信实验实验时间:2017.5一、实验目的:1.了解什么是串口,串口的作用等。
2、了解串口通信的相关概念3、利用keil软件,熟悉并掌握中串口通信的使用4、通过实验,熟悉串口通信程序的格式,串口通信的应用等二、实验原理1、串口通信概念:单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。
如下图所示。
2、串口数据通信方式及特点★数据通信方式有两种:并行通信与串行通信★并行通信:所传送数据的各位同时发送或接收,数据有多少位就需要多少根数据线。
特点:速度快,成本高,适合近距离传输如计算机并口,打印机,8255 。
★串行通信:所传送数据的各位按顺序一位一位地发送或接收。
只需一根数据,一根地线,共2 根特点:成本低,硬件方便,适合远距离通信,传输速度低。
串行通信与并行通信示意图如下:成绩:指导老师(签名):3、串行通信基本格式①单工通信:数据只能单向传送。
②半双工通信:通信是双向的,但每一时刻,数据流通的方向是单向的。
③全双工通信:允许数据同时在两个方向流动,即通信双方的数据发送和接收是同时进行的。
4、异步串行通信/同步串行通信①异步串行通信:异步串行通信采用如下的帧结构:起始位+ 8位数据位+ 停止位或起始位+ 9位数据位+ 停止位其中:起始位为低电平,停止位为高电平。
优点:硬件结构简单缺点:传输速度慢②同步串行通信:在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~2个字节)指示一帧的开始,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符合,下面就连续按顺序传送若干个数据,最后发校验字节。
见下图:5、串行通信过程与UART基本的计算机异步串行通信系统中,两台计算机之间通过三根信号线TxD、RxD和GND连接起来,TxD与GND构成发送线路,RxD与GND构成接收线路。
北京林业大学11学年—12学年第 2 学期计算机组成原理实验任务书专业名称:计算机科学与技术实验学时: 2课程名称:计算机组成原理任课教师:张海燕实验题目:实验七串行接口输入输出实验实验环境:TEC-XP+教学实验系统、PC机实验内容1.串行接口输入输出;2.串行接口扩展。
实验目的学习串行口的正确设置与使用。
实验要求1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。
2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果;3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。
4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。
善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。
必要知识串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。
从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。
接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。
串行接口用于执行数据的输入输出操作。
一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。
接口芯片与输入输出设备之间的数据传送过程无需另外管理,会自动完成。
教学计算机使用8位的IO端口地址,安排在IN和OUT指令的低位字节,指令的高8位用作指令操作码,16为的指令编码全部占满,已经不能再指定要使用的通用寄存器,最终决定用对IN和OUT指令默认使用运算器中的R0完成输入输出操作。
IO地址端口的高4为(最高一位的值一定为1)用于通过译码电路产生接口芯片的8个片选信号,低4位用于选择一个芯片内最多16个寄存器。
教学计算机中,只为每个串行口芯片地址分配了两个地址,第一路串行接口的端口地址为80H/81H,第二路串行接口的端口地址可以由用户从90/91~F0/F1这8对中选择,把译码器的一个输出连接到接口芯片的片选信号引脚。
两个端口地址如何能够按照选择接口芯片内的4个寄存器呢?请注意,4个寄存器中的两个只用于输入,仅对IN 指令有用,另外两个只用于输出,仅对OUT指令有用。
2个端口地址和2条输入输出指令有如下4种组合,分别实现如下4项功能:IN 80:完成从接口芯片输入数据缓冲器读出8位数据并传送到R0寄存器低位字节;OUT 80:完成把R0寄存器低位字节的8位数据写入到接口芯片的输出数据缓冲器;IN 81:完成从接口芯片状态寄存器读出8位接口状态信息并传送到R0寄存器低位字节;OUT 81:完成把R0寄存器低位字节的8位命令信息写入到接口芯片的命令寄存器。
可以看到,偶数地址用于输入输出数据,奇数地址用于输入输出状态或命令信息。
实验说明1.TEC-XP+配置了两个串行接口COM1 和COM2,其中COM1 口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC 机或终端相连;而COM2 口,留给用户扩展用。
2.查阅有关书籍,了解串行通信接口芯片8251 的工作原理;了解8251 复位、初始化、数据传输的过程。
提醒注意的是,每次对8251 复位后(即按1 次“RESET”按键),都需要对其进行初始化,然后再进行正常的数据传输;复位后,只能对其进行1 次初始化,多次初始化将导致串口工作不正常。
3.在使用COM2 口时,需要将两片8251 芯片之间的插针用短路子短接(出厂时已短接),这样才能为COM2 正常工作提供所需的控制信号和数据;另外,还需要为其分配数据口地址和控制口地址。
本教学机,已将COM2 口的C/D 与地址总线的最低位AB0 相连,而其片选信号未连,只引出1 个插孔,实验时,应将该插孔与标有“I/O /CS”的7 个插孔中的1个相连。
4.COM1口的初始化操作已经编写完毕。
注意:对COM1口进行操作时,通过地址80输入输出数据,通过地址81接收状态信息。
在对COM2进行操作时,需要先设置COM2的地址,可选择标有“I/O /CS”的7 个插孔中的任一个地址范围。
例如选择90~9F,则对COM2口进行操作时,通过地址90输入输出数据,通过地址91接收状态信息。
例如选择A0~AF,则对COM2进行操作时,通过地址A0输入输出数据,通过地址A1接收状态信息。
其他地址范围亦然。
实验注意事项1.连接电源线和通讯线前TEC-XP+实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP+实验系统上的芯片和PC机的串口造成损害。
2.六个黑色控制开关的功能示意图如下:(开关拨到上方表示为1,拨到下方为0,x表示任意)单步手动置指令组合逻辑联机8位FPGA上面下面连续从内存读指令微程序脱机16位MACH3.几种常用的工作方式(开关拨到上方表示为1,拨到下方为0,x表示任意)4.在拔插实验箱上的任何器件和连线时,都要关闭实验箱电源,否则可能会烧坏实验箱的器件。
实验步骤一.硬件连接1.在断电状态下,取出TEC-XP+实验系统,将桌子上的串口线连接到TEC-XP+实验系统的串口(离电源接口远的);连接电源,将电源线的连到TEC-XP+实验系统的电源接口。
2.将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,在这个实验中开关应置为001100。
3.打开电源,船形开关和5V 电源指示灯亮。
二.仿真终端软件的操作步骤1.在D盘下建立你的工作目录,目录的命名:你的名字的汉语拼音的首字母,例如你叫张三,则你的目录为zs。
2.将C:\tec-xp\pcec目录的拷贝到你的目录下。
3.双击,出现如图1所示的界面:图1 选择串口的界面4.系统默认选择串口1,直接按回车后出现如图2所示的界面:图2 选择参数的界面5.图2是系统设定的一些传输参数,直接回车。
按一下TEC-XP+实验系统的“RESET”按钮放开后再按一下“START”按钮,出现界面如图3所示:图3 启动界面此时表明TEC-XP+机器联机通讯正常。
三、串行接口输入输出设计一个小程序, 用次数控制在终端屏幕上输出20H个可打印字符。
(1)在命令行提示符状态下输入:A 2020↙屏幕将显示:2020:从地址2020H 开始输入下列程序:2020:MVRD R2,0020 ;送入输出字符个数2022:MVRD R0,0030 ;“0”字符的ASCII 码送寄存器R02024:OUT 80 ;输出保存在R0 低位字节的字符2025:DEC R2 ;输出字符个数减12026:JRZ 202E ;判10 个字符输出完否,已完,则转到程序结束处2027:PUSH R0 ;未完,保存R0 的值到堆栈中2028:IN 81 ;查询接口状态,判字符串行输出完成否,2029:SHR R0202A:JRNC 2028;未完成, 则循环等待202B:POP R0 ;已完成, 准备输出下一字符并从堆栈恢复R0 的值202C:INC R0 ;得到下一个要输出的字符202D:JR 2024 ;转去输出字符202E:RET202F:↙(2)用“G”命令运行程序,记录运行结果。
(3)将上述程序中的2028:IN 812029:SHR R0202A:JRNC 20283条语句修改为3条MVRR R0,R0语句再次运行该程序,查看会出现什么现象,记录运行结果,解释为什么会如此?四、串行接口扩展1.将8251芯片插入实验箱右上角SIO2 8251上,为扩展I/O 口选择一个地址:将与COM2 口相连的SIO2 8251 左上方的/CS 与标有I/O /CS的插孔中地址为A0~AF 的一个相连;2.将教学机COM1 口与一台PC 机(A机)相连,在PC机(A机)上启动PCEC16.EXE;3.断开COM1 与A机的串口线,将其连接到另一台PC 机(B机)的串口,同样启动PCEC16.EXE;4.用另一根串口线将COM2 口和A机相连;5.在与COM1 相连的PCEC 上输入程序,这是主PCEC 可以输入输出,和COM2 连接的是从PCEC只作输出;6.用A命令编程进行COM2 口的操作。
(1)程序1:COM2 口初始化在命令行提示符状态下输入:A 2000↙从2000H 单元开始输入下面的程序2000:MVRD R0,004E ;给R0 赋值004E2002:OUT A1 ;将R0 的值输出到COM2 口的8251 中的寄存器中2003:MVRD R0,0037 ;给R0 赋值00372005:OUT A1 ;将R0 的值输出到COM2 口的8251 中的寄存器中2006:RET在命令行提示符状态下输入G 2000 运行初始化程序,完成对COM2 口的初始化。
注意:每次按“RESET”按键后,在对COM2 进行读写操作之前,都应运行该程序。
需要注意的是,按一次“RESET”按键后,只能对COM2 口进行一次初始化操作。
(2)程序2:从COM2 口输入数据,然后在与COM1 口相连的PC上显示出数据。
在命令行提示符状态下输入:A 2040↙从2040H 单元开始输入下面的程序2040:IN A1 ;判键盘上是否按了一个键,2041:SHR R0 ;即串行口是否有了输入的字符2042:SHR R02043:JRNC 2040 ;没有输入则循环测试2044:IN A0 ;从COM2 口读入字符到R02045:OUT 80 ;将该字符从COM1 口输出2046:RET2047:↙使用G命令运行该程序,要求记录:⏹从与COM1口相连的PC机的键盘上输入字符,两个PC机的屏幕显示分别是什么?⏹从与COM2口相连的PC机的键盘上输入字符,两个PC机的屏幕显示分别是什么?(3)程序3:从COM1 口接收数据,发送到与COM2 口相连的PC 机上回显。