ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:111.15KB ,
资源ID:5842516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5842516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多模块系统综合设计 doc.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多模块系统综合设计 doc.docx

1、多模块系统综合设计 doc多模块系统综合设计一实验目的:1熟悉微机系统硬件的综合设计方法;2掌握多模块程序设计的规则和方法。二实验内容 在以前单元接口实验的基础上,把多个接口部件连接成一个多功能的微机综合应用系统。系统包括以下可选功能: (1)用中断方式统计单次脉冲(键入)次数并在LED显示器上显示; (2)扫描4*4键盘,若按下09键,则在LED显示器最左边两位显示其数值;如为A-F功能键,则分别实现下列功能: A:LED显示器左二位显示A,同时发光二极管左循环流水灯显示。 B:LED显示器左二位显示B,同时发光二极管右循环流水灯显示。 C:LED显示器左二位显示C,同时发光二极管闪烁显示。

2、 D:LED显示器左二位显示D,同时右四位显示HELP。 E:LED显示器左二位以16进制显示8位乒乓开关的状态。 F:LED显示器左二位显示F,同时回到主程序。 (3)多种波形发生器,用PC键盘输入来控制DAC0832的输出波形,如按1输出锯齿波,按2输出三角波,按3输出方波,按4输出正弦波,按5退出程序。并用示波器观测输出波形。三、实验要求1 基本要求 (1)系统至少包括两种功能模块;由PC键盘控制选择实现功能(2)软件采用多模块程序结构2 提高要求 (1)三种或更多功能模块(2)改善人机接口四、实验报告要求(1) 实验目的和内容(2) 总体设计(3) 硬件设计:原理图(接线图)及简要说明

3、(4) 程序框图和清单(5) 实验结果和体会多模块系统综合设计一、总体设计(1)系统运行时,首先执行主程序模块,显示功能菜单,供选择运行各模块或返回DOS。 (2)利用8259实现脉冲计次;8255管理键盘和发光二极管。两片8位锁存器实现六位LED显示器动态刷新控制。二硬件设计1主要硬件单元:实验平台上有:4*4键盘电路电平开关电路发光二极管显示电路七段数码显示电路单脉冲发生电路。实验主板上有:分频电路地址译码器可编程并行接口8255单元模数转换ADC08单元数模转换DAC0832单元。 各硬件单元的电路原理图请参见实验箱简介,此处不再累述。2硬件主要跳线连接 请参见表3-1 表3-1 对应跳

4、线连接表实验平台引脚实验主板引脚 备 注实验平台引脚实验主板引脚 备 注 CS0CS-55 8255片选:280H283H CS4CS-DA 0832片选:290H293H L1 PA08255的A口用于控制LED流水灯的接线对照ROW1 PC08255的C口用于键盘操作,即接受小键盘的行(COL)列(ROW)电位状态信息 L2 PA1ROW2 PC1 L3 PA2ROW3 PC2 L4 PA3ROW4 PC3 L5 PA4COL1 PC4 L6 PA5COL1 PC5 L7 PA6COL1 PC6 L8 PA7COL1 PC7 P0 PB08255的B口接受乒乓开关状态接线对照 CS3CS-

5、AD0809片选:28BH28FH P1 PB1 +5R REF0809接正参考电压+5R P2 PB2 Q0CLK-AD给0809加外部时钟:Q0 P3 PB3 A0 A0809接受输入信号的通道号由地址线的A0A2决定 P4 PB4 A1 B P5 PB5 A2 C P6 PB6 IN4VOUT1DA的输出接AD4号口 P7 PB7 IRQ3 PLUS单脉冲(PLUS)申请中断CS1CS1LED数码管位选地址:284H287H CS2 CS2LED数码管位选地址:288H28BH三软件设计1功能模块的划分: 根据要求可把整个程序划分为六个功能模块:并行接口芯片8255A的A口LED流水灯显

