我是学生,现在正在单片机设计,用8255和51单片机设计液晶显示的,但是我看不懂程序,主要是8255那一段,有哪个高手帮忙把程序注释和8255工作原理说一下啊,谢谢!!!!我用的是达盛科技的试验台。
;接线方法:
;PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255选择CS0(0CFA0H) ;8255扩展OCMJ2X8模块测试程序 ;------------------------------------------------ PA EQU 0CFA0H PB EQU 0CFA1H PCC EQU 0CFA2H PCTL EQU 0CFA3H STOBE0 EQU 70H ;PC0复位控制字 STOBE1 EQU 71H ;PC0置位控制字 CSEG AT 0000H LJMP START CSEG AT 4100H ;---------------------------------------- START: MOV DPTR, #PCTL MOV A, #88H MOVX @DPTR, A ;置PA口输出,PC口高4位输入,低4位输出 MOV A, #STOBE0 MOVX @DPTR, A MOV A, #0F4H ACALL SUB2 ACALL DELAY ;清屏 START1: MOV R0, #01H MOV R1, #3CH HE1: MOV DPTR, #PCC MOVX A, @DPTR JB ACC.7, HE1 ACALL SUB1 ACALL DELAY1 ACALL SUB2 DJNZ R1, HE1 ACALL DELAY LJMP START ;------------------------------------------------------- DELAY: MOV R2, #23H DEL0: MOV R4, #06FH DEL1: MOV R6, #06FH DEL2: DJNZ R6, DEL2 DJNZ R4, DEL1 DJNZ R2, DEL0 RET ;------------------------------------------------------- SUB2: MOV DPTR, #PA MOVX @DPTR, A MOV DPTR, #PCTL MOV A, #STOBE1 MOVX @DPTR, A INC R0 ;------------------------------------------------------- HE2: MOV DPTR, #PCC MOVX A, @DPTR JNB ACC.7, HE2 MOV DPTR, #PCTL MOV A, #STOBE0 MOVX @DPTR, A RET ;------------------------------------------------------- DELAY1: MOV R3,#00 MOV R5,#00 DLL: DJNZ R3,$ DJNZ R5,DLL RET ;----------------------------------------- SUB1: MOV A, R0 ;显示“临沂师范学院物理系欢迎你” MOVC A,@A+PC RET DB 0F0H,01D,00D,33D,57D DB 0F0H,02D,00D,50D,42D DB 0F0H,03D,00D,42D,06D DB 0F0H,04D,00D,23D,22D DB 0F0H,05D,00D,49D,07D DB 0F0H,06D,00D,52D,26D DB 0F0H,01D,01D,46D,79D DB 0F0H,02D,01D,32D,77D DB 0F0H,03D,01D,47D,21D DB 0F0H,04D,01D,27D,22D DB 0F0H,05D,01D,51D,13D DB 0F0H,06D,01D,36D,67D END
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |