1、4、程序清单汇编程序代码如下:.Model small.386io8255_aequ 200hio8255_bequ 201hio8255kzequ 203h code segmentassumecs:code start:movdx,io8255kzmoval,90h;设置 8255 控制字,A 口输入,B 口输出outdx,alaa:movdx,io8255_ainal,dx;输入开关状态movdx,io8255_boutdx,al;把 A 口数据送 B 口寄存器,用 LED 显示输出jmpaa;循环codeendsendstart5、实验结果与分析通过开关从 PA 口输入数据,观察灯可知
2、,PB 口输出。实现了设计的功能。实验二 8259 中断控制器实验了解 8259 中断控制器的基本使用,掌握中断程序编程技术。使用单脉冲电路产生的脉冲信号作为 386EX 模块 8259 中断请求输入,每按一次单脉冲按键,触发一次中断,使 7 段数码管显示的“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。3、实验框图与电路图Model smalldatasegmentled_csequ200h led_cs1equ201hledcodedb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h olddd?dataends code segmentassu
3、me cs:code,ds:datastart:climovax,datamovds,axmoves,axinal,21handal,11011111b;mask byte out21h,alpushdsmovbx,0movds,bxleaax,cs:int_proc;WRITE INTERRUPT PROGRAM EMTRY ADDRESSmovbx,5;n=IRxmovsi,30h;base =30H addsi,bxsalsi,2;type num X 4 movds:si,axpushcspopaxmovds:si+2,ax popdsttt:leabx,ledcode stisss:
4、movch,1lll:cmpch,40h jesssjmplll int_proc procfarpushaxcalldispmoval,20hout20h,alpopax stiiret int_proc endp dispprocpushdxpushbxl:moval,6dh movdx,led_cs nopnopmoval,che:movdx,led_cs1 outdx,alshlch,1exitdisp:popax popbxpopdx retdispendpdelayprocpushecxmovecx,0fffffffhkk1:loopkk1 popecx retdelayendp单
5、片 8259 实验中,每按一次单脉冲按键,触发一次中断,使 7 段数码管显示的“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。实验三 定时/计数器 8254 实验熟悉 8254 在系统中的电路接法,掌握 8254 的工作方式及应用编程。二、实验内容使用 8254 两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各 1 秒。四、程序清单data segmenti8254_0 EQU 200Hi8254_1 equ 201h i8254kz equ 203h dataendscodesegmentmovmov movax,datads,ax dx,i8254kzal,3
6、6h;计数器 0 方式 3,BCD 码计数outdx,alax,1000写入循环计数初值 1000dx,i8254_0计数器 0 设置初值先写低字节al,ah后写高字节dx,i8254kzal,76h计数器 1 方式 3,二进制计数dx,i8254_1ddd:jmpdddhltcodeendsendstart五、实验结果与分析可以看到周期性的点亮及熄灭发光二极管各 1 秒。通过本次实验,掌握了 8253 的使用方法。对于时定时时间超出计时器计时范围的情况,可先通过一个计时器对时钟信号进行分频,再用其输出作为另一定时器的时钟信号。用这种方法可以极大地拓展计时的范围。实验四 8 位 A/D 转换实
7、验(查询方式)掌握模/数信号转换的基本原理,掌握 ADC0809 芯片的应用方法。从 ADC0809 通道 0 输入5V 可变电压,使用查询方式读取转换数据并在数码管上显示两位 16 进制数。AD_CSEQU200h; LED_CSEQU210HDATASEGMENTLEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H DATAENDSCODESEGMENTASSUME CS: CODE,DS:DATA START:MOVAX,DATAMOVDS,AXRPT:MOVDX,AD_CS;ADC 启动转换
8、地址OUTDX,ALMOVDX,AD_CS;获取 ADC EOC 状态地址ADDDX,2L1:INAL,DXTESTAL,01H;测试 EOC=1? JZL1MOVDX,AD_CS;读数据地址INCDXINAL,DXCALLDISP;显示数据JMPRPTDISPPROCMOVSI,OFFSET LEDCODE MOVBX,SIMOVCH,ALMOVCL,4RORAL,CL;截取 AL 高四位并转换。ANDAL,0FHMOVAH,0ADDBX,AXMOVAL,BX;获取 LED 显示编码MOVDX,LED_CS OUTDX,ALMOVAL,02HINCDX NOPOUTDX,AL;显示CALLD
9、ELAYMOVAL,CHANDAL,0FH;截取低四位,并转换MOVAH,0ADDSI,AXMOVAL,SI MOVDX,LED_CS OUTDX,ALMOVAL,01HINCDXRETDISPENDPDELAYPROC PUSHCXMOVCX,50HX1:LOOP X1 POP CX RETDELAYENDPCODEENDSENDSTART旋转电位器旋钮,改变模拟量大小,转换值在 00FF 之间变化。实验五 步进电机实验掌握步进电机的控制方法。编写实验程序,利用 8255A 口控制步进电机的运转。步进电机型号为20BY20H04,电压 5V,每转一圈需 48 步,每步旋转 7.5 度。三、实验框图及电路图.modelsmallio_addressequ200h data segmentspeed db 2 data ends code segmentdata start: movax,datamovdx,IO_ADDRESS adddx,03moval,80h;输出 8255 控制字outdx,alspeedin:a1:movdx,IO_ADDRESS;输出步进代码顺序为 1,3,2,6,4,c,8,9 moval,01hcalldelaymoval,03hmoval,02hmoval,06hmoval,04hmoval,0Chmoval,08hmoval,09hjmp
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1