1、 信息科学与工程学院 课程设计报告书 课程名称: 微机原理及应用课程设计 班 级: 学 号: 姓 名: 指导教师: 2011 年 12 月 一、 程序设计目的 综合运用本课程知识,利用集成电路设计实现一些中小规模电 子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识, 提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定 一定的基础。 二、 实验内容及具体要求 用 8088 设计一个能实现 0-9 整数加法运算的计算器,和用 2 位 LED 数码显示。键盘包括 0-9“+”和“=”12 个按键。 具体要求: 1.画出连接线路图或功能模块引脚连接图。 2.采用 8088CPU 作主
2、控制器,8255 作为并行接口电路实现按键的扫 描以及数码管的显示。 3.采用 2 个共阴极型 LED,只需显示 0255 范围内的值。 三、设计分析 8255A 写方式控制字 8255A 各端口结构 四、 流程图 否 否 是 否 是 否 是 是 否 开始 写方式控制字,初始化 8255A 键盘扫描开始 是否有键按下? 延时 两次结果是否相同? 检测值是否大于 9? 是否为 10? 调用 ADD 程序 结果放在 store 中 P 指针是否大于 0X300? 存贮并指针加 1 存贮数据 LED 显示 结束 五、程序清单 CODE SEGMENT ASSUME CS:CODE,DS:CODE B
3、EGIN: JMP BEGIN BUFF DB 1,2,3,4,5,6 TABLE1 DW 3E07H,3E0BH,3D0BH,3B0BH,3E0DH,3D0DH,3B0DH,3E0EH,3D0EH,3B0EH ; 对应 09 的键盘值 DW 370EH,370DH,370BH,3707H,3B07H,3D07H,2F07H,2F0BH,2F0DH,2F0EH,1F07H,1F0BH,1F 0DH ; 对应其他的键盘值 TABLE DB 3FH,6,5BH,4FH,66H,6DH,7DH,7,7FH,6FH,46H,40H,48H,00; 09 上的字型码 X DW 0 Y DW 0 F DB
4、 0 N DB 0 C DB 0 ADDF DB 0 SHI DB 0 GE DB 0 BEGIN: MOV AX,CS MOV DS,AX CALL CLEAR AGAIN: MOV DX,203H MOV AL,8255A CALL LED ;调用子程序 CALL KEY CMP F,1 JNE AGAIN CMP BL,9 ;对比数字键盘 JLE D_PROCE CMP BL,10 JE TO_ADD ; 转到加法子程序 CMP BL,11 JMP AGAIN ;返回继续循环 CLEAR1: CALL CLEAR CALL CLBUF JMP AGAIN D_PROCE: CMP N,1
5、 JE D_P_Y MOV CL,4 SHL X,CL MOV BH,0 ADD X,BX CALL BSHIFT MOV BUFF+5,BL JMP AGAIN D_P_Y: MOV CL,4 SHL Y,CL MOV BH,0 ADD Y,BX CALL BSHIFT MOV BUFF+5,BL JMP AGAIN TO_ADD CALL BSHIFT ; 加法子程序的具体实现 MOV BUFF+5,BL MOV F,0 MOV N,1 MOV ADDF,1 JMP AGAIN KEY PROC ;键盘扫描程序的实现 MOV DX,203H MOV AL,10001001B OUT DX,
6、AL ;写控制字 MOV F,0 MOV DX,201H MOV AL,0 OUT DX,AL MOV DX,202H IN AL,DX AND AL,0FH CMP AL,0FH JE K_EXIT MOV CX,3000 LOOP $ ; 延时 IN AL,DX AND AL,0FH PUSH AX MOV DX,203H MOV AL,10000010B; B_IN,C_OUT OUT DX,AL POP AX MOV BL,AL MOV DX,202H OUT DX,AL MOV DX,201H IN AL,DX AND AL,00111111H MOV BH,AL LEA SI,TABLE1 MOV CX,23 MOV AH,0 NK: CMP BX,SI JE FOUND INC AH ADD SI,2 LOOP NK FOUND: MOV AL,0 ;不断扫描,等待输入 MOV DX,2