北邮微机原理硬件实验报告及代码.doc

上传人:jian****018 文档编号:9566898 上传时间:2020-04-06 格式:DOC 页数:37 大小:1.79MB
返回 下载 相关 举报
北邮微机原理硬件实验报告及代码.doc_第1页
第1页 / 共37页
北邮微机原理硬件实验报告及代码.doc_第2页
第2页 / 共37页
北邮微机原理硬件实验报告及代码.doc_第3页
第3页 / 共37页
点击查看更多>>
资源描述
北京邮电大学微机原理硬件实验报告实验1: 熟悉实验环境及IO的使用 实验2: 8255A并行接口应用 实验3: 8253计数器/定时器的应用 班级:2010211128序号: 9 学号: 10210775 姓名: 林镇安 序号:14 学号: 10210780 姓名: 李达达 目录实验一 熟悉实验环境及IO的使用2一、实验目的2二、实验内容及要求2三、实验结果21、程序说明22、流程图43、源代码6四、实验总结9实验二 8255A并行接口应用9一、实验目的9二、实验任务及内容91、6 位数码管静态显示102、6 位数码管动态显示103、扩展部分10三、实验结果1(6位数码管静态显示)101、程序说明102、流程图113、源代码11四、实验结果2(6位数码管动态显示)131、程序说明132、流程图143、源代码15五、实验结果(扩展部分)171、程序说明172、流程图183、源代码18六、实验总结22实验三 8253计数器/定时器的应用22一、实验目的22二、实验任务及内容221音乐发生器222扩展部分23三、实验结果1(音乐发生器)231、程序说明232、流程图233、源代码24四、实验结果2(扩展部分)291、程序说明292、流程图293、源代码30五、实验总结34实验一 熟悉实验环境及IO的使用一、实验目的1 通过实验了解和熟悉实验台的结构,功能及使用方法。 2 通过实验掌握直接使用Debug 的I、O 命令来读写IO端口。 3 学会Debug 的使用及编写汇编程序二、实验内容及要求1 学习使用 Debug 命令,并用 I、O 命令直接对端口进行读写操作, 2 用汇编语言编写跑马灯程序。(使用 EDIT编辑工具)实现功能 A通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。 B通过输出端口控制灯的工作状态(低电平灯亮三、实验结果1、程序说明跑马灯程序共实现:16种灯型、4种速度、暂停、退出等功能。 16种灯型(红色点亮/白色熄灭),由SW0SW3控制(SW3取反)。S0S8S1S9S2S10S3S11S4S12S5S13S6S14S7S15 4种速度,由SW4SW5控制SW5 SW4速度计数周期0 01倍速1*FFH*7FFH0 11/2倍速2*FFH*7FFH1 01/4倍速4*FFH*7FFH1 11/6倍速6*FFH*7FFH 暂停,由SW6控制(执行程序前必须置SW6=1)SW6=1 运行SW6=0 暂停 退出,由SW7控制(执行程序前必须置SW7=1)SW7=1 运行SW7=0 退出(返回DOS)2、流程图3、源代码DAT SEGMENT S0 db 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;1 led L to R S1 db 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH, 7FH ;1 led R to L S2 db 7FH, 7FH,0DFH,0DFH,0F7H,0F7H,0FDH,0FDH ;1 led L to R skip 2 S3 db 0FEH,0FEH,0FBH,0FBH,0EFH,0EFH,0BFH,0BFH ;1 led R to L skip 2 S4 db 7FH, 3FH, 1FH, 0FH, 07H, 03H, 01H, 00H ;lighted leds 1by1 L to R S5 db 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H, 80H, 00H ;lighted leds 1by1 R to L S6 db 7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH, 7EH ;2 leds cross S7 db 0FFH, 7EH, 3CH, 18H, 00H, 18H, 3CH, 7EH ;led curtainDAT ENDSSTA SEGMENT STACK dw 100 dup(?)STA ENDS COD SEGMENTASSUME CS:COD,DS:DAT,SS:STADELAY PROC PUSH CX IN AL,DX;CHECK SPEED MOV AH,AL;AH IS A COPY OF AL AND AL,30H;BIT5/BIT4 IS SPEED CTRL ROR AL,1 ROR AL,1 ROR AL,1 ROR AL,1 ;OR AL,0FH; MOV BH,AL;FOR OUTER LOOP MOV BL,0FFH;FOR OUTER LOOP OUTER: MOV CX,07FF0H;FOR INNER LOOPINNER: NOP LOOP INNER DEC BX JNZ OUTER POP CX RETDELAY ENDPSTART: MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV DX,0E8E0H MAIN: ;MOV AL,40H;FOR DEBUG IN AL,DX;FOR INPUT MOV AH,AL;AH IS A COPY OF ALSHAPE0: MOV AL,AH AND AL,07H CMP AL,00H JNZ SHAPE1 MOV SI,OFFSET S0 JMP SHAPEOKSHAPE1: MOV AL,AH AND AL,07H CMP AL,01H JNZ SHAPE2 MOV SI,OFFSET S1 JMP SHAPEOKSHAPE2: MOV AL,AH AND AL,07H CMP AL,02H JNZ SHAPE3 MOV SI,OFFSET S2 JMP SHAPEOKSHAPE3: MOV AL,AH AND AL,07H CMP AL,03H JNZ SHAPE4 MOV SI,OFFSET S3 JMP SHAPEOKSHAPE4: MOV AL,AH AND AL,07H CMP AL,04H JNZ SHAPE5 MOV SI,OFFSET S4 JMP SHAPEOKSHAPE5: MOV AL,AH AND AL,07H CMP AL,05H JNZ SHAPE6 MOV SI,OFFSET S5 JMP SHAPEOKSHAPE6: MOV AL,AH AND AL,07H CMP AL,06H JNZ SHAPE7 MOV SI,OFFSET S6 JMP SHAPEOKSHAPE7: MOV SI,OFFSET S7 ;THE LAST CASESHAPEOK: MOV CX,08HBLINK: ;CHECK PAUSE OR STOP ;MOV AL,40H;FOR DEBUG IN AL,DX;FOR INPUT MOV AH,AL;AH IS A COPY OF AL AND AL,80H CMP AL,80H JNZ STOP;IF BIT7=0 THEN STOP MOV AL,AH AND AL,40H CMP AL,40H JNZ BLINK;IF BIT6=0 THEN PAUSE MOV AL,AH AND AL,08H CMP AL,08H JZ GETNOT;IF BIT3=1 THEN NOT MOV AL,SI JMP OUTPUTGETNOT: MOV AL,SI NOT ALOUTPUT: OUT DX,AL;FOR OUTPUT INC SI CALL DELAY;FOR OUTPUT DELAY LOOP BLINK JMP MAINSTOP: MOV AL,0FFH OUT DX,AL MOV AH,4CH INT 21HCOD ENDS END START四、实验总结通过本次实验,我了解并熟悉了实验台的结构、功能、使用方法;掌握读写IO端口的基本方法;学会使用Debug及编写汇编程序。本次实验中的代码,从编写,到修改,到最后定稿,经历的4个版本,每个版本都较前一次有质的飞跃。在对每一个版本改进的过程中,我都逐渐加深了对汇编语言的理解,锻炼了汇编编程及应用的能力。在最终版代码中,创新性地在数据段中,使用了类似数组的存储结构,存储每个灯型的8次输出对应值,取代移位方法,打破了移位对灯型的限制。利用此方法,可以实现任意灯型。如果完全使用8个拨码开关控制,能在一个程序中实现256种灯型:只需占用数据段的256*8=2k字节,代码段几乎不用改动。实验二 8255A并行接口应用一、实验目的1掌握 8255A 的功能及方式 0、1 的实现 2熟悉 8255A 与CPU 的接口,以及传输数据的工作原理及编程方法。 3了解七段数码管显示数字的原理。 4掌握同时显示多位数字的技术。二、实验任务及内容在实验一的基础上学习 PIO 芯片(8255 )编程应用,熟悉平台的主要内容。1、6 位数码管静态显示 在数码管电路上静态地显示 6 位学号,当主机键盘按下任意键时,停止显示,返回DOS 。 2、6 位数码管动态显示 在数码管电路 16 位数码管上按下图所示的规律,动态显示字符串 HELLO,当主机键盘按下任意键时结束。本实验应在上面实验的基础上完成,动态显示的速度可控制(快或慢),利用实验一读入端口的功能 3、扩展部分完成一个扫描键盘(PC口)输入自己的学号,并在数码管上显示三、实验结果1(6位数码管静态显示)1、程序说明在数码管上静态显示学号,可用拨码开关切换同组两个人的学号:SW0=1林镇安210775SW0=0李达达210780拨码开关控制程序运行/结束:(执行程序前必须置SW7=1)SW7=1 运行SW7=0 结束(返回DOS)2、流程图3、源代码DAT SEGMENT AddrA DW 0E800H AddrB DW 0E801H AddrC DW 0E802H AddrCTL DW 0E803H c0 db 0edh c1 db 21h c2 db 0f4h c3 db 0f1h c4 db 39h c5 db 0d9h c6 db 0ddh c7 db 61h c8 db 0fdh c9 db 0f9hDAT ENDSSTA SEGMENT STACK DB 100H DUP (?)STA ENDSCOD SEGMENT ASSUME CS:COD,DS:DAT,SS:STASHOW MACRO X,Y MOV AL,X MOV DX,AddrB OUT DX,AL MOV AL,Y MOV DX,AddrA OUT DX,AL ENDMSTOP: MOV DX,AddrB MOV AL,0 OUT DX,AL MOV AH,4CH INT 21HSTART: MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV AL,80H MOV DX,AddrCTL OUT DX,ALDISPLAY: MOV DX,0E8E0H IN AL,DX MOV AH,AL;AH IS A COPY OF AL AND AH,80H CMP AH,80H JNZ STOP;BIT7=0 FOR STOP AND AL,01H CMP AL,01H JZ LZA;BIT0=1 FOR LZALDD: SHOW 01H,c2 ;2 CALL DELAY SHOW 02H,c1 ;1 CALL DELAY SHOW 04H,c0 ;0 CALL DELAY SHOW 08H,c7 ;7 CALL DELAY SHOW 10H,c8 ;8 CALL DELAY SHOW 20H,c0 ;0 CALL DELAY JMP DISPLAYLZA: SHOW 01H,c2 ;2 CALL DELAY SHOW 02H,c1 ;1 CALL DELAY SHOW 04H,c0 ;0 CALL DELAY SHOW 08H,c7 ;7 CALL DELAY SHOW 10H,c7 ;7 CALL DELAY SHOW 20H,c5 ;5 CALL DELAY JMP DISPLAY;DELAY FOR 1MSDELAY PROC MOV CX,50OUTER: PUSH CX MOV CX,4000INNER: LOOP INNER POP CX LOOP OUTER RETDELAY ENDPCOD ENDS END START四、实验结果2(6位数码管动态显示)1、程序说明在数码管上动态显示“HELLO”,4种速度可调、暂停、退出。4种速度,由SW4SW5控制SW5 SW4速度计数周期0 01倍速1*1FH0 11/2倍速2*1FH1 01/4倍速4*1FH1 11/6倍速6*1FH暂停,由SW6控制(执行程序前必须置SW6=1)SW6=1 运行SW6=0 暂停退出,由SW7控制(执行程序前必须置SW7=1)SW7=1 运行SW7=0 退出(返回DOS)2、流程图3、源代码DAT SEGMENT AddrA DW 0E800H AddrB DW 0E801H AddrC DW 0E802H AddrCTL DW 0E803H MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0 POINT DW MESGDAT ENDSSTA SEGMENT STACK DW 100H DUP (?)STA ENDS COD SEGMENT ASSUME CS:COD,DS:DAT,SS:STA SHOW MACRO X,Y MOV AL,X MOV DX,AddrB OUT DX,AL MOV AL,Y MOV DX,AddrA OUT DX,AL ENDM START: MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV AL,80H;A/B/C IN MODE 0, OUTPUT MOV DX,AddrCTL OUT DX,AL MOV SI,POINT MOV BX,POINT ADD BX,7 DISPLAY: MOV DX,0E8E0H IN AL,DX AND AL,30H ROL AL,1 MOV CX,1FH OR CL,AL ;MOV CX,83; 0.5/(0.001*6)=83.333333SCAN: SHOW 01H,SI CALL DELAY1MS SHOW 02H,SI+1 CALL DELAY1MS SHOW 04H,SI+2 CALL DELAY1MS SHOW 08H,SI+3 CALL DELAY1MS SHOW 10H,SI+4 CALL DELAY1MS SHOW 20H,SI+5 CALL DELAY1MS MOV DX,0E8E0H IN AL,DX MOV AH,AL;AH IS A COPY OF AL AND AL,80H CMP AL,80H JNZ STOP;IF BIT7=0 THEN STOP LOOP SCAN AND AH,40H CMP AH,40H JNZ NONINC;IF BIT6=0 THEN PAUSE, NONINC SI INC SINONINC: CMP SI,BX JZ NEXT JMP DISPLAYNEXT: MOV SI,POINT JMP DISPLAYDELAY1MS PROC PUSH CX MOV CX,50OUTER: PUSH CX MOV CX,4000INNER: LOOP INNER POP CX LOOP OUTER POP CX RETDELAY1MS ENDPSTOP: MOV AL,0 MOV DX,AddrA OUT DX,AL MOV DX,AddrB OUT DX,AL MOV AH,4CH INT 21HCOD ENDS END START五、实验结果(扩展部分)1、程序说明采用 行反转法识别闭合键,把两次读取到的值相或; 16个按键分别对应于16个这样的值,依数值大小存成ARRAY数组;把向或得到的值与数组中的值比较,用在数组中的偏移量确定该按键所对应的数值。在读取到按键键盘输入后,循环读取按键键盘直到按键被释放,以实现防抖。按键键盘上,C键清除所有输入,D键清除最近一个输入,E键退出程序,返回DOS。2、流程图3、源代码DATA SEGMENT ID DB 6 DUP(0) ARRAY DB 11100111B,11101011B,11101101B,11101110B DB 11010111B,11011011B,11011101B,11011110B DB 10110111B,10111011B,10111101B,10111110B DB 01110111B,01111011B,01111101B,01111110B KEY DB 0EDH,21H,0F4H,0F1H,39H ;05 DB 0D9H,0DDH,61H,0FDH,0F9H ;69 DATA ENDS ;-STACK SEGMENT STACK STACK DB 100 DUP(0)STACK ENDS ;-CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK ;- MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,0E823H MOV AL,16H OUT DX,ALCLEAR:XOR DX,DX ; Record how many digits has been stored MOV CX,6 MOV AL,0 XOR SI,SILOPC: MOV IDSI,AL ;Clear all ID value INC SI LOOP LOPCDELETE: CMP DX,0 ;Do nothing if no digit JE NEXT DEC DX ;Digits number decrease one MOV AL,0 MOV SI,DX MOV IDSI,AL NEXT: CALL DISP ;Display the digits CALL READ ;Read key state CMP AL,0FFH ;No Key pressed ? JE NEXT ;No key pressed ;Key pressed! CLD ;Set: DI + 1 MOV CX,16 MOV DI,OFFSET ARRAY REPNZ SCASB ;Search array to find key code CMP CX,0 JE NFD ;Usually this is not going to ;happen,except sth wrong MOV BX,OFFSET ARRAY SUB DI,BX DEC DI CMP DI,9 ;Is the key 09? JBE ISNUM ;Key A and B not defined, ;reserve for future use. CMP DI,12 JE CLEAR ;Key C means clear all input digits CMP DI,13 ;Key D means delete one digit JE DELETE CMP DI,14 JE EXIT ;Key E means Exit the program. JMP NEXT ISNUM:NOPAGN: CALL READ ;Key pressed! CMP AL,0FFH ;Has the key been released? JNE AGN ;No:wait until it is ;released;Yes:begin to judge the key. MOV AL,KEYDI MOV SI,DX MOV IDSI,AL ;Store the input number to memery. INC DX CALL DISP CMP DX,7 ;All display unit has been occupied JE CLEAR JMP NEXTNFD: NOP ;Unknown state,just terminate the program.EXIT:MOV AX,4C00H INT 21HMAIN ENDP ;-READ PROC NEAR ;Read keyboard state, return key code PUSH DX MOV DX,0E803H MOV AL,81H OUT DX,AL MOV AL,00H MOV DX,0E802H OUT DX,AL IN AL,DX ;Read Row info MOV BL,AL MOV DX,0E803H MOV AL,88H OUT DX,AL MOV AL,00H MOV DX,0E802H OUT DX,AL IN AL,DX ;Read Colum info OR AL,BL ;Keep info in AL for SCASB POP DX RET READ ENDP;-DISP PROC NEAR ;Display 6 digits PUSH CX PUSH DX PUSH AX MOV BP,000FHLOPP:XOR SI,SI MOV CX,06H MOV DX,0E800H MOV AH,00000001BLOPD:MOV AL,IDSI OUT DX,AL MOV AL,AH ;Control which char to display INC DX OUT DX,AL ;Control which LED on DEC DX ROL AH,1 INC SI CALL DELAY ;Every char need to delay LOOP LOPD DEC BP JNZ LOPP POP AX POP DX POP CX RET DISP ENDP;- DELAY PROC ;Delay time PUSH AX PUSH CX MOV AX,0003H ;Outer loopLOP1: MOV CX,00H ;Inner loop LOOP $ DEC AX JNZ LOP1 POP CX POP AX RETDELAY ENDP ;- CODE ENDS END MAIN六、实验总结本次实验比较综合:在实验一的基础上,利用I/O端口芯片进行综合编程,也为实验三打下基础。程序功能较复杂,代码较繁杂。程序设计时,采用结构程序化方法自顶向下设计,使用结构程序化的思路,编写多个子程序和宏,互相嵌套组合,实现复杂的功能。在具体实践中,需掌握:子程序的用法,标号及跳转的配合,if逻辑、case逻辑、for循环逻辑、while循环逻辑在汇编语言中的实现方法,锻炼了逻辑思维,强化了汇编的能力。实验三 8253计数器/定时器的应用一、实验目的1、学习掌握8253用作定时器的编程原理。二、实验任务及内容1音乐发生器完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。根据计数器的性质,计数值音符与计数值对照(PDF中给出表格有误)1(do)2(re)3(mi)4(fa)5(so)6(la)7(si)低音1221089791817264中音61544845403632高音302724222018162扩展部分利用小键盘实现弹琴功能,并显示弹奏的乐谱。三、实验结果1(音乐发生器)1、程序说明完成一个音乐发生器,循环播放小步舞曲全曲。能在数据段存储:音符(17)、音阶(高中低)、音长(3拍),等曲谱信息。可以通过修改代码中的数据段,演奏任意简单(只有高中低音域)简谱(17)乐曲。数码管第一位显示当前播放的音符(17,不区分高中低音)。电脑键盘输入任意键退出程序返回DOS。2、流程图3、源代码DATA SEGMENT ;Counter/Timer Number LOU DB 122,108,97,91,81,72,64 MID DB 61,54,48,45,40,36,32 HIG DB 30,27,24,22,20,18,16 ;SongBooK XiaoBuWuQu BOK DB 5,1,2,3,4 DB 5,1,1 DB 6,4,5,6,7 DB 1,1,1 DB 4,5,4,3,2 DB 3,4,3,2,1 DB 7,1,2,3,1 DB 2 DB 5,1,2,3,4 DB 5,1,1 DB 6,4,5,6,7 DB 1,1,1 DB 4,5,4,3,2 DB 3,4,3,2,1 DB 2,3,2,1,7 DB 1 DB 3,1,2,3,1 DB 2,5,6,7,5 DB 1,6,7,1,5 DB 4,3,4,2 DB 2,3,4,5,6,7 DB 1,7,6 DB 7,2,4 DB 5 DB 5,1,7,1 DB 6,1,7,1 DB 5,4,3 DB 2,1,7,1,2 DB 5,6,7,1,2,3 DB 4,3,2 DB 3,5,1,7 DB 1 LEN EQU $-BOK ;TON 1-LOW,2-MID,3-HIG TON DB 2,2,2,2,2 DB 2,2,2 DB 2,2,2,2,2 DB 3,2,2 DB 2,2,2,2,2 DB 2,2,2,2,2 DB 1,2,2,2,2 DB 2 DB 2,2,2,2,2 DB 2,2,2 DB 2,2,2,2,2 DB 3,2,2 DB 2,2,2,2,2 DB 2,2,2,2,1 DB 2 DB 3,3,3,3,3 DB 3,2,2,2,2 DB 3,2,2,3,2 DB 2,2,2,2 DB 2,2,2,2,2 DB 3,2,2 DB 2,2,2 DB 2 DB 2,2,1,2 DB 2,2,1,2 DB 2,2,2 DB 2,2,1,2,2 DB 1,1,1,2,2,2 DB 2,2,2 DB 2,2,2,1 DB 2 ;RHY 1-Quarter beat;2-Half beat;4-One beat;8-Two beat;12-Three beat. RHY DB 4,2,2,2,2 DB 4,4,4 DB 4,2,2,2,2 DB 4,4,4 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 12 DB 4,2,2,2,2 DB 4,4,4 DB 4,2,2,2,2 DB 4,4,4 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 12 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 4,2,2,2,2 DB 4,2,2,4 DB 2,2,2,2,2,2 DB 4,4,4 DB 4,4,4 DB 12 DB 4,2,2,4 DB 4,2,2,4 DB 4,4,4 DB 2,2,2,2,4 DB 2,2,2,2,2,2 DB 4,4,4 DB 2,2,4,4 DB 12 KEY DB 21H,0F4H,0F1H,39H,0D9H,0DDH,61H; 07 TBOK DB 0 TTON DB 0 ;never used TRHY DB 0 COUNT DB 0DATA ENDS;-STACK SEGMENT STACK STACK DW 100H DUP(?)STACK ENDS;-CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK ;-DELAY MACRO TIME LOCAL LOPA PUSH CX MOV AX,TIME ;AX=TRHY*0FFH LOPA: MOV CX,0FFFFHLOPC: NOP LOOP LOPC ;MOV CX,0H ;control time for dAX, 0FFH*188H for 0.25s ;LOOP $ DEC AX JNZ LOPA POP CXENDM;-MUSIC MACRO ;Write counter/timer number, music on MOV AL,COUNT MOV DX,0E820H ;Use Counter 0 OUT DX,AL ;Write counter 0ENDM;- READ PROC ;Read one note/rhyme/tone MOV AL,BOKBX ;BX is the order in BOK/RHY/TON XOR AH,AH MOV SI,AX DEC SI MOV TBOK,AL ;Save note MOV AL,RHYBX MOV TRHY,AL ;Save rhyme MOV AL,TONBX CMP AL,1 JE ISLOW CMP AL,2 JE ISMID CMP AL,3 JE ISHIGISLOW:MOV AL,LOUSI ;Find counter/timer number JMP EXITRISMID:MOV AL,MIDSI JMP EXITRISHIG:MOV AL,HIGSI EXITR:MOV COUNT,AL ;Save counter/timer number RET READ ENDP ;- RHYME PROC ;Control rhyme MOV AL,TRHY MOV AH,0FFH ;AH is time of Quarter beat MUL AH DELAY AX ;Rhyme, delay time in AX RETRHYME ENDP;-DISP PROC ;Display note being played MOV DX,0E800H MOV AL,BOKBX ;Get note XOR AH,AH MOV DI,AX DEC DI MOV AL,KEYDI ;Get note char OUT DX,AL MOV AL,00000001B ;Only one digit on MOV DX,0E801H OUT DX,AL RETDISP ENDP ;- MAIN: ;Main program start here MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,0E823H ;Initialize 8253 MOV AL,00010110B ;Use counter 0 OUT DX,AL MOV AL,80H ;initialize 8255 MOV DX,0E803H OUT DX,AL PLAY:MOV CX,LEN ;Get books length XOR BX,BX ;Record current char being playedLOP: CALL READ ;Read note/rhyme/tone CALL DISP ;Display note being played MUSIC ;Music on CALL RHYME ;Control rhyme INC BX ;Next note MOV AH,0BH
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!