1、汇编语言+微型计算机技术数据采集系统的设计与实现程序框图一.实验图1.主程序图1. 中断流程图二.芯片的检测方案1.8255A 8255A地址是PA口CS+OH,PB口CS+1H,PC口CS+2H,命令控制口CS+3H,其中,CS为8255A片选信号首地址,若CS=200H,则,PA口地址为200H,PB口地址为201H,PC口地址为202H,控制口地址为203H。 将K0K7分别连接至8255A的PB0PB7,将L0L7分别连接至8255A的PC0PC7,8255ACS55连至译码处的200207插孔。 DATA SEGMENT DATA ENDS STACK SEGMENT STACK S
2、TA DW 50 DUP() TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV DX,203H MOV AL,92H OUT DX,ALBG: MOV DX,201H IN AL,DX MOV DX,202H OUT DX,AL JMP BG CODE ENDS END START2.8259 1.单脉冲电路 所谓单脉冲电路就是每次按下并放开按钮后,会产生一个脉冲信号。该电路主要由基本R-S触发器组成,两个反相器用户与提高驱动能力。 当开关按下时,在上面产生下
3、降沿,放开按钮后,回到高电平。 下面是按下时,立即产生上升沿。 2.中断的使用 应用8259的IRO作中断输入,中断类型号是8,在中断向量表中,要设置中断类型号是8的中断向量,即本实验程序中的中断服务程序的首地址,要存入中断向量表中对应的存储单元。 8259模块的CS59连地址译码区的210H-217H,IRO按”脉冲源”区的UP。8255A连至200H-207H,8255A的PA0-PA7分别连接发光二极管的L7-L0,8259与系统的连接如图。-STACK SEGMENT PARA STACK STACK DB 128 DUP(?)STACK ENDSCODE SEGMENT PARA P
4、UBLICCODE ASSUME CS:CODE,SS:STACK,DS:CODESTART: MOV AL,13H MOV DX,220H OUT DX,AL MOV DX,211H MOV AL,8 OUT DX,AL MOV AL,1 OUT DX,AL MOV AX,0 MOV DS,AX LEA AX,INT0 MOV DS:4*8,AX MOV AX,CS MOV DS:4*8+2,AX MOV DX,20BH MOV AL,80H OUT DX,AL MOV BL,0F0H MOV AL,BL MOV DX,208H OUT DX,AL STIREPEAT:HTL JMP REP
5、EATINT0 PROC Near ROL BL,1 MOV AL,BL MOV DX,208H OUT DX,AL MOV DX,220H MOV AL,20H OUT DX,AL IRET INT0CODE ENDS END START3.8253 由于CLK1接1MHZ,其脉冲周期为1us,经过计数器1作100分频后,其OUT1输出周期为0.1ms,作为计数器0的输入(CLK0),有进故宫计数器0作10000分频后,其OUT0输出周期为1000ms的方波,使得LED点亮和熄灭各500ms时间。 实验电路接线。GATE0-GATE1接至电源+5V,CLK0接OUT1,OUT0用线连至一个发
6、光管(L0),CLK接1MHZ,CS53片选孔用线连至译码处208H-20FH这个孔。CONTROL EQU 20BHCOUNTO EQU 208HCOUNT1 EQU 209HCOUNT2 EQU 20AHCODE SEGMENT ASSSUME CS:CODESTART PROC NEAR MOV AL,36H;00110110B MOV DX,CONTROL OUT DX,AL MOV AX,10000 MOV DX,COUNTO OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,76H;01110100B MOV DX,CONTROL OUT DX,AL MOV
7、 AX,100 MOV DX,COUNT1 OUT DX,AL MOV AL,AH OUT DX,AL JMP $START ENDPCODE ENDSEND START4.ADC0809 CS79接译码处210H-217H这个插孔。ADC0809的CS09接译码处,AD0809的09IN0接至电位器VIN的中心抽头插孔,CLOCK的频率一般不要超过0.5MHZ,在实验板上经过分频后,分别产生有1MHZ,0.5MHZ,及0.25MHZ的脉冲信号(),可以用来作为ADC0809的CLOCK脉冲信号。Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00LEDFEQ E
8、QU 38HCODE SEGMENTASSUME CS:CODE,DS:CODESTART: PUSH CS POP DS CALL DELAY MOV DX,D8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV CX,06HXZ: MOV DX,D8279 MOV AL,00H OUT DX,AL LOOP XZ MOV DX,D8279 MOV AL,5EH OUT DX,AL MOV DX,D8279 MOV AL,77H OUT DX,AL NOPBG: MOV DX,208H MOV AL,0 OUT DX,AL CALL
9、 DELAY IN AL,DX MOV CL,04H ROR AL,CL AND AL,0FH PUSH AX MOV DX,Z8279 MOV AL,81H OUT DX,AL POP AX LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL CALL DELAY JMP BGLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71HDELAY PROC NEAR PUSH CX MOV CX,0F00H LOOP $ POP CX RET DELAY ENDPCODE ENDS
10、END START 三,主程序SATCK SEGMENT PARA STACKSTACK DB 128 DUP(?)STACK ENDSCODE SEGMENT PARA PUBLICCODE ASSUME CS:CODE,SS:STACK,DS:CODESTART: MOV DX,20BH MOV AL, OUT DX,AL /8255的初始化 MOV AL,13H MOV DX,210H OUT DX,AL MOV AL,8 IR0 MOV DX,211H OUT DX,AL MOV AL,1 OUT DX,AL MOV AX,0 MOV DS,AX LEA AX,INTO MOV DS:
11、4*8,AX MOV AX,CS MOV DX:4*8+2,AX MOV DX,203H MOV AL,80H OUT DX,AL MOV BL,1 MOV AL,BL MOV DX,200H OUT DX,ALSTIREPEAT HLT JMP REPEATINTO PROC Near ROL BL,1 MOV AL,BL MOV DX,200H OUT DX,AL MOV DX,210H MOV AL,20H OUT DX,AL IRET INTO ENDPA/D PUSH CS POP DS CALL DELAY MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL
12、MOV AL,LEDFEQ OUT DX,AL MOV CX,06HXZ: MOV DX,D8279 MOV AL,00H OUT DX,AL LOOP XZ MOV DX,D8279 MOV AL,5EH OUT DX,AL MOV DX,D8279 MOV AL,77H OUT DX,AL NOPBG: MOV DX,208H MOV AL,0 OUT DX,AL CALL DELAY IN AL,DX MOV CL,04H ROR AL,CL AND AL,0FH PUSH AX MOV DX,Z8279 MOV AL,81H OUT DX,AL POP AX LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL CALL DELAY JMP BGLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71HDELAY PROC NEAR PUSH CX MOV CX,0F00H LOOP $ POP CX RET DELAY ENDPCODE ENDSEND START