1、汇编语言程序设计 袁全清汇编语言课程设计报告课 题: 设计时钟显示程序 指导老师: 袁全 清 学 部: 信息科学与技术学部 专业班级: 10软件工程(1)班 学 号: 汇编程序设计报告一、任务及要求:任务:编程设计时实时钟(数字、模拟均可)要求:数字尽量大,颜色应鲜艳,程序尽量少。二、程序设计的分析1、时钟的获取:1 用软中断INT 1AHAH功能入口参数出口参数说明0读数CX、DX=高、低字AL=0,若时钟未过24双字为(时*60+分)*60+秒)*18.21写数CX、DX=高、低字2读时CHCLDH=时分秒CF=1,时钟未操作均为压缩BCD码3写时CHCLDH=时分秒4读日CXDHDL=年
2、月日5写日CXDHDL=年月日6写铃CHCLDH=时分秒CF=1,时钟未操作或已置响铃允许7请铃请除响铃直接读取CMOS中的数据 MOV AH,2CH INT 21H;通过2ch号DOS调用,获得时间信息 MOV AL,CH;小时 LEA SI,HOUR CALL PL2、时钟的显示7段显示如右图,由三横线和四竖线组成。每条线需要显示时,每一方块的ASCII码为219;不需显示时,方块的ASCII码为32。 由此7段显示和不显示的组合,形成09的数字。显示横线:先定位左边位置,显示数个方块显示竖线:数次定位每行位置并显示一个方块三、程序流程图如下: ZF=0COMPATRE PROC NEAR
3、STATRLEA DL,B0CALL SHOWCMP AL,30HJNZ Y1 N Y四完整程序STACK SEGMENT STACK STACK DB 1024 DUP (0)STACK ENDSDATA SEGMENTBWORD EQU THIS BYTE R0 DW (0) R1 DW (0) R2 DW (0) R3 DW (0) R4 DW (0) R5 DW (0) R6 DW (0) R7 DW (0);TEMP1 DW (0)TEMP2 DW (0)TEMP3 DW (0)TEMP4 DW (0);LED1 DB (0) ;时针十位显示LED2 DB (0) ;时针个位显示LE
4、D3 DB (0) LED4 DB (0) ;分针十位显示LED5 DB (0) ;分针个位显示LED6 DB (0)LED7 DB (0) ;秒针十位显示LED8 DB (0) ;秒针个位显示S_REG DB (0)M_REG DB (0)H_REG DB (0);-1-9个数字的显示方式-F0 DB 0 DB 5FH,0AH,0,0 DB 7CH,0AH,1,-1 DB 7CH,0AH,1,0 DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0 DB 5FH,0,0,-1 ;中间段F1 DB 0 DB 5FH,0,0,0 ;0灭 DB 7CH,0,1
5、,-1 ;0AH亮 DB 7CH,0,1,0 DB 5FH,0,0,1 DB 7CH,0AH,0,1 ;中上 DB 7CH,0AH,-1,0 ;中下 DB 5FH,0,0,-1F2 DB 0 DB 5FH,0AH,0,0 DB 7CH,0,1,-1 ;左上 DB 7CH,0AH,1,0 DB 5FH,0AH,0,1 DB 7CH,0,0,1 ;左下 DB 7CH,0AH,-1,0 DB 5FH,0AH,0,-1F3 DB 0 DB 5FH,0AH,0,0 DB 7CH,0,1,-1 DB 7CH,0,1,0 DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1
6、,0 DB 5FH,0AH,0,-1F4 DB 0 DB 5FH,0,0,0 DB 7CH,0AH,1,-1 DB 7CH,0,1,0 DB 5FH,0,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0 DB 5FH,0AH,0,-1F5 DB 0 DB 5FH,0AH,0,0 DB 7CH,0AH,1,-1 DB 7CH,0,1,0 DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0,-1,0 DB 5FH,0AH,0,-1F6 DB 0 DB 5FH,0AH,0,0 DB 7CH,0AH,1,-1 DB 7CH,0AH,1,0 DB 5FH,0
7、AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0,-1,0 DB 5FH,0AH,0,-1F7 DB 0 DB 5FH,0AH,0,0 DB 7CH,0,1,-1 DB 7CH,0,1,0 DB 5FH,0,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0 DB 5FH,0,0,-1F8 DB 0 DB 5FH,0AH,0,0 DB 7CH,0AH,1,-1 DB 7CH,0AH,1,0 DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0 DB 5FH,0AH,0,-1F9 DB 0 DB 5FH,0AH,0,0 DB 7
8、CH,0AH,1,-1 DB 7CH,0,1,0 DB 5FH,0AH,0,1 DB 7CH,0AH,0,1 DB 7CH,0AH,-1,0 DB 5FH,0AH,0,-1 ;-ROW DB 20COL DB 10T0 DB 0T1 DB 0T2 DB 0T3 DB 0T4 DB 0T5 DB 0;-DATA ENDSDO_WAIT: MOV AH,1 INT 16H JZ NO_KEYYES_KEY: MOV AH,0 INT 16H CMP AL,1BH JNZ NO_KEY CALL EXITNO_KEY: CALL READ_TIME CALL CONVERT_ASCII MOV AX
9、,0A2eH MOV CX,092BH CALL DISPLAY MOV CH,0AH CALL DISPLAY MOV CL,21H CALL DISPLAY MOV CH,09H CALL DISPLAY CALL MOVE JMP DO_WAIT EXIT: MOV TEMP1,0000H MOV TEMP2,184FH MOV BH,0FH CALL CLR_SCREEN RETMAIN ENDPREAD_TIME PROC NEAR ;读取时间时分秒 MOV AH,02H INT 1AH MOV H_REG,CH MOV M_REG,CL MOV S_REG,DH RETREAD_T
10、IME ENDPCONVERT_ASCII PROC NEAR;-以下为时分秒值转化为LED信号- MOV AL,H_REG AND AL,0F0H MOV CL,4 ROR AL,CL ADD AL,30H MOV LED1,AL ;给时针十位数赋值 MOV AL,H_REG AND AL,0FH ADD AL,30H MOV LED2,AL ;给时针个位数赋值 MOV AL,M_REG AND AL,0F0H MOV CL,4 ROR AL,CL ADD AL,30H MOV LED4,AL ;给分针十位数赋值 MOV AL,M_REG AND AL,0FH ADD AL,30H MOV
11、LED5,AL ;给分针个位数赋值 MOV AL,S_REG AND AL,0F0H MOV CL,4 ROR AL,CL ADD AL,30H MOV LED7,AL ;给秒针十位数赋值 MOV AL,S_REG AND AL,0FH ADD AL,30H MOV LED8,AL ;给秒针个位数赋值 MOV LED3,3AH MOV LED6,3AH RETDISPLAY PROC NEAR PUSH BX PUSH CX PUSH AX MOV AL,160 MUL CH MOV BL,CL ROL BL,1 MOV BH,0 ADD BX,AX POP AX MOV ES:WD_BUFF
12、ER+BX,AX POP CX POP BX RETDISPLAY ENDP DISPLAY_TIME1: MOV AL,BX MOV AH,1EH CALL DISPLAY INC CX INC BX DEC R0 JNZ DISPLAY_TIME1 RETDISPLAY_TIME ENDPCLR_SCREEN PROC NEAR MOV AH,06H MOV CX,TEMP1 MOV DX,TEMP2 INT 10H MOV AH,02H MOV DH,24H MOV DL,80 MOV BH,0 INT 10H RETCLR_SCREEN ENDP MOVE PROC NEAR LEA
13、BX,LED8 MOV CX,0832H CALL COMPARE LEA BX,LED7 MOV CX,082EH CALL COMPARE LEA BX,LED5 MOV CX,0828H CALL COMPARE LEA BX,LED4 MOV CX,0824H CALL COMPARE LEA BX,LED2 MOV CX,081EH CALL COMPARE LEA BX,LED1 MOV CX,081AH CALL COMPARE RETMOVE ENDPCOMPARE PROC NEAR MOV AL,BX CMP AL,30H JNZ Y1 LEA DI,F0 CALL XIA
14、NSHIY1: CMP AL,31H JNZ Y2 LEA DI,F1 CALL XIANSHIY2: CMP AL,32H JNZ Y3 LEA DI,F2 CALL XIANSHIY3: CMP AL,33H JNZ Y4 LEA DI,F3 CALL XIANSHIY4: CMP AL,34H JNZ Y5 LEA DI,F4 CALL XIANSHIY5: CMP AL,35H JNZ Y6 LEA DI,F5 CALL XIANSHIY6: CMP AL,36H JNZ Y7 LEA DI,F6 CALL XIANSHIY7: CMP AL,37H JNZ Y8 LEA DI,F7
15、CALL XIANSHIY8: CMP AL,38H JNZ Y9 LEA DI,F8 CALL XIANSHIY9: CMP AL,39H JNZ Y10 LEA DI,F9 CALL XIANSHIY10: RETCOMPARE ENDPXIANSHI PROC NEAR MOV DX,7 ADD DI,4S: MOV AL,DI ADD CL,AL DEC DI MOV AL,DI ADD CH,AL DEC DI MOV AH,DI DEC DI MOV AL,DI CALL DISPLAY ADD DI,7 DEC DX JNZ S RETXIANSHI ENDPPROGRAM ENDS END START 五、运行结果
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1