实验六 串转并的IO口实验
串转并和并转串实验
实验五串转并与并转串实验一、实验目的1.掌握使用74LS164 扩展输出的方法。
2.掌握使用74LS165 扩展输入的方法。
二、实验内容使用74LS165 扩展输入数据,使用74LS164 扩展输出数据。
74LS165 的并行口接八位逻辑电平输出(开关),CPU 使用P1.0、P1.1 和P1.2 串行读入开关状态;74LS164 的并行口接一只数码管,CPU 使用P1.3 和P1.4 串行输出刚读入的开关状态,使之在数码管上显示出来。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图1)74LS165 为8 位移位寄存器,其引脚功能如下:S/L:移位/置数端,低电平有效。
P0~P7:并行数据输入端。
QH、QH:串行数据输出端。
CLK、CKLINH:时钟信号输入端。
2)74LS164 为串行输入并行输出移位寄存器,其引脚功能如下:A、B:串行输入端;Q0~Q7:并行输出端;MR:清零端,低电平有效;CLK:时钟脉冲输入端,上升沿有效。
3)用P1 端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。
4)本实验需要用到CPU 模块(F3 区)、八位逻辑电平输出模块(E4 区)和静态数码管显示模块(B4 区)。
74LS165 电路原理图参见图5-1,74LS164 电路原理图参见图8-2。
注:74LS164 集成电路芯片在主板反面。
图5-1 74LS165 电路图5-2 74LS164电路五、实验步骤1)系统各跳线器处在初始设置状态。
用导线对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD 到CPU 模块的P10、P11、P12。
用导线对应连接静态数码管显示模块的DIN、CLK 到CPU 模块的P13、P14。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察数码(八段码)管的亮灭与拨动开关的状态是否一致。
实验六 串操作指令
串操作指令程序设计实验目的:掌握串传送指令功能及执行规律理解dos中断的2号和9号功能应用实验内容:1.要求将串string1传送给string2(数据传送串指令)2.比较字符串SOU(在数据段中)和字符串TAR(在附加段中)中否相同,若相同则输出YES,不相同输出NO(串比较指令)3.把附加段中从ARRAY开始的10个字置为ab(存入串指令)4.从字符串STRING1的结尾取出一个字符,送入AL寄存器,并送屏幕显示(取出串指令)5.设str是附加段中长度为20字节的字符串,现查询该串是否有该字符,若有则输出"find",没有输出"no find"(串扫描指令)实验报告要求:(1)画出程序的流程图(2)列出程序清单(3)说明每种传送指令的功能附:源程序1、要求将串string1传送给string2data segmentstring1 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'data endsedata segmentstring2 db 26 dup(?)edata endscode segmentassume cs:code,ds:data,es:edatamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,edatamov es,axlea si,string1lea di,string2cldmov cx,26rep movsb ;当CX不为零时重复做movsb指令;调用dos的9号中断来显示字符串"YES";dos 的9号中断显示的字符串结尾一定是一个"$"mov al,"$"mov [string2+26],al;给字符串结尾加一个"$"mov ds,axmov dx,offset string2mov ah,9int 21hretmain endpcode endsend main2、比较字符串SOU(在数据段中)和字符串TAR(在附加段中)中是否相同;若相同则输出YES,不相同输出NOdata segmentsou db 'IJKLMNOPQRSTUabcdef'no db 'no','$'yes db 'yes','$'data endsedata segmenttar db 'IJKLMNOPQRSTUabcdef'edata endscode segmentassume cs:code,ds:data,es:edatamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,edatamov es,axlea si,sou ;指向源串首地址lea di,tar ;指向目标串首地址cld ;置df=0,表示正向比较mov cx,19 ;比较数,以最长的字符串为准repz cmpsb ;当CX不为零且ZF=1就继续执行比较jnz n;调用dos的9号中断来显示字符串"YES"y:mov ax,seg yes ;传送需显示字符串的段地址到dsmov ds,axmov dx,offset yes ;传送需要显示字符串的偏移地址mov ah,9int 21hjmp exit;调用dos的9号中断来显示字符串"no"n:mov ax,seg nomov ds,axmov ah,9int 21hexit: retmain endpcode endsend main3、把附加段中从ARRAY开始的10个字置为abdata segmentdata endsedata segmentarray dw 12 dup(?),"ex",'$'edata endscode segmentassume cs:code,ds:data,es:edatamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,edatamov es,axlea di,array ;字符串的首地址cld ;置DF=0,串首地址每次正向自动加一mov cx,10 ;设置传字的个数mov ax,'ba' ;设置字的内容在AX寄存器rep stosw ;当CX不为零时重复传送AX的内容到目的地址;调用DOS的9号中断来显示传送字符串的情况mov ax,seg arraymov ds,axmov dx,offset arraymov ah,9int 21hretmain endpcode endsend main4、从字符串STRING1的结尾取出一个字符,送入AL寄存器,并送屏幕显示data segmentstring1 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'data endsedata segmentstring2 db 26 dup(?)edata endscode segmentassume cs:code,ds:data,es:edatamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,edatamov es,axlea si,string1+25 ;传字符串STRING1的结尾地址到SIstd ;设置DF=1,表示串的地址自动减一lodsb ;从串的结尾取出一个字符送al;调用dos的2号中断来显示单个字符mov dl,al;需要显示的字符或者其ASIIC码送入DL,才能显示mov ah,2int 21hretmain endpcode endsend main5、设str是附加段中长度为20字节的字符串,现查询该串是否有该字符若有则输出"find",没有输出"no find"data segmentno db 'no find','$'yes db 'find','$'data endsedata segmentstr db 'IJKLMNOPQRST#Uabcdef'edata endscode segmentassume cs:code,ds:data,es:edatamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov ax,edatamov es,axlea di,str ;送字符串的偏移地址进dicld ;设置DF=0,表示每次di自动加1mov al,"#" ;需要查找的字符mov cx,20 ;设置字符串的个数,表示要循环的次数repnz scasb;当cx不等于零且结果不相等时,继续做scasb指令jnz n;调用dos的9号中断来显示字符串"find"y:mov ax,seg yesmov ds,axmov dx,offset yesmov ah,9int 21hjmp exit;调用dos的9号中断来显示字符串"no find" n:mov ax,seg nomov ds,axmov dx,offset nomov ah,9int 21hexit: retmain endpcode endsend main。
微机原理实验报告并口实验
微机原理实验报告:并口实验1. 引言微机原理实验是计算机科学与技术专业的一门重要实验课程之一。
通过该实验,学生可以了解并学习微机系统的基本原理和结构,培养对计算机硬件的基本操作和维护能力。
本报告将详细介绍我们在并口实验中所进行的实验步骤、实验结果和实验心得。
2. 实验目的本次实验的目的是通过并口实验,了解并实践如何使用并行口控制外部设备。
并口是计算机上常见的接口之一,用于与外部设备进行数据交互,例如打印机、键盘、LED灯等。
通过本次实验,我们将学会如何通过编程的方式控制并口输出信号,进而控制外部设备的工作。
3. 实验步骤(1)准备工作:首先,我们需要准备一台支持并口的计算机,并确保系统已经安装了合适的驱动程序。
然后,我们需要连接一根并口数据线,将计算机与外部设备连接起来。
(2)编程环境搭建:我们要使用的编程语言是C语言,所以需要在计算机上配置相应的编译器和开发环境。
(3)编写代码:接下来,我们需要编写一段简单的代码,来控制并口输出信号。
这段代码通常包括对并口寄存器的读写操作。
我们可以使用IO口的寄存器来设置输出状态和控制外部设备的工作。
(4)测试与调试:在编写完代码后,我们需要进行测试和调试。
通过观察外部设备的反应,可以判断代码是否正确地控制了并口输出信号。
如果出现问题,我们可以通过查看代码和调试信息来找出问题的原因。
4. 实验结果我们按照上述步骤完成了实验,并取得了如下实验结果:(1)成功控制外部设备:通过编写控制代码,我们成功地控制了与计算机连接的外部设备。
例如,我们可以在LED灯上显示相应的图案和文字。
(2)了解并口寄存器操作:通过本次实验,我们对并口寄存器的操作有了更深入的了解。
我们学会了如何设置输出状态和控制外部设备的工作模式。
(3)掌握数据传输方法:在实验过程中,我们还掌握了一些基本的数据传输方法。
例如,我们可以通过并口将数据传输给外部设备或从外部设备接收数据。
5. 实验心得通过本次并口实验,我们对微机系统的基本原理和结构有了更深入的了解。
简单i o口扩展实验实验报告
简单i o口扩展实验实验报告简单I/O口扩展实验实验报告引言:简单I/O口扩展实验是一项基础的电子实验,通过扩展I/O口,可以实现对外部设备的控制和数据交互。
本实验旨在通过实际操作,了解I/O口扩展的原理和应用。
实验目的:1. 了解I/O口的基本概念和工作原理;2. 学习使用I/O口扩展芯片实现对外部设备的控制;3. 掌握I/O口扩展的编程方法和应用技巧。
实验器材和材料:1. Arduino开发板;2. I/O口扩展芯片;3. 连接线;4. 外部设备(如LED灯、蜂鸣器等)。
实验步骤:1. 连接Arduino开发板和I/O口扩展芯片。
将I/O口扩展芯片的引脚与Arduino开发板的数字引脚相连,确保连接正确可靠。
2. 编写程序。
使用Arduino开发环境,编写程序代码,实现对I/O口扩展芯片的控制。
根据实际需求,可以选择控制外部设备的开关、亮度、频率等。
3. 上传程序。
将编写好的程序上传到Arduino开发板,确保程序能够正确运行。
4. 运行实验。
运行程序,观察外部设备的状态变化。
通过改变程序中的参数,可以实现对外部设备的不同控制效果。
实验结果与分析:通过实验,我们成功地实现了对外部设备的控制。
通过改变程序中的参数,我们可以控制外部设备的开关、亮度、频率等。
这说明I/O口扩展技术具有很大的应用潜力,可以实现对各种外部设备的控制和数据交互。
实验总结:通过本次实验,我们深入了解了I/O口扩展的原理和应用。
通过编写程序,我们掌握了I/O口扩展的编程方法和应用技巧。
通过实验,我们成功地实现了对外部设备的控制,这为我们进一步研究和应用I/O口扩展技术奠定了基础。
实验中遇到的问题和解决方法:在实验过程中,我们遇到了一些问题,如连接错误、程序错误等。
我们通过仔细检查连接和程序代码,逐一解决了这些问题。
这提醒我们在实验中要认真细致,仔细检查和排除错误,以保证实验的顺利进行。
实验的局限性和改进方向:本次实验只是简单地介绍了I/O口扩展的基本原理和应用,还有很多相关的知识和技术需要进一步学习和探索。
简单io口扩展实验报告
简单IO口扩展实验报告1. 背景在实际应用中,我们经常需要扩展计算机的输入输出(IO)接口,以满足不同的需求。
而简单IO口扩展就是一种常见且重要的扩展方式。
通过简单IO口扩展,我们可以将计算机连接到更多的外部设备,如传感器、执行器等,从而实现更多功能和应用。
2. 分析2.1 简单IO口介绍简单IO口是指通用输入输出接口,它可以通过数字信号来进行数据的输入和输出。
每个简单IO口通常包括一个输入引脚和一个输出引脚。
通过控制这些引脚的电平状态,我们可以实现数据的输入和输出。
2.2 简单IO口扩展方法简单IO口可以通过不同的方法进行扩展,常见的方法包括:•并行接口:使用并行接口可以同时传输多个位的数据。
它通常使用多条数据线和一些控制线来实现高速数据传输。
•串行接口:使用串行接口可以逐位地传输数据。
它通常使用一条数据线和一些控制线来实现较低速率但更简洁的数据传输。
•USB接口:USB(Universal Serial Bus)是一种常见的数字串行总线接口,它可以连接多种设备,并提供高速数据传输和供电功能。
•SPI接口:SPI(Serial Peripheral Interface)是一种常用的串行外设接口,它可以连接多个外设,并以主从模式进行数据传输。
•I2C接口:I2C(Inter-Integrated Circuit)是一种常见的串行通信接口,它可以连接多个外设,并使用两条线路进行数据传输。
2.3 简单IO口扩展实验本次实验旨在通过简单IO口扩展方法,将计算机与外部设备进行连接,并实现数据的输入和输出。
具体步骤如下:1.确定要使用的简单IO口扩展方法,如并行接口、串行接口等。
2.根据选择的扩展方法,准备相应的硬件模块和连接线缆。
3.将硬件模块与计算机进行连接,确保电气连通性。
4.编写相应的驱动程序或使用现有的驱动程序,以实现与硬件模块的通信。
5.运行程序并测试扩展功能。
3. 结果经过实验测试,我们成功地实现了简单IO口扩展,并达到了预期的结果。
串并行转换实验报告
一、实验目的1. 理解串行和并行数据传输的基本概念。
2. 掌握串并行数据转换的方法和原理。
3. 通过实验验证串并行转换的正确性和实用性。
二、实验原理在数字通信和数据处理领域,串行和并行传输方式各有优缺点。
串行传输适合长距离传输,而并行传输适合短距离高速交换。
串并行转换技术可以将串行数据转换为并行数据,或将并行数据转换为串行数据,以满足不同场景下的传输需求。
串行数据传输:将多个数据位按顺序逐个发送,数据位之间有明显的间隔。
并行数据传输:将多个数据位同时发送,每个数据位通过独立的传输线路。
三、实验设备与材料1. 串并行转换模块2. 信号发生器3. 示波器4. 计算机及实验软件四、实验步骤1. 连接实验设备,确保串并行转换模块与信号发生器、示波器等设备连接正确。
2. 在计算机上打开实验软件,设置实验参数,如串行数据输入、并行数据输出等。
3. 启动信号发生器,产生串行数据信号。
4. 将串行数据信号输入到串并行转换模块,观察转换模块的输出信号。
5. 使用示波器观察串行数据信号和并行数据信号的波形,记录数据。
6. 改变实验参数,重复步骤3-5,验证串并行转换的正确性和实用性。
五、实验结果与分析1. 实验过程中,将串行数据信号输入到串并行转换模块,转换模块输出相应的并行数据信号。
2. 通过示波器观察串行数据信号和并行数据信号的波形,发现两者具有相同的数据位和时序。
3. 改变实验参数,如串行数据输入、并行数据输出等,发现串并行转换模块能够适应不同的实验需求。
4. 实验结果表明,串并行转换模块能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,验证了实验原理的正确性。
六、实验结论1. 串并行转换技术能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,具有实际应用价值。
2. 通过实验验证了串并行转换模块的正确性和实用性,为后续相关实验和研究提供了参考。
3. 在数字通信和数据处理领域,串并行转换技术具有重要的应用前景。
实验六 串行口通信实验
实验六串行口通信实验一、实验内容实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。
本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。
二、实验目的掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。
三、实验原理51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。
进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于- 0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。
为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。
单片机串行接口有两个控制寄存器:SCON和PCON。
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。
由软件置位串行控制寄存器(SCON)的REN位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。
单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。
在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。
WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。
如果用户要进行串行通信,可以调用WINDOWS的API 应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。
单片机实验指导书
单片机原理及应用实验指导书谢明华刘辉张文希编写2010.6目录实验一Keil C51集成开发环境的使用练习 (1)实验二Keil C51集成开发环境的使用练习 (2)实验三单片机I/O口控制实验 (4)实验四中断实验 (6)实验五定时/计数器实验 (9)实验六串转并的I/O口实验 (11)实验七74HC138译码器实验 (13)实验八并行的模数转换实验 (15)实验九RS232串行通信实验 (18)实验十步进电机控制实验 (21)实验十一继电器控制实验 (23)实验十二键盘与显示接口程序设计 (235)实验一Keil C51集成开发环境的使用练习一.实验目的熟悉Keil C51集成开发环境的使用方法。
二.实验设备及器件PC机一台三.实验内容进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX 文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND四.实验要求:熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
五.实验思考题:①试写一条把片内RAM 50H~59H单元清零的程序。
②试写一条把片内 RAM 50~59H单元写入01H的程序。
实验二Keil C51集成开发环境的仿真与调试一.实验目的熟悉Keil C51 集成开发环境调试功能的使用和DP-51PROC 单片机综合仿真实验仪的使用。
实验六 简单IO接口的操作
实验六简单I/O接口的操作一、实验目的掌握接口操作的基本方法,掌握数据输入输出程序编制的方法。
二、实验设备QTH-2008PC实验设备一台,键盘、鼠标、显示器各一件。
三、实验说明1、74LS244是一种三态输出的8位总线缓冲驱动器,无锁存功能,当G 为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。
2、74LS273是一种8D触发器,当CLR为高电平且CLK端电平正跳变时,D0-D7端数据被锁存到8D触发器中。
3、IOY0对应的端口地址范围是180-18FH。
IOY1对应的端口地址范围是190-19FH。
IOY2对应的端口地址范围是1A0-1AFH。
IOY3对应的端口地址范围是1B0-1BFH。
四、实验原理图图6-3-1 74LS244与74LS273扩展I/O口原理图五、实验内容本实验利用74LS244作为输入口,读取开关状态,并将此状态通过74LS273驱动发光二极管显示出来。
六、实验步骤图6-3-2 扩展I/O口连线图(1)实验连线:(确保电源关闭)➢244的CS——PC104总线接口模块的IOY0,Y7~Y0——开关K01~K08。
➢273的CS——PC104总线接口模块的IOY2,Q7~Q0——发光二极管L1~L8。
➢该模块的WR、RD分别连到PC104总线接口模块的IOWR、IORD。
➢该模块的数据(AD0~AD7)连到PC104总线接口模块的数据(D0~D7)。
(2)连线检查无误后,开机上电。
(3)利用debug中的i或o命令,测试一下端口是否好用。
(4)设计、编辑、编译、运行程序。
源程序为:LS244 EQU 0180H ;244片选信号LS273 EQU 01a0H ;273片选信号MY_STACK SEGMENT PARA 'STACK'DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA 'DATA'MY_DATA ENDSMY_CODE SEGMENT PARA 'CODE'MY_PROC PROC FARASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK MAIN: MOV AX,MY_DATAMOV DS,AXREAD1: MOV DX,LS244 ;读取开关状态IN AL,DXMOV DX,LS273OUT DX,AL ;送LED显示CALL BREAKJMP READ1MY_PROC ENDP;BREAK PROC NEAR ;按任意键退出PUSHFPUSH AXPUSH DXMOV AH,06H ;6号功能调用,键盘输入单字符。
io口实验报告
io口实验报告IO口实验报告引言:IO口(Input/Output Port)是计算机硬件中的一种通信接口,用于与外部设备进行数据交互。
本实验旨在通过对IO口的实际应用,深入了解IO口的原理和使用方法。
一、实验目的通过本次实验,我们的目标是掌握IO口的基本原理和操作方法,了解IO口在计算机系统中的重要性,并能够熟练地使用IO口进行数据输入和输出。
二、实验装置本次实验所需的装置包括一台计算机、IO口接口板、连接线和外部设备(如LED灯、按钮等)。
三、实验过程1. 连接IO口接口板将IO口接口板与计算机通过连接线连接好,并确保连接稳固。
接口板上通常会有标识,根据标识将连接线插入正确的接口。
2. 配置IO口参数打开计算机,并进入操作系统。
根据计算机型号和操作系统的不同,配置IO口参数的具体步骤可能会有所不同。
一般来说,可以通过设备管理器或者控制面板中的设备设置选项来进行配置。
3. 进行IO口输入实验将一个按钮连接到IO口接口板的输入端口上。
通过编写简单的程序代码,实现当按钮按下时,计算机能够读取到IO口的输入信号,并作出相应的反应,如显示一个提示信息或者改变屏幕上的图像。
4. 进行IO口输出实验将一个LED灯连接到IO口接口板的输出端口上。
通过编写程序代码,实现当计算机发出IO口的输出信号时,LED灯能够亮起。
可以尝试不同的输出信号模式,如闪烁、渐变等,以观察LED灯的不同反应。
5. 拓展实验除了按钮和LED灯,还可以尝试连接其他外部设备,如蜂鸣器、温度传感器等,以进一步探索IO口的应用。
通过编写相应的程序代码,实现与这些设备的交互,并观察其效果。
四、实验结果与分析通过以上实验操作,我们可以得到以下实验结果:1. IO口输入实验:当按下按钮时,计算机能够读取到IO口的输入信号,并作出相应的反应。
这说明IO口能够实现数据的输入,为计算机提供外部信息。
2. IO口输出实验:当计算机发出IO口的输出信号时,LED灯能够亮起。
单片机实验-单片机并行IO口的应用实验
单片机并行I/O口的应用实验一、实验目的1、熟悉Proteus软件和Keil软件的使用方法。
2、熟悉单片机应用电路的设计方法。
3、掌握单片机并行I/O口的直接应用方法。
4、掌握单片机应用程序的设计和调试方法。
二、实验内容或原理1、利用单片机并行I/O口控制流水灯。
2、利用单片机并行I/O口控制蜂鸣器。
三、设计要求1、用Proteus软件画出电路原理图。
要求在P1.0至P1.7口线上分别接LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。
3、编写程序:要求LED0至LED7以秒速率循环左移。
4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。
四、实验报告要求1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、电路原理图。
5、实验结果6、实验总结。
7、思考题。
五、思考题1、编程实现LED0至LED7以十六进制计数规律亮灯?原理图:程序清单:/*(1)LED0~LED7以秒速率循环右移蜂鸣器逐位报警*/ORG 0000HMAIN:MOV A, #11111110B;赋初值LOOP:MOV P1,A ;赋值给P1口CPL P3.0 ;低电平有效LCALL DELAY ;调用延时电路SETB P3.0 ;控制蜂鸣器叫的时间间隔LCALL DELAYRL ALJMP LOOPDELAY:MOV R7,#0FFHLOOP1:MOV R6,#0F4HLOOP2:MOV R5,#02HDJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句DJNZ R6,LOOP2DJNZ R7,LOOP1RETEND/*(2)LED0~LED7以十六进制计数规律亮灯*/ORG 0000HMOV A,#0FFHLOOP: MOV P1,ALCALL DELAYDEC ACJNE A, #0FFH,LOOPMOV A, #0FFHLJMP LOOPDELAY:MOV R7, #0A7HLOOP1:MOV R6, #0ABHLOOP2:MOV R5, #10HDJNZ R5, $ ;"$"当前的PC值。
IO口输入、输出实验
实验一I/O口输入、输出实验2010.04.20一、实验目的:了解LED二极管的工作原理。
掌握LED二极管亮灭左右移的编程方法。
二、实验原理:八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮。
我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
表1三、实验电路原理图四、程序框图实验程序:START: MOV ACC,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,ACC ;将ACC的数据送P1口MOV R0,#7LOOP1: RL A ;将ACC中的数据左移一位MOV P1,A ;把ACC左移后的数据送p1口显示ACALL DELAY ;调用延时子程序DJNZ R0,LOOP1 ;没有移动够7次继续移动MOV R1,#7LOOP2: RR A ;将ACC中的数据右移一位MOV P1,A ;把ACC右移后的数据送p1口显示ACALL DELAYDJNZ R1,LOOP2AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果;----- 延时子程序 -----DELAY: MOV R2,#255D1: MOV R3,#255DJNZ R3,$DJNZ R2,D1RET ;延时子程序结束,返回到调用处的下一句END ;程序结束实验现象:实验实现了单一灯的左移右移。
开始时P1.0口的LED点亮,然后P1.1→P1.2→P1.3→┅→P1.7的LED依次点亮,实现了右移。
当P1.7的LED点亮后,P1.6→P1.5→P1.4→┅→P1.0口的LED又依次点亮,实现了左移。
然后循环,从而实现灯的循环左右移。
实验结论:通过单片机对P1口赋值,然后利用移位RL和RR指令使相应的LED点亮,可以实现灯的左右移。
串并转换实验
P1.0
注:INA与INB为“与”的关系,不用的那个串行输入口需接高电
• (2)74LS165并-串转换实验
• 编写程序,通过单片机的串行口读入一 字节数据,该字节数据对应于74LS165芯 片并行输入口连接开关SW1~SW8的状态, 并且把读入的数据通过P0口输出给 LED1~LED8,通过LED1~LED8的显示验 证并-串数据转换的正确性。
MCU
SW1~SW8
6 5 4 3 14 13 12 11
L E D
P0.0 (RXD) P3.0
H G FE (P7 P6 P5 P4
9 QH(Q7)
DC B A P3 P2 P1 P0)
SIN (SER)
1
74LS165
~
7 QH (Q7)
L
E
P0.7
D
(TXD)
8
P3.1
(PL)
(CLK1)
实验五 串行口扩展I/O口实验
一、实验目的 1. 熟悉并掌握利用串行口扩展I/O的方法 2. 熟悉74LS164和74LS165芯片的功能 3. 熟悉并掌握串行口方式0的编程方法
二、实验设备及器件
• PC机
一台
• DP-51PROC单片机综合仿真实验仪 一台
三、实验内容: (1)74LS164串-并转换实验 编写程序,通过单片机的串行口输 出一数据,如55H,控制74LS164芯片 进行串-并转换,通过LED1~LED8的 显示验证串-并数据转换的正确性。
S/L
CLK2
CP
1
LK1与CLK2为“或”的关
• 下次实验内容:
• 实验14-RS232串口通信实验
• 预习要求:
• 1. 查资料熟悉MAX232芯片的工作原理和 使用方法。
并行IO接口的扩展实验报告
并行IO接口的扩展实验报告一、实验目的1、了解并行IO接口的扩展方法2、掌握可编程接口芯片8255A的工作原理、编程方式和使用方法二、实验条件1、DOS操作系统平台2、8255A接口芯片三、实验原理1、并行IO口的扩展方法:(1)通过通用的IO扩展芯片实现(2)通过TTL、CMOS 锁存器、缓冲器芯片实现。
如74LS377、74LS273、74LS244、74LS245 等。
(3)通过串行通信口扩展并行I/O 口。
2、8255A 扩展I/O 端口:(1)8255A 具有三种基本工作方式,即方式0、方式1、方式2。
各端口的工作方式及输入输出方向都由方式控制字设定(通过写入控制寄存器)。
8255A 的控制字有方式控制字和C 口置位/复位控制字两种。
3、8255A 的工作方式:(1)方式0 是一种基本I/O 方式。
在这种工作方式下,三个端口都可由程序设定为输入或输出,这种方式不使用联络信号,其基本功能为:a. 两个8 位端口(A、B) 和两个4 位端口(C)。
b. 任一个端口可以作为输入或输出。
c. 输出锁存,输入不锁存。
d. 在方式0 时,各端口都可以作为数据端口,CPU 用简单的输入或输出指令来进行读或写。
(2)方式1 是一种选通I/O 方式。
在这种方式下,端口A 和B 可作为数据端口,但C 口的某口的其它位仍可工作于方式0。
方式1 的基本功能为:a. 用作一个或两个选通端口。
b. 每个选通端口包含有:8 位数据瑞口,3 条控制线,提供中断逻辑。
c. 任一端口可输入或输出。
d. 若只有一个端口工作于方式1,余下的13 位可以工作于方式0。
e. 若两个端口工作于方式1,C 口余下2 位可以工作于方式0。
(3)方式2 是一种双向I/O 方式,只有端口 A 具有这种工作方式,其基本功能为:a. 一个8 位双向数据端口(A)和一个5 位控制端口(C)。
b. 输入和输出锁存。
c. 5 位控制端口用作端口A 的状态和控制信息。
8086接口实验
接口实验部分实验1 简单I/O口扩展实验一、实验目的1、熟悉74LS273,74LS244的应用接口方法。
2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。
二、实验设备CPU挂箱、8086CPU模块。
三、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。
四、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。
五、实验步骤1、实验接线:(↔表示相互连接)CS0 ↔CS244; CS1↔CS273;平推开关的输出K1~K8 ↔ IN0~IN7(对应连接); O0~O7↔LED1~LED8。
2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。
4、编写实验报告。
六、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。
七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。
例如:K2置于L位置,则对应的LED2应该点亮。
八、程序框图(实验程序名: T244273.ASM)九、程序源代码清单assume cs:codecode segment publicorg 100hstart: mov dx,04a0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ;输出至LED jmp startcode endsend start实验2 存储器读写实验一、实验目的1.掌握PC机外存扩展的方法。
2.熟悉6264芯片的接口方法。
3.掌握8086十六位数据存储的方法。
二、实验设备CPU挂箱、8086CPU模块。
三、实验内容向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。
四、实验原理介绍本实验用到存储器电路五、实验步骤1、实验接线:本实验无需接线。
IO实验报告
MOV MOV INT
AH,9 DX,OFFSET MES 21H
SCAN: MOV MOV IN AND CMP JNZ CALL
SCA1: CMP JNZ CALL
AX,0 DX,IOADD AL,DX AL,3H AL,0 SCA1 FAR PTR M_K0
3DH
PCI_CS_MIN_GNT EQU
3EH
PCI_CS_MAX_LAT EQU
3FH
;---------------------END-------------------------
ADDRESS_IO_0 DW
?
ADDRESS_IO_1 DW
?
ADDRESS_MEM_L DW
?
ADDRESS_MEM_H DW
CODE ENDS
END
START
PUSH SUB PUSH MOV MOV
DS AX,AX AX AX,DATA DS,AX
MOV MOV INT CMP JZ MOV JMP STA1: MOV MOV MOV MOV MOV INT JNC MOV MOV INT JMP AA: MOV MOV
AH,0B1H ;读配置资源 AL,1H 1AH AH,00 STA1 DX,OFFSET DIS5 M_EXIT
18H
PCI_CS_BASE_ADDRESS_3 EQU
1CH
PCI_CS_BASE_ADDRESS_4 EQU
20H
PCI_CS_BASE_ADDRESS_5 EQU
24H
PCI_CS_EXPANSION EQU
实验六 串转并的IO口实验
实验六串转并的I/O 口实验
一、实验目的
熟悉并掌握串转并的I/O 口扩展方法。
二、实验设备及器件
IBM PC 机一台
单片机仿真器、编程器、实验仪三合一综合开发平台一台
三、实验内容
1、写程序通过单片机的P1 口控制74HC164 的串行输入端口实现串并转换。
2、验证串并转换数据的正确性。
四、实验要求
熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O 口资源。
H=高电平(稳定态)L=低电平(稳定态)×=不定↑=从低电平转换到高电平
QA0…QH0:在稳定态输入条件建立前QA…QH 的相应电平
QAn…QHn:在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位
五、实验步骤
1、短接C5 区JP10 接口,将C5 区J43 接口与A2 区J61 接口的P10~P13 对应相连(CLK 对P10)等。
如图5.4 所示。
2、运行编写好的软件程序,完成一次串并转换。
3、使用C2 区的逻辑笔或D1 区的J52 接口LED 指示灯,测试并行输出数据Q0~Q7数据的正确性。
六、实验预习要求
认真阅读本实验内容,提前做好实验准备工作。
七、实验思考题
参考图5.5 电路图,尝试编写软件程序,实现8 位LED 流水灯的控制。
实验6 简单IO扩展实验
实验六简单IO扩展实验
一、实验目的
(1)掌握P3口、P1口简单使用;
(2)学习延时程序的编写和使用。
二、实验内容
1.P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。
2.P1口做输出口,编写程序,使P1口接的8 个发光二极管D1—D8按16进制加一方式点亮发光二极管。
三、实验说明
1. P3口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P3口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2. 延时子程序的延时计算问题
对于延时程序
DELAY: MOV R1, #7DH ;1ms延时预定值, ;毫秒数 R0
DL1: NOP
NOP
DJNZ R1, DL1 ;1ms延时循环
DJNZ R0, Delay ;毫秒数减1,
RET
查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms。
四、实验程序框图
五、实验线路图
六、实验步骤
①A2区INT1用插针连至D1区SW1孔,A1区P10—P17用排线连至D1区LED1—LED8。
②连续运行程序。
③开关SW1每拨动一次,LED1—LED8发光二极管按16进制方式加一点亮。
并行IO接口实验报告
并行I/O接口实验报告一、实验目的1.掌握GPIO IP 核的工作原理和使用方法。
2.掌握IO接口程序控制方法3.掌握中断控制方式的IO接口设计原理4.掌握中断程序设计方法二、实验任务使用查询、中断两个方式做独立式开关输入,将开关的状态显示到console。
三、硬件平台建立1.硬件框图2.通过xps建立最小系统,打开system.xmp文件3.添加和配置GPIO核,并改写ucf文件4添加和配置中断控制器IP核5产生外部GPIO连接四、软件平台建立1.软件流程图2.查询代码/** gpio.c** Created on: 2017-5-24* Author: 201511*/#include "xparameters.h"#include "xgpio.h"#include "xintc.h"#include "stdio.h"void Initialize();void Delay_50ms();void PushBtnHanler(void*CallBackRef);void SwitchHandler(void*CallBackRef);XGpio Dips;XIntc intCtr1;int pshDip;int state1;int main(){Initialize();xil_printf("\r\nRunning GpioInputInterrupt!\r\n");while(1){if(pshDip) //若按下按键,则打印信息{xil_printf("Switch Interrupt Trigger!!!the state is 0x%X\n\r",state1);pshDip=0;}}return 0;}void Initialize(){//初始化Dips实例,并设定其为输入方式XGpio_Initialize(&Dips,XPAR_DIP_DEVICE_ID);XGpio_SetDataDirection(&Dips,1,0xff);//初始化intCtrl实例XIntc_Initialize(&inCtrl,XPAR_AXI_INTC_0_DEVICE_ID);//GPIO中断使能XGpio_InterruptEnable(&Dips,1);XGpio_InterruptGlobalEnable(&Dips);//对中断控制器进行中断源使能XIntc_Enable(&intCtrl,XPAR_AXI_INTC_0_DIP_IP2INTC_IRPT_INTR);//注册中断服务函数XIntc_Connect(&intCtrl,XPAR_AXI_INTC_0_DIP_IP2INTC_IRPT_INTR,(XInterruptHandler)SwitchHandler,(void*)0);microblaze_enable_interrupts(); //允许处理器处理中断;//注册中断控制器处理函数microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,(void*) &intCtrl);XIntc_Start(&inCtrl,XIN_REAL_MODE); //启动中断控制器}void Delay_50ms(){int i;for(i=0;i<5000000;i++);}void SwitchHandler(void*CallBackRef){state1=XGpio_DiscreteRead(&Dips,1); //读取Switch开关的状态值pshDip=1;XGpio_InterruptClear(&Dips,1); //清除中断位置}3.端口修改3.五、实验小结在这个实验中,主要分为两个部分,一个部分是硬件设计,另一个部分是软件设计,对我来说在硬件设计部分容易在操作步骤上出问题,很容易点错,而软件上,虽然代码比较少,但是不太容易一理解,由于采用API函数,所以会持续性的调用函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六串转并的I/O 口实验
一、实验目的
熟悉并掌握串转并的I/O 口扩展方法。
二、实验设备及器件
IBM PC 机一台
单片机仿真器、编程器、实验仪三合一综合开发平台一台
三、实验内容
1、写程序通过单片机的P1 口控制74HC164 的串行输入端口实现串并转换。
2、验证串并转换数据的正确性。
四、实验要求
熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O 口资源。
H=高电平(稳定态)L=低电平(稳定态)×=不定↑=从低电平转换到高电平
QA0…QH0:在稳定态输入条件建立前QA…QH 的相应电平
QAn…QHn:在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位
五、实验步骤
1、短接C5 区JP10 接口,将C5 区J43 接口与A2 区J61 接口的P10~P13 对应相连(CLK 对P10)等。
如图5.4 所示。
2、运行编写好的软件程序,完成一次串并转换。
3、使用C2 区的逻辑笔或D1 区的J52 接口LED 指示灯,测试并行输出数据Q0~Q7数据的正确性。
六、实验预习要求
认真阅读本实验内容,提前做好实验准备工作。
七、实验思考题
参考图5.5 电路图,尝试编写软件程序,实现8 位LED 流水灯的控制。