6、示模块,B口读乒乓开关数值模块,C口简易键盘操作模块;8259的系统硬中断模块;D/A的波形输出模块,以及D/AA/D联调模块。其中8255的A口C口两个功能设计到一个程序中(SY8255.ASM),B口的功能模块设计在SY82552.ASM中,8259的系统硬中断模块在SY8259.ASM中,D/A的波形输出模块在SYAD2.ASM中, D/AA/D联调模块在SYAD1.ASM中,其中SYAD2.ASM由SYAD1.ASM调用形成A/D-D/A综合功能的大模块,SY82552.ASM由SY8255.ASM调用形成接口芯片8255A综合功能的大模块,各个大模块由主程序SY.ASM调用。 各个源

7、程序文件分别汇编,生成各自的目标文件,然后用LINK命令连接,生成可执行文件SY.EXE。其示意图如图1: 连接命令格式:LINK SY+SYAD1+SYAD2+SY8255+SY82552+SY82592各模块的具体分析: (1)主程序模块:功能:判断键入的数字键,分情况调用各个功能模块。若键入1,则调用8259功能模块,若为2, 则调用8255A综合功能模块,若为3, 则调用A/D-D/A综合功能大模块,若为4,则退出返回DOS环境。 SY8255.ASM SY82552.ASM SYAD1.ASM SYAD2.ASM SY8259.ASM SY.ASM MASM MASM MASM MA

8、SM MASM MASM SY8255.OBJ SY82552.OBJ SYAD1.OBJ SYAD2.OBJ SY8259.OBJ SY.OBJ LINK LINK 8255大功能模块 A/D-D/A大功能模块 8259功能模块 主程序模块 LINK 可执行文件SY.EXE 图 1流程框图及程序清单: 源程序如下:; 主程序模块SY.ASMEXTRN ADDA:FAR,F8259:FAR,F8255:FAR ;指出外部模块定义的标志符DATA SEGMENT PUBLIC DATA ;所有程序共用一个数据段,即一个DS值MESS DB 0DH,0AH,0DH,0AH DB * MAIN ME

9、NU *,0DH,0AH DB PRESS 1 TO MAKE 8259 INTERRUPT!,0DH,0AH DB PRESS 2 TO THE OPERATION OF 8255A!,0DH,0AH ;主菜单 DB PRESS 3 TO THE OPERATION OF DA/AD!,0DH,0AH DB PRESS 4 TO QUIT DOS!,0DH,0AH,0DH,0AH,$DATA ENDSSTACK SEGMENT para stack stack DB 100 DUP (?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STAC

10、KSTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AXBIG: LEA DX,MESS MOV AH,09H INT 21HBIG1: MOV AH,08H INT 21H CMP AL,1 JZ F59 CMP AL,2 JZ F55 CMP AL,3 JZ AD CMP AL,4 JZ QIT JMP BIG1F59: CALL F8259 MOV AL,00H JMP BIGF55: CALL F8255 MOV AL,00H JMP BIGAD: CALL ADDA MOV AL,00H JMP BIGQIT: MOV AH,4CH I

11、NT 21HCODE ENDS END START流程图请见图2 开 始 显示主菜单 等待键盘按键 Y N Y 键号是1 调用8259模块 是否返回? N Y N Y 键号是2 调用8255模块 是否返回? N Y N Y 键号是3 调用A/D-D/A模块 是否返回? N Y 键号是4 返回DOS N 图 2 主程序模块 (2) 8259系统硬中断模块:功能:可编程中断控制器采用PC机内的8259A,用单脉冲发生单元申请中断(IRQ3),利用中断服务子程序统计脉冲开关按下的次数,并用两位数码管显示开关按下次数。 流程框图及程序清单 流程框图如图 3 开 始 关中断 保护0AH号中断向量 置中断

12、向量 开放IRQ2中断屏蔽位 开中断 AL=60H,60H次中断一循环 N NUM=60H Y NUM=0 N 有键按下吗 Y 返回DOS 图 3 系统硬中断 源程序如下:; 系统硬中断模块 sy8259.asmDATA SEGMENT PUBLIC DATA ;各模块共用一个DS值MESS1 DB Press any to quit MAIN MENU !,0DH,0AH,$MESS2 DB A 8259 interrupt, press any to quit MAIN MENU!,0DH,0AH,$MY1 db 0hDCTBL DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh

13、,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71hINTMASK DB 0CSREG DW ?IPREG DW ?NUM DW ?NUM2 DW ?DATA ENDSstac segment para stack stackdb 128 dup(?)stac endscode segmentassume cs:code,ss:stac,ds:data,ES:DATAPUBLIC F8259 ;F8259定义为外部过程F8259 PROC FARstart: MOV AX,00H MOV NUM,AX MOV NUM2,AX CLI ;关中断 mov ax,data mov

14、 ds,ax mov ax,stac mov ss,ax LEA DX,MESS1 MOV AH,09H INT 21H mov al,0ah mov ah,35h int 21h MOV AX,ES ;保护0AH号中断向量(IRQ3对应0AH号) MOV CSREG,AX MOV IPREG,BX push ds MOV AX,CS MOV DS,AX mov dx,offset INTPROC ;置中断向量(如口地址为CS:DX) MOV AL,0aH MOV AH,25H INT 21H pop ds in al,21h and al,0f7h ;写屏蔽操作命令字OCW1,开IRQ3中断

15、屏蔽位 out 21h,al sti ;开中断LOP1: NOP NOP NOP NOP NOP NOP CALL DISP MOV AX,NUM CMP AX,060H JNZ LOP2 MOV AX,00H MOV NUM,AX MOV NUM2,AXLOP2: NOP MOV DL,0FFH MOV AH,06H INT 21H JZ LOP1 in al,21h or al,08h ;恢复OCW1内容 out 21h,al MOV DX,IPREG MOV AX,CSREG MOV DS,AX MOV AL,0ah ;恢复0AH号中断向量 MOV AH,25H INT 21H STI

16、;开中断 RETF8259 ENDP INTPROC PROC NEAR ;中断服务子程序 PUSH DS push ax MOV AX, DATA MOV DS,AX NOP MOV AX,NUM INC AX ;脉冲开关按一次,中断次数NUM就加1 MOV NUM,AX NOP MOV AL,20H OUT 20H,AL ;置中断方式字OCW2为非特殊的EOI中断结束 pop ax POP DS IRET ;中断返回INTPROC ENDPDISP PROC NEAR ;两位LED显示中断次数子程序 PUSH DS PUSH CX PUSH AX MOV CX,NUM MOV AX,CX

17、MOV BX,NUM2 CMP AX,BX JZ DISP0 MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS2 MOV AH,09H INT 21H MOV NUM2,CXDISP0: MOV CX,NUM MOV AX,CX AND AL,0FH MOV AH,AL MOV AL,CL MOV CL,04H SHR AL,CL MOV CH,AL MOV CL,AHDISPL: mov dx,288h mov al,02h out dx,al mov dx,284h mov al,cl mov ah,0 lea bx,dctbl mov si,ax mov

18、al,bx+si out dx,al CALL DELAY1DISPH: mov dx,288h mov al,01h out dx,al mov dx,284h mov al,ch mov ah,0 lea bx,dctbl mov si,ax mov al,si+bx out dx,al CALL DELAY1 POP AX POP CX POP DS RETDISP ENDPDELAY1 PROC NEAR ;延迟子程序 PUSH CX MOV CX,0F00H LOOP $ POP CX RETDELAY1 ENDPDELAY2 PROC NEAR PUSH AX PUSH CX MO

19、V CX,030HDL21: CALL DELAY1 LOOP DL21 POP CX POP AX RETDELAY2 ENDPcode ends end (3)并行接口8255A综合模块: 功能:利用8255的A口输出控制发光二极管,B口输入接收8位乒乓开关状态,C口接收小键盘行列状态实现一定的功能,采用反转法判断所按实验平台上的小键盘为何键,在数码管上显示按键信息:按 0到9数字键就在左边两个数码管上显示其数值;如为A-F功能键,则分别实现下列功能: A:数码管左二位显示A,同时L1到L8左循环流水灯显示。 B:数码管左二位显示B,同时L1到L8右循环流水灯显示。 C:数码管左二位显示C

20、,同时L1到L8闪烁显示。 D:数码管左二位显示D,同时右四位数码管显示HELP。 E:数码管左二位以16进制显示8位乒乓开关的状态。 F:数码管左二位显示F,同时回到主程序。其中,B口接受并显示乒乓开关状态由小模块SY82552完成,并受大模块SY8255调用。其它功能由SY8255完成。 模块SY8255的流程框图及程序清单 流程框图如图 4 开 始 显示主菜单 调键盘扫描子程序 Y Y 是A键 执行A功能 PC键盘按键否 N Y N Y 是B键 执行B功能 PC键盘按键否 N Y N Y 是C键 执行C功能 PC键盘按键否 N Y N Y 是D键 执行D功能 PC键盘按键否 N Y N

21、Y 是E键 执行E功能 PC键盘按键否 N Y Y 是F键 返 回 N 是数字键,左二位 数码管显示其数值 图 4 SY8255模块 源程序如下: ; 8255功能模块 sy8255.asmPA55 EQU 280HPB55 EQU 281HPC55 EQU 282H ;定义8255各口地址P55CTL EQU 283HDATA SEGMENT PUBLIC DATATABLE DB 0EEH,0DEH,0BEH,07EH,0EDH,0DDH,0BDH,07DH DB 0EBH,0DBH,0BBH,07BH,0E7H,0D7H,0B7H,077HDCTBL DB 3Fh,06h,5Bh,4Fh

22、,66h,6Dh,7Dh,07h,7Fh,6Fh DB 77h,7Ch,39h,5Eh,79h,71hMES DB * SUBMAIN MENU *,0DH,00AH DB Press any key on the small keyboard!,0DH,0AH DB Press NUM key to display num on the led!,0dh,0ah DB Press A for left cycle!,0DH,0AH DB Press B for right cycle!,0DH,0AH DB Press C for alternately display!,0DH,0AH D

23、B Press D to display HELP on the right four led!,0DH,0AH DB Press E to display the data of pingpang on the left tow led!,0DH,0AH DB Press F to quit to MAIN MENU!,0DH,0AH,0DH,0AH,$MESS DB *Press any key to main menu!*,0DH,0AH,0DH,0AH,$KEYC DB ?KEYR DB ?KEY DB ?NUM1 DB ?NUM2 DB ?DATA ENDSSTACK SEGMENT

24、 PARA STACK STACK DB 50 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKPUBLIC F8255 ;F8255定义为外部过程EXTRN F82552:FAR ;F82552为外部过程名F8255 PROC FARSTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES MOV AH,09 INT 21HLOP1: CALL TESTKEY ;调用检测小键盘按键子程序,键号在 CALL DISP ;变量KEY(默认为0) MOV AL,KEY CMP AL,0AH

25、JZ A0 CMP AL,0BH JZ B0 CMP AL,0CH JZ C0 CMP AL,0DH JZ DE CMP AL,0EH JZ EE CMP AL,0FH JZ FF MOV DL,0FFH MOV AH,6 INT 21H JZ LOP1 ;无PC键按下,则循环 JMP START ;按键不是A-F,则重新检测显示A0: LEA DX,MESS MOV AH,9 INT 21H CALL DISP MOV DX,PA55 MOV AL,0FEHA1: OUT DX,AL PUSH AX CALL DISP POP AX CALL DELAY2 ROL AL,1 PUSH AX

26、PUSH DX MOV DL,0FFH MOV AH,06H INT 21H POP DX POP AX JZ A1 MOV KEY,00H JMP STARTB0: LEA DX,MESS MOV AH,9 INT 21H CALL DISP MOV DX,PA55 MOV AL,0FEHB1: OUT DX,AL PUSH AX CALL DISP CALL DELAY2 CALL DISP POP AX ROR AL,1 PUSH AX PUSH DX MOV DL,0FFH MOV AH,06H INT 21H POP DX POP AX JZ B1 MOV KEY,00H JMP STARTDE: JMP D0EE: JMP E0FF: JMP F0C0: LEA DX,MESS MOV AH,9 INT 21H CALL DISP MOV DX,PA55 MOV AL,55HC1: OUT DX,AL CALL DELAY2 NOT AL PUSH AX PUSH DX MOV DL,0FFH MOV AH,06H INT 21H POP DX POP AX JZ C1 MOV KEY,00H JMP STARTE0: CALL DISP CALL

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1