版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术实验报告实验一 i/o地址译码与交通灯控制实验一、 实验目的1、 掌握并行接口8253的基本原理2、 掌握8253的编程方法二、 实验内容如图所示,l7、l6、l5作为南北路口的交通灯与pc7、pc6、pc5相连,l2、l1、l0作为东西路口的交通灯与pc2、pc1、pc0相连。编程使六个灯按交通变化规律燃灭。三、 编程分析1、8255地址分析:控制寄存器地址: 0c40bh a口地址: 04c408h c口地址: 04c40ah2、十字路口交通灯的变化规律要求(1) 南北路口的绿灯、东西路口的红灯同时亮三秒;(2) 南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)
2、南北路口的红灯、东西路口的绿灯同时亮三秒;(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5) 转(1)重复。3、 c口置数分析由于发光二极管是共阴极相连,所以若要其发亮应给高电平;黄灯闪烁是让其不断交替亮灭来实现;同时分析可知只要有绿灯亮,灯就会持续亮三秒,黄灯亮就会闪烁三次。4、程序设计流程图开始返回dos设置8255c口输出南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮长延时南北路口红灯亮、东西路口黄灯亮闪烁有键按下吗?yn四、汇编语言程序stack1 segment stack db 100 dup(0) stac
3、k endscode segment assume cs:code, ss:stack1 dy proc near push ax push cx mov ax, 0ffffh ;延时程序 mov cx, 02fffh l0:dec ax jnz l0 loop l0 pop cx pop ax ret dy endpstart: mov dx, 0c40bh mov al, 10000000b out dx, al mov dx, 0c40ah mov bl, 6h ;设置延迟3秒 l1:mov al, 00100100b ;南北绿灯亮,东西红灯亮 out dx, al call dy ;调
4、用延迟子程序 dec bl jnz l1 mov bl, 4h ;设置第二次闪烁3次 l2:mov dx, 0c40ah mov al, 01000100b ;南北黄灯亮,东西红灯亮 out dx, al call dy mov al, 00000100b ;南北黄灯灭,东西红灯亮,实现要求闪的功能 out dx,al call dy dec bl jnz l2 mov bl,6h ;第三次设置亮灭时间为3秒 l3:mov al,10000001b ; 南北黄灯亮,东西红灯亮 out dx,al call dy dec bl jnz l3 mov bl,4h l4:mov al,1000001
5、0b ;南北红灯亮,东西黄灯亮 out dx,al call dy mov al,10000000b ;南北红灯亮,东西黄灯灭,实现闪的功能out dx,al call dy dec bl jnz l4 mov dl,0ffh ;判断是否有键按下,结束程序 mov ah,06h int 21h jz start ;没有键按下,进入下一次循环 mov ah,4ch int 21h code ends end start五、实验现象:红黄绿灯变化规律如下:南北路口的绿灯、东西路口的红灯同时亮3秒左右;南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;南北路口的红灯、东西路口的绿灯同时亮3秒左右;
6、南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;依次重复。六、实验感想这是第一次微机实验,总体感觉挺难的。虽然课前进行了预习准备,但在调试时还是遇到了灯不亮的情况。仔细检查程序后没有发现什么问题,所以就换了一个实验箱,并得到了理想的效果。我觉得这个实验的关键是设置延时子程序dy,在每一次灯亮后,都要调用这个延时程序,并跳转到下一次灯亮。实验二 可编程定时器/计数器(8253)一、 实验目的1、 掌握并行接口8253的基本工作原理;2、 掌握8253的编程方法。二、 实验内容1、 按图虚线连接电路,将计数器0设置为工作方式0,计数器初值为n(n0fh),用手动逐个输入单脉冲,编程使计数值在屏
7、幕上显示,并同时用逻辑笔观察out0电平变化(当输入n+1个脉冲后out0遍高电平)。 2、 按图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察out1输出电平的变化(频率1hz)。三、 编程分析1、8253控制寄存器地址: 0c403h 计数器0地址: 0c400h 计数器1地址: 0c401hclk0连接时钟:1mhz。2、程序参考流程图开始设置计数器0为工作方式0送计数器初值读计数器值显示计数值结束结束开始设计数器1为工作方式3向计数器1送初值1000先送低字节后送高字节向计数器0送初值1000先送低字节后送高字节计数器0位工作方式3有键按下吗?调用延
8、时子程序yn(1)(2)四、汇编语言程序(1):code segmentassume cs:codestart: mov dx,0c403h;计数器0,方式0 mov al,010h out dx,al mov dx,0c400h mov al,06h ;送初值6 out dx,al mov cl,1read: inc cl;自加1 cmp cl,0 jz start mov dx,0c400h ;读计数器0口 in al,dx mov dl,al mov cl,al cmp al,9 jg big add dl,30h ; 0到9,数字ascii偏移30h mov ah,02h int 21
9、h ;显示ascii数字 mov dl,0dh int 21h jmp returnbig: add dl,37h; 大于9,转换大写字母ascii码 mov ah,02h int 21h;显示ascii字母 mov dl,0dh int 21h jmp returnreturn: mov dl, 0ffh mov ah, 06h int 21h jz read;有键按下回dos,没有则继续执行 mov ah,4ch int 21hcode endsend start(2): code segmentassume cs:codestart: mov dx,0c403h ;计数器0方式3控制字写
10、入 mov al,00110110b out dx,al mov ax,1000 ;计数器0置入初值1000,先送低字节后送高字节 mov dx,0c400h out dx,al mov al,ah out dx,al mov dx,0c403h;计数器1初始化方式3控制字写入 mov al,01110110b out dx,al mov ax,1000 ;计数器1置入初值1000,先送低字节后送高字节 mov dx,0c401h out dx,al mov al,ah out dx,al mov ah,4ch int 21h;返回操作系统code ends end start五、实验现象实验
11、1,用手动逐个输入单脉冲,在屏幕上从计数器初值开始显示,此时逻辑笔显示为低电平,单脉冲每输入一个,计数器值将会减1,进行自减计数。同时在屏幕上显示,当计数器值减到0时,逻辑笔显示为高电平,红灯亮。因为方式0计数不会重新装入计数值,所以如果要重新计数,需要重新启动程序。实验2,红灯绿灯交替变化,表示输出是矩形脉冲。六、实验感想这次实验做得挺不顺畅的,一开始我做第一个小实验时,没有实现最后判断是否有健按下,并跳出程序的功能。后来问了同学以后,在return返回子程序里加了一个dos 6号功能调用,并加入一个控制转移指令jz read,就实现了有键按下返回操作系统,无键按下继续执行的功能。总之在这次
12、实验中我收获了很多。实验三 中断实验(纯dos)一、 实验目的1、掌握pc机中断处理系统的基本原理2、学会编写中断服务程序二、 实验原理与内容1、实验原理pc机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理,中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向cpu发出可屏蔽中断请求。ibm pc/xt机内有一片8259中断控制器对外可以提供8个中断源,如表6-1所示。表6-1 中断源中断源中断类型号中断功能irq008h时钟irq109h键盘irq20ah保留irq30bh串行口2irq40ch串行口1irq50dh硬盘irq60eh软盘irq70fh并行打印机8个中
13、断源的中断请求信号线irq0irq7在主机的62线isa总线插座中可以引出,系统已设定中断请求信号为边沿触发、普通结束方式,对于ibm pc/at及80286以上微机,系统又扩展了一片8259中断控制器,主片的irq2用于两片8259之间级连,对外可以提供16个中断源,如表6-2所示。表6-2 中断源中断源中断类型号中断功能irq8070h实时时钟irq9071h用户中断irq10072h保留irq11073h保留irq12074h保留irq13075h协处理器irq14076h硬盘irq15077h保留pci总线中的中断线只有四根:inta#,intb#,intc#,intd#。它们需要通过
14、p&p的设置来和某一根中断相连接才能进行中断申请。如图6-1所示,虚线为实验中需要连的线。图6-1 实验电路图2、实验内容实验电路如图6-1所示直接用手动产生单脉冲作为中断请求信号,只需连接一根导线,要求每按一次开关产生一次中断,在屏幕上显示一次“tpc pci card interrupt”,中断10次后程序退出。三、 编程分析1、由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯dos的环境中才能正常运行。2、由于tpc卡使用pci总线,所以分配的中断号在每台微机可能都不同,编程时需要了解当前的微机使用哪个中断号并进行设置。获取方法是在纯dos环境中,运行一个
15、读pci配置空间的程序“portr.exe”,该程序能够获得本机tpc板卡或所有pci板卡的硬件资源,如io、内存、中断占用情况。然后根据获得的中断请求号码来修改程序中的中断向量、中断掩码的参数,并重新编译链接后即可。图6-2 pci卡的结构3、由于tpc卡使用9054芯片连接微机,如图6-2所示,9054通过中断控制/状态寄存器(intcsr)激活/禁用中断源,所以在编程时,使用微机中断前需要使用9054的中断功能,所以要先对中断控制/状态寄存器(intcsr)设置,代码如下:mov dx,ioport_cent+68h;设置tpc卡中9054芯片io口,使能中断in ax,dxor ax,
16、0900hout dx,ax其中ioport_cent是9054芯片寄存器组的i/o起始地址,每台微机可能都不同,编程时需要了解当前的微机使用哪段并进行设置,获取方法请参看汇编程序使用方法的介绍。中断使能寄存器(intcsr)的偏移地址是+68h,设置含义如表6-3所示:表6-3 bits功能81:使能产生pci中断0:禁止产生pci中断111:使能local端输入的中断送到pci端0:禁止local端输入的中断送到pci端其它位为零即可,更多内容参考9054芯片数据手册程序退出前还要关闭9054的中断,代码如下:mov dx,ioport_cent+68h;设置tpc卡中9054芯片io口,
17、关闭中断in ax,dxand ax,0f7ffhout dx,ax4、pc机中断控制器8259的地址为20h、21h,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器imr对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令:mov al,20hout 20h,al中断结束返回dos时应将imr对应位置1,以关闭中断。四、 参考流程图五、 汇编语言程序;接1根线,单脉冲-irq,输入一个脉冲中断一次,输入10次结束.data segment int_vect equ 0bh ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h.中断类型号:73是在本
18、微机设备管理器中查出的. irq_mask_2_7 equ 011110111b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零 irq_mask_9_15 equ 011111111b ;中断0-7时全一,中断8-15时从低至高相应位为零 ioport_cent equ 0c000h ;tpc 卡中9054芯片的io地址,地址0e000h是在本微机设备管理器中查出的. csreg dw ? ipreg dw ? ;旧中断向量保存空间 irq_times dw 00h ;中断计数 msg1 db 0dh,0ah,'tpc pci card interrupt
19、9;,0dh,0ah,'$' msg2 db 0dh,0ah,'press any key to exit!',0dh,0ah,'$' msg3 db 0dh,0ah,'press dmc to interrupt 10 times and exit!',0dh,0ah,'$'data endsstacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datastart:;enable l
20、ocal interrupt input.386climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axmov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断in ax,dxor ax,0900hout dx,axmov al,int_vect ;保存原中断向量mov ah,35hint 21hmov ax,esmov csreg,axmov ipreg,bxmov ax,cs ;设置新中断向量mov ds,axmov dx,offset int_procmov al,int_vectmov ah,25
21、hint 21hin al, 21h ;设置中断掩码and al, irq_mask_2_7out 21h, alin al, 0a1hand al, irq_mask_9_15out 0a1h, almov ax,datamov ds,axmov dx,offset msg2mov ah,09hint 21hmov dx,offset msg3mov ah,09hint 21hmov irq_times,0ahstiloop1:cmp irq_times,0 ;等待中断并判断中断10次后退出jz exithlt;jz loop1 ;按任意键退出 jmp loop1exit: climov b
22、l, irq_mask_2_7 ;恢复中断掩码not blin al, 21hor al, blout 21h, almov bl, irq_mask_9_15not blin al, 0a1hor al, blout 0a1h, almov dx,ipreg ;恢复原中断向量mov ax,csregmov ds,axmov ah,25hmov al,int_vectint 21hmov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断in ax,dxand ax,0f7ffhout dx,axmov ax,4c00hint 21hint_proc pro
23、c farclipush axpush dxpush dsdec irq_timesmov ax,data mov ds,axmov dx,offset msg1mov ah,09hint 21hmov al,20h ;写入eoiout 0a0h,alout 20h,alpop dspop dxpop axstiiretint_proc endpcode endsend start六、 实验感想在课堂上,戴老师已经给我们演示过关于在dos环境中调试程序,所以对于这次实验,入手并不是很困难,但是在纯dos环境下操作还是第一次,主要把指令和流程记住就不会有太大的问题。实验四 模/数转换器一、 实验
24、目的了解模/数转换的基本原理,掌握adc0809的使用方法。二、 实验原理及内容1、实验电路原理图如下。通过实验台左下角电位器 rw1输出05直流电压送入adc0809通道0(in0),利用debug的输出命令启动/转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。实验电路图如下:2、编程采集in0输入的电压,在屏幕上显 示出转换后的数据(用16进制数)。三、 实验提示1、0809 地址: (原地址(isa) 动态分配地址)in0口: 298h 0c418h in1口: 299h 0c419h 2、利用debug的输出命令启动/转换器,输入命令读取转换结果。debug-o c418
25、 0 ;启动in0开始转换 -i c418 ;读转换结果 - d8 ;转换后的数字量 3、in0单极性输入电压与转换后数字的关系为: n = ui/(uref/256) 其中ui为输入电压,uref为参考电压,这里参考电压为pc机的+5v电压。四、参考流程图开始结束启动a/d转换延时读入转换后的数据所读数据赋给bl将al数据右移4位,显示其高四位将al数据赋给dldl加7dl加30h显示asc码为dl的字符将al数据赋给dl从bl中取出数据至al和0fh相与,显示其低四位dl加30hdl加7显示asc码为dl的字符dl大于9吗?dl大于9吗?有键按下吗?nnn五、汇编语言程序code segm
26、entassume cs:codestart:mov dx,0c418h ;adc0809地址为0c418h mov al,0 ;向其地址写入0,启动adc0809进行模数转换 out dx,al mov cx,0ffffh ;延时,计数值为ffff*ffff,使adc0809完成转换 t1:mov ax,0ffffh t2:dec ax jnz t2 loop t1 in al,dx ;将转换结果读进来 mov bl,al ;将数据的高位存入al,低位存入bl and al,11110000b and bl,00001111b mov cl,4 shr al,cl cmp al,0ah ;比
27、较al的值与0ah的大小 jae l0 ;若大于等于0ah转l0 add al,30h ;若小于0ah加30h转换成它的ascii码 jmp l1 l0:add al,37h ;大于0ah时加37h转换成它的ascii码 l1:cmp bl,0ah ;比较bl的值与0ah的大小 jae l2 ;若大于等于0ah转l2 add bl,30h ;若小于0ah加30h转换成它的ascii码 jmp l3 l2:add bl,37h l3:mov dl,al ;2号功能调用,显示高位 mov ah,02h int 21h mov dl,bl ;显示低位 mov ah,02h int 21h mov d
28、l,13 ;回车 mov ah,02h int 21h mov dl,10 ;换行 mov ah,02h int 21h mov dl,0ffh ;按任意键退出 mov ah,06h int 21h jz start mov ah,4ch int 21hcode ends end start五、实验现象(1) 用debug完成ad转换。(2) 调节实验台左下角电位器rw1,即可改变输入的模拟电压的值,经0809转换成数字量后显示在屏幕上。输入不同电压值,输出值也随其改变。六、实验感想这次实验程序中我用的是延迟法进行ad转换,所以转换部分程序很简单,主要困难是将2位数转换成它们的ascii码形式
29、并输出。认真的编程后又仔细检查,这部分也完成得很好。上机调试时,发现每次显示的电压值都不停往后输出,此时认为输出一次后加一个换行会比较好,加上后就出来上面的效果图了。调试过程中换了好几个实验箱,有好几次都是第一次调出来结果以后,再想给老师演示时就出问题。不过,幸亏我的程序没有什么问题,完成得还算顺利。实验五 pc机串行通信实验(8250)一、 实验目的1、 掌握串行接口芯片8250的基本原理和编程方法2、 熟悉pc机串行的基本连接方法3、 进一步了解串行通信的基本原理二、 实验内容1、 pc机rs-232串口自发自收。 按照pc机rs-232串口自发自收的连线方法连线。编写pc机自发自收串行通
30、信程序。要求:键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。 2、两台pc机间rs-232串口通信。按照pc机rs-232串口直接互连的方法连接两台pc机。 编写pc机直接互连串行通信程序。要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。三、硬件连接实验室提供了2根db-9连接器的串口连接线:1、孔(rs232)-针,9针全部直连方式。作为延长线使用2、孔-孔,引脚 2(rxd)、3(txd)交叉方式,其余信号直连作为交叉连接用。四、编程分析1、接收和发送数据可以采用查询方式。
31、2、8250输入的基准时钟频率为:1.8432mhz。3、pc机系统的异步通信接口电路参照书本微机原理与接口技术p223图7-45。五、汇编语言程序1、自发自收(非自检方式,把2、3端口短路)code segment assume cs:code start: mov al,10000000b ;8250初始化,设dlab=1 mov dx,3fbh out dx,al mov ax,30h mov dx,3f8h out dx,al ;写入除数低字节 mov al,ah mov dx,3f9h out dx,al ;写入除数高字节 mov al,00001011b ;8位数据,1位停止,奇校
32、验 mov dx,3fbh out dx,al ;写入线路控制寄存器 mov al,00000000b ;非自检 mov dx,3fch out dx,al ;写入modem控制寄存器 mov al,0 mov dx,3f9h out dx,al ;禁止中断wait_for: mov dx,3fdh ;读线路状态寄存器 in al,dx test al,00011110b ;出错否 jnz error test al,00000001b ;接收数据就绪否 jnz receive ;转接收 test al,00100000b ;发送器空否 jz wait_for ;返回等待 mov ah,1 i
33、nt 21h ;读键盘 mov dx,3f8h ;发送 out dx,al call delay jmp wait_for ;返回等待receive: mov dx,3f8h ;读接收数据 in al,dx and al,01111111b cmp al,03h ;是ctrl-c? jnz char mov ax,4c00h ;返回dos int 21h char: mov dl,al mov ah,2 ;显示接受字符 int 21h jmp wait_for ;返回等待 error:mov dl,'?' ;显示'?' mov ah,02h int 21h jm
34、p wait_fordelay proc push cx push dx mov cx,0 mov dx,1000 l1: loop l1 dec dx jnz l1 pop dx pop cx retdelay endp code ends end start2、甲机发送,乙机接收1)发送程序code segmentassume cs:codestart:mov al,80h;8250初始化,设dlab=1mov dx,3fbhout dx,almov ax,0030hmov dx,3f8hout dx,al;写入除数低字节mov al,ahmov dx,3f9hout dx,al;写入除数
35、高字节mov al,0ah;7位数据,1位停止,奇校验mov dx,3fbhout dx,al;写入线路控制寄存器mov al,03h;数据终端就绪,请求发送数据mov dx,3fchout dx,al;写入modem控制寄存器mov al,0mov dx,3f9hout dx,al;写中断允许寄存器,屏蔽中断wait_for:mov dx,3fdh;读线路状态寄存器in al,dxtest al,00100000b;发送寄存器空否,不空,返回等待jz wait_forsend:mov ah,1int 21hcmp al,21hjz exitmov dx,3f8h;读键盘,若是'!
36、39;,返回dos,若不是,则发送out dx,aljmp wait_for;返回等待exit:mov ax,4c00h int 21hcode endsend start2)接受程序code segmentassume cs:code start:mov al,80h;8250初始化,设dlab=1mov dx,3fbhout dx,almov ax,0030hmov dx,3f8hout dx,al;写入除数低字节mov al,ahmov dx,3f9hout dx,al;写入除数高字节mov al,0ah;7位数据,1位停止,奇校验mov dx,3fbhout dx,al;写入线路控制寄
37、存器mov al,03h;数据终端就绪,请求发送数据mov dx,3fchout dx,al;写入modem控制寄存器mov al,0mov dx,3f9hout dx,al;写中断允许寄存器,屏蔽中断wait_for:mov dx,3fdh;读线路状态寄存器in al,dxtest al,00000001b;接收数据就绪否jnz receive;转接收jmp wait_for;返回等待receive:mov dx,3f8h;读接收数据in al,dxand al,01111111b;保留7位数据cmp al,21h;是'!'?jnz charmov ax,4c00h;返回do
38、sint 21hchar:push axmov dl,almov ah,2;显示接收字符int 21hpop axjmp wait_for;返回等待code endsend start六、实验感想这次实验让我们深入了解了串行口发送和接收的原理,是对课堂知识的考查和补充。但是实验中只实现了8250的单工通信功能,我自己又想实现一个半双工通信的功能,这作为我最后一个自主设计实验来完成。实验六 竞赛抢答器(8255)一、实验目的、了解微机化竞赛抢答器的基本原理。、进一步学习使用并行接口。二、实验内容图5-4为竞赛抢答器(模拟)的原理图,逻辑开关k0k7代表竞赛抢答按钮07号,当某个逻辑电平开关置“”
39、时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出来,并使喇叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。三、 编程分析1、设置8255为c口输入、a口输出,读取c口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。2、计算组号的算法: 组号=c口数据连续除以2得到商为零的除法运算次数 mov ah,0 mov dl,2 mov cl,0 jisuan: div dl inc cl cmp al,0 jnz jisuan dec cl mov al,cl 3、响铃的dos功能调用: mov dl,
40、 7 ; 响铃ascii码为07 mov ah ,2 int 21h四、参考流程图五、汇编语言程序data segment list db 3fh,06h,5bh,4fh,66h,6dh,7dh,07hdata endsstack1 segment para stack db 20 dup(0)stack1 endscode segmentstart:assume cs:code,ds:data,ss:stack1 mov ax,data mov ds,ax mov bx,offset list mov dx,0c40bh mov al,10001001b out dx,al ;8255初始化
41、input: mov dx,0c408h mov al,0ffh out dx,al mov dx,0c40ah in al,dx ;c口输入 cmp al,0 jz input mov ah,0 mov dl,2 mov cl,0 jisuan: div dl inc cl cmp al,0 jnz jisuan dec cl mov al,cl ;计算出组号 xlat mov dx,0c408h out dx,al ;查表并从a口输出 mov dl,7 mov ah,2 int 21h ;响铃 mov ah,01h int 21h cmp al,' ' ;接收一字符 jz
42、inputexit: mov ah,4ch int 21hcode ends end start 六、实验现象初始状态为数码管全亮。拨下任一开关后,铃响,同时数码管显示该组的组号。按空格键,恢复到初始状态。七、实验感想在本次实验中组号的计算是一个难点,在这个算法的设计上花费了较多的时间。我用除2 循环实现要求之后,经过与别人交流,发现用移位算法更为直观,方便理解。但是除以2与右移一位本来是等价的,所以这两种算法本质还是相同的。调试过程中还是屡出故障,不过经仔细检查发现,均是实验箱接触不良导致的。实验七 pc机半双工通信(8250)自主设计实验一、实验目的结合教材上的知识,掌握8250半双工通信的设计方法,加深对8250串行通信实验的理解。二、实验内容两台pc机间rs-232串口通信。按照pc机rs-232串口直接互连的方法连接两台pc机。 编写pc机直接互连串行通信程序。要求:当甲机作为发送机时,乙机作为接收机;当甲机作为接收机时,乙机作为发送机。能实现半双工的字符发送与接收。三、编程分析1、接收和发送数据可以采用查询方式。2、8250输入的基准时钟频率为:1.8432mhz。结合第五次实验内容,将其发送接收程序稍加改动。在8250初始化后,加入一个判断子程序,相当于半双工通信中的开关作用。具体实现形式是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个人房产抵押权抵押权转让合同3篇
- 2025年度个人贷款担保转让合同4篇
- 2025版住宅室内精装修与装饰工程施工合同5篇
- 人类的起源和发展课件2
- 出租车行业环保措施考核试卷
- 团队建设力量培养项目计划书考核试卷
- 印刷业科技创新与成果转化考核试卷
- 二零二五年度艺术品交易居间代理合同样本3篇
- 2025年创业创新贷款协议
- 2025年合作知名作者的高需求小说电子书协议
- 广东省佛山市2025届高三高中教学质量检测 (一)化学试题(含答案)
- 人教版【初中数学】知识点总结-全面+九年级上册数学全册教案
- 2024年全国体育单招英语考卷和答案
- 食品安全管理制度可打印【7】
- 2024年九年级语文中考名著阅读《儒林外史》考前练附答案
- 抖音丽人行业短视频直播项目运营策划方案
- 2024年江苏扬州市邗城文化旅游发展有限公司招聘笔试参考题库含答案解析
- 小学六年级数学100道题解分数方程
- 社区获得性肺炎护理查房内科
- 浅谈提高中学生历史学习兴趣的策略
- 项目管理实施规划-无锡万象城
评论
0/150
提交评论