中南大学微机原理实验代码硬件部分Word文件下载.docx
- 文档编号:20541427
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:40
- 大小:21.49KB
中南大学微机原理实验代码硬件部分Word文件下载.docx
《中南大学微机原理实验代码硬件部分Word文件下载.docx》由会员分享,可在线阅读,更多相关《中南大学微机原理实验代码硬件部分Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
JZSTART;
无按键则跳回继续循环,有则退出
QUIT:
MOVAX,4C00H;
返回到DOS
INT21H
CODEENDS
ENDSTART
T138.asm
地址译码电路设计实验
*****************************************************************
Y0EQUIOY0+00H;
译码电路输出Y6对应的端口地址
Y1EQUIOY0+20H;
译码电路输出Y7对应的端口地址
MOVDX,Y0;
读写片选接Y6的端口
INAL,DX
OUTDX,AL
MOVDX,Y1;
读写片选接Y7的端口
T8255-1.asm
8255流水灯显示实验
****************根据查看端口资源修改下列符号值*******************
MY8255_AEQUIOY0+00H*4;
8255的A口地址
MY8255_BEQUIOY0+01H*4;
8255的B口地址
MY8255_CEQUIOY0+02H*4;
8255的C口地址
MY8255_MODEEQUIOY0+03H*4;
8255的控制寄存器地址
DATASEGMENT
LADB?
;
定义数据变量
LBDB?
DATAENDS
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVDX,MY8255_MODE;
定义8255工作方式
MOVAL,82H;
工作方式0,A口为输出,B口为输入
MOVDX,MY8255_A;
写A口发出的起始数据
MOVAL,80H
MOVLA,AL
PAN:
MOVDX,MY8255_B
INAL,DX
CMPAL,01H
JEZUO
CMPAL,02H
JEYOU
CMPAL,03H
JESHAN
CMPAL,04H
JEQUIT
JMPPAN
ZUO:
CALLDALLY
MOVAL,LA;
将A口起始数据右移再写入A口
ROLAL,1
MOVDX,MY8255_A
INAL,DX
JMPPAN;
YOU:
RORAL,1
SHAN:
MOVAL,00H
MOVDX,MY8255_A
OUTDX,AL
CALLDALLY
MOVAL,0FFH
结束程序退出
DALLYPROCNEAR;
软件延时子程序
PUSHCX
PUSHAX
MOVCX,3FFH
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
POPAX
POPCX
RET
DALLYENDP
T8255-2.asm
IOY0EQU0C400H;
MY8255_AEQUIOY0+00H*4;
MY8255_BEQUIOY0+01H*4;
MY8255_CEQUIOY0+02H*4;
MY8255_MODEEQUIOY0+03H*4;
STACK1SEGMENTSTACK
STACK1ENDS
DATASEGMENT
LADB?
DATAENDS
CODESEGMENT
START:
定义8255工作方式
CMPAL,31H
JEZUO
CMPAL,32H
JEYOU
CMPAL,33H
JESHAN
CMPAL,34H
ROLAL,1
JMPZUO
RORAL,1
JMPYOU
MOVAL,00H
MOVAL,0FFH
JMPSHAN
QUIT:
DALLYPROCNEAR;
D1:
D2:
DALLYENDP
CODEENDS
Sound.asm
电子发声设计实验
IOY0EQU9C00H
MY8254_COUNT0EQUIOY0+00H*4;
8254计数器0端口地址
MY8254_COUNT1EQUIOY0+01H*4;
8254计数器1端口地址
MY8254_COUNT2EQUIOY0+02H*4;
8254计数器2端口地址
MY8254_MODEEQUIOY0+03H*4;
8254控制寄存器端口地址
FREQ_LISTDW371,495,495,495,624,556,495,556,624;
频率表
DW495,495,624,742,833,833,833,742,624
DW624,495,556,495,556,624,495,416,416,371
DW495,833,742,624,624,495,556,495,556,833
DW742,624,624,742,833,990,742,624,624,495
DW556,495,556,624,495,416,416,371,495,0
TIME_LISTDB4,6,2,4,4,6,2,4,4;
时间表
DB6,2,4,4,12,1,3,6,2
DB4,4,6,2,4,4,6,2,4,4
DB12,4,6,2,4,4,6,2,4,4
DB6,2,4,4,12,4,6,2,4,4
DB6,2,4,4,6,2,4,4,12
MOVAX,DATA
MOVDX,MY8254_MODE;
初始化8254工作方式
MOVAL,36H;
定时器0、方式3
BEGIN:
MOVSI,OFFSETFREQ_LIST;
装入频率表起始地址
MOVDI,OFFSETTIME_LIST;
装入时间表起始地址
PLAY:
MOVDX,0FH;
输入时钟为1.0416667MHz,1.0416667M=0FE502H
MOVAX,0E502H
DIVWORDPTR[SI];
取出频率值计算计数初值,0F4240H/输出频率
MOVDX,MY8254_COUNT0
OUTDX,AL;
装入计数初值
MOVAL,AH
MOVDL,[DI];
取出演奏相对时间,调用延时子程序
ADDSI,2
INCDI
CMPWORDPTR[SI],0;
判断是否到曲末?
JEBEGIN
判断是否有按键按下?
JZPLAY
退出时设置8254为方式2,OUT0置0
MOVAL,10H
DALLYPROC;
延时子程序
D0:
MOVCX,200H
DECDL
JNZD0
T8254-1.asm
8254计数应用实验
INTR_IVADDEQU01CCH;
INTR对应的中断矢量地址
INTR_OCW1EQU0A1H;
INTR对应PC机内部8259的OCW1地址
INTR_OCW2EQU0A0H;
INTR对应PC机内部8259的OCW2地址
INTR_IMEQU0F7H;
INTR对应的中断屏蔽字
PCI_INTCSREQU9438H;
PCI卡中断控制寄存器地址
CS_BAKDW?
保存INTR原中断处理程序入口段地址的变量
IP_BAKDW?
保存INTR原中断处理程序入口偏移地址的变量
IM_BAKDB?
保存INTR原中断屏蔽字的变量
STR1DB'
COUNT:
$'
显示的字符串
CLI
MOVDX,PCI_INTCSR
SUBDX,19H
MOVDX,PCI_INTCSR;
初始化PCI卡中断控制寄存器
MOVAX,1F00H;
向PCI_INTCSR中写入003F1F00H
OUTDX,AX
ADDDX,2
MOVAX,003FH
MOVAX,0000H;
替换INTR的中断矢量
MOVES,AX
MOVDI,INTR_IVADD
MOVAX,ES:
[DI]
MOVIP_BAK,AX;
保存INTR原中断处理程序入口偏移地址
MOVAX,OFFSETMYISR
MOVES:
[DI],AX;
设置当前中断处理程序入口偏移地址
ADDDI,2
MOVCS_BAK,AX;
保存INTR原中断处理程序入口段地址
MOVAX,SEGMYISR
设置当前中断处理程序入口段地址
MOVDX,INTR_OCW1;
设置中断屏蔽寄存器,打开INTR的屏蔽位
MOVIM_BAK,AL;
保存INTR原中断屏蔽字
ANDAL,INTR_IM
STI
MOVDX,OFFSETSTR1;
显示字符串
MOVAH,9
MOVAL,10H;
计数器0,方式0
MOVDX,MY8254_COUNT0;
MOVAL,4
WAIT1:
JZWAIT1;
无按键则跳回继续等待,有则退出
恢复PCI卡中断控制寄存器
MOVAX,0000H
恢复INTR原中断矢量
MOVAX,IP_BAK;
恢复INTR原中断处理程序入口偏移地址
[DI],AX
MOVAX,CS_BAK;
恢复INTR原中断处理程序入口段地址
恢复INTR原中断屏蔽寄存器的屏蔽字
MOVAL,IM_BAK
MYISRPROCNEAR;
中断处理程序MYISR
MOVAL,35H
MOVAH,0EH
INT10H
MOVAL,20H
重装计数初值
OVER:
清PCI卡中断控制寄存器标志位
MOVDX,INTR_OCW2;
向PC机内部8259发送中断结束命令
OUT20H,AL
IRET
MYISRENDP
T8254-2.asm
8254定时应用实验
SECDW0;
秒计时变量
COUNTDB0
保存INTR原中断处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 微机 原理 实验 代码 硬件 部分