《微机原理及应用课程设计(常用版).docx》由会员分享,可在线阅读,更多相关《微机原理及应用课程设计(常用版).docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理及应用课程设计(常用版)(可以直接使用,可编辑 完整版资料,欢迎下载)二一三二一四学年第 二 学期电子信息工程系课程设计报告书姓 名: 陈 凯 学 号: 202113136068 班 级: 电子信息工程2021级 3 班 课程名称: 微机原理及应用课程设计 学时学分: 1周 1学分 指导教师: 闵华松 二一四年二月一、课设目的综合运用本课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。二、课程设计内容与要求基本功能:1 建立通信录文档 2 根据名字查询 3 显示通
2、信录报表smenu db telecomm record management ,0dh,0ah db 1.telecomm record input,0dh,0ah db 2.telecomm record query,0dh,0ah db 3.telecomm record output,0dh,0ah db 0. The end ,0dh,0ah db select please(1,2,3,0): $要求:1 用到文件的建立、打开、读出、写入、关闭等文件操作的系统调用等;2 用到宏定义及宏调用;3 用到子程序;4 充分发挥自己的潜能,在完成每个题目的基本功能的基础上,对学有余力的同学,
3、可进一步扩展新的功能。如题目一中的文件拷贝可增加对指定文件名、扩展名、日期、时间等的文件进行。题目二可增加按人名、或按 号码排序等功能;5 每人独立完成1个题目的基本功能,并能在其上做些完善。包括设计报告和程序清单(带注释),运行结果及有关运行说明;6 程序检查。分优、良、中、及格、不及格 如为不及格,下学期需进行重新程序设计;7 课程设计报告,正规书写,否则不计成绩;封面:学号、姓名、班级、专业、指导教师、课程设计时间等信息;课程设计的题目(小三 黑体);要求:正文:(小四,单倍距);A、在微机课程设计中,所使用的基本的知识点描述;例如(文件的建立、打开、读出、写入、关闭等文件操作的系统调用
4、);列出宏定义清单列表; B、程序的流程图;详细描述程序中执行的过程;C、(关键)程序清单(要求有程序注释);D、如有硬件需画出硬件电路图;三、程序流程图开始选择功能显示信息查找信息添加信息写入(读取)文件返回主菜单或退出结束四、程序代码 DATA SEGMENT TIPS0 DB Tips:,0DH,0AH,$ ;插入提示信息 TIPS1 DB SEX: 1:male 0:female,0DH,0AH,$ TIPS3 DB Please input ID:$ ;查询提示信息 TIPS4 DB Please enter r to return$ TIPS5 DB Please enter r
5、to return,c to continue$ ID DB ID: $ NAM DB NAME: $ SEX DB SEX: $ SCORE DB Telephone Number: $ FID DW ? ;文件号 SEXM DB male $ SEXF DB female $ SMENU DB telecomm record management ,0DH,0AH DB 1.telecomm record input,0DH,0AH DB 2.telecomm record query,0DH,0AH DB 3.telecomm record output,0DH,0AH DB 0. Th
6、e end ,0DH,0AH DB select please(1,2,3,0): $ ID_LENGTH EQU 4 ;配置信息 NAM_LENGTH EQU 20 SEX_LENGTH EQU 1 ;性别请勿更改位数 SCORE_LENGTH EQU 5 STU_LENGTH DW ? ;每条学生信息总长度 STU_LENGTH_ADD1 DW ? NAM_SEX_SCORE_LENGTH DW ? DEL DB 30 DUP ( ) ;清空信息用 ERR DB Error,Please input again!$ ;错误提示信息 NOSTU DB There is no this stu
7、dnet!$ ERR_NO DB No student information!$ ERR_SAME DB There is the same ID,please input again!$ NEWF DB 0DH,0AH,0DH,0AH, Warning: this operation will empty all your data!,0DH,0AH,0DH,0AH, Will you continue? (y:empty,other key:return):$ FPATH DB c:Telecom.txt,0 ;数据库文本 STR DB 50 ;缓冲区str DB ? DB 50 DUP
8、 (?) STR0 DB 50 DUP (?) ;缓冲区str0 ENTER DB $ ;空格 TMP DW 0 ;是否为空标志信息 SC DB 0 ;分数保护处用 DATA ENDS TAB MACRO ;换行 MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ENDM CREATEF MACRO FILE_ID,FILE_PATH ;创建文件(传入文件号、传入文件路径) MOV AH,3CH MOV CX,00H ;普通文件 LEA DX,FILE_PATH INT 21H MOV FILE_ID,AX ENDM OPENF MACRO FILE
9、_ID,FILE_PATH ;打开文件(传入文件号、传入文件路径) MOV AL,2 ;读写文式打开 MOV AH,3DH LEA DX,FILE_PATH INT 21H MOV FILE_ID,AX ENDM CLOSEF MACRO FILE_ID ;关闭文件(传入文件号) MOV BX,FILE_ID MOV AH,3EH INT 21H ENDM READF MACRO FILE_ID,TEMP,NUM ;读文件(传入文件号、传入缓冲区、传入字节数) MOV BX,FILE_ID LEA DX,TEMP MOV AX,NUM MOV CX,AX MOV AH,3FH INT 21H
10、ENDM WRITEF MACRO FILE_ID,TEMP,NUM ;写文件(传入文件号、传入缓冲区、传入字节数) MOV BX,FILE_ID MOV CX,NUM LEA DX,TEMP2 MOV AH,40H INT 21H ENDM MOVEF MACRO FILE_ID,STYPE,HIGEC,LOWD ;移动文件指针(传入文件号、传入移动方式、传入偏移字节(高位)传入偏移字节(低位) MOV BX,FILE_ID MOV AH,42H MOV AL,STYPE ;尾+偏移量方式 MOV CX,HIGEC ;偏移字节(高位) MOV DX,LOWD ;偏移字节(低位) INT 21
11、H ENDM INPUT MACRO BUFFER,LENGTH ;输入字符串(传入字符串名、返回字符串长度) MOV AH,10 LEA DX,BUFFER INT 21H MOV LENGTH,BUFFER1 ENDM SHOW MACRO BUFFER ;显示字符串(传入字符串名) MOV AH,9 LEA DX,BUFFER INT 21H ENDM STAK SEGMENT STACK DB 200 DUP (?) STAK ENDS;-代码段- CODE SEGMENT ASSUME CS:CODE,DS:DATA SHOW_EXIT PROC NEAR ;提示按r退出 PUSH
12、AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS4 EXIT_1: MOV AH,7 INT 21H CMP AL,r JNZ EXIT_1 POP DX POP CX POP BX POP AX RET SHOW_EXIT ENDP SHOW_EC PROC NEAR ;询问退出还是继续 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS5 EXIT_2: MOV AH,7 INT 21H CMP AL,r JZ EXIT_4 CMP AL,c JNZ EXIT_2 CALL INSERT EXIT_4:
13、 POP DX POP CX POP BX POP AX RET SHOW_EC ENDP SHOW_ERR PROC NEAR ;显示出错信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW ERR TAB TAB POP DX POP CX POP BX POP AX RET SHOW_ERR ENDP RE_TMP PROC NEAR ;用空格初始化缓冲区子程序 PUSH AX PUSH BX PUSH CX PUSH DX MOV CX,50 MOV BX,1 RE: INC BX MOV STRBX, LOOP RE POP DX PO
14、P CX POP BX POP AX RET RE_TMP ENDP CLEAR PROC NEAR ;清屏 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,0 ;上滚行数 MOV CL,0 ;上滚窗口左上角的列号为0 MOV CH,0 ;上滚窗口左上角的行号为0 MOV DH,24 ;上滚窗口右上角的行号为24 MOV DL,79 ;上滚窗口右上角的列号为79 MOV BH,14 ;空白行的属性 MOV AH,6 ;入口参数 INT 10H ;SET_P1 POP DX POP CX POP BX POP AX RET CLEAR ENDP SHOW_STU P
15、ROC NEAR ;显示学生信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX SHOW ID ;ID MOV CX,ID_LENGTH MOV BX,-1 SH_ID: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_ID SHOW ENTER SHOW NAM ;NAME MOV CX,NAM_LENGTH MOV BX,ID_LENGTH DEC BX SH_NAME: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_NAME SHOW ENTER SHOW SEX ;SEX
16、MOV BX,ID_LENGTH ADD BX,NAM_LENGTH MOV DL,STR0BX CMP DL,1 ; 1显示male, 0显示female JNZ SEX_F SHOW SEXM JMP NN SEX_F: SHOW SEXF NN: SHOW ENTER SHOW SCORE ;SCORE MOV CX,SCORE_LENGTH MOV BX,ID_LENGTH ADD BX,NAM_LENGTH SH_SCORE: INC BX MOV DL,STR0BX MOV AH,2 INT 21H LOOP SH_SCORE POP DX POP CX POP BX POP AX
17、 RET SHOW_STU ENDP;-插入(insert)程序- INSERT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX TAB CALL CLEAR ;清屏 SHOW TIPS0 ;显示提示信息 SHOW TIPS1 TAB TAB OPENF FID,FPATH ;打开文件 IN_ID: SHOW ID ; 学号 INPUT STR,BL ;向缓冲区输入ID ;CMP BL,ID_LENGTH ;看ID是否合法 JMP L1 JNZ ERR_ID ERR_SA: ;错误处理 TAB TAB SHOW ERR_SAME TAB TAB JMP IN
18、_ID ERR_ID: TAB TAB CALL SHOW_ERR TAB TAB JMP IN_ID L1: ;ID判断只能为数字 MOV CX,ID_LENGTH LEA SI,STR+2 LN: MOV AL,BYTE PTRSI CMP AL,0 JB ERR_ID CMP AL,9 JA ERR_ID INC SI LOOP LN MOVEF FID,0,0,0 ;指针移到文件首 IA: MOVEF FID,1,0,5 IB: READF FID,STR0,STU_LENGTH ;读取学生信息 CMP AX,0 ;文件是否结束 JNZ IL1 JMP IC ;没有重复学号,可以插入
19、IL1: LEA SI,STR0 LEA DI,STR INC DI DEC SI MOV CX,ID_LENGTH IL2: INC SI INC DI MOV AL,BYTE PTR DI CMP AL,BYTE PTR SI JNZ IA ;不符合条件读取下一个同学信息 LOOPZ IL2 JMP ERR_SA ;有重复学号 IC: MOVEF FID,2,0,5 WRITEF FID,STR,ID_LENGTH ;数据合法则写入数据 TAB IN_NAM: SHOW NAM ;姓名 CALL RE_TMP ;初始化缓冲区 INPUT STR,BL ADD BL,2 ;去掉回车 MOV
20、BH,0 MOV SI,BX MOV STRSI, SUB BL,2 CMP BL,NAM_LENGTH JNA L2 ERR_NAM: CALL SHOW_ERR JMP IN_NAM L2: CMP STR2, ;姓名第一个字符不为空 JZ ERR_NAM CMP STR2,z JA ERR_NAM CMP STR2,A JB ERR_NAM CMP STR2,a JNB III CMP STR2,Z JA ERR_NAM CMP STR2,A JB ERR_NAM III: MOV CX,NAM_LENGTH MOV BX,2 II0: INC BX DEC CX CMP STRBX,z
21、 JA ERR_NAM CMP STRBX, JB ERR_NAM CMP STRBX,a JNB II0 CMP STRBX,Z JA ERR_NAM CMP STRBX,A JNB II0 CMP STRBX, JNZ ERR_NAM CMP CX,0 JNZ II0 WRITEF FID,STR,NAM_LENGTH TAB IN_SEX: SHOW SEX ;性别 CALL RE_TMP INPUT STR,BL ADD BL,2 ;去掉回车 MOV BH,0 MOV SI,BX MOV STRSI, SUB BL,2 CMP BL,SEX_LENGTH JNZ ERR_SEX MOV BL,STR2 CMP BL,1 JZ L4 CMP BL,0 JZ L4 ERR_SEX: CALL SHOW_ERR JMP IN_SEX L4: WRITEF FID,STR,SEX_LENGTH TAB IN_SCORE: SHOW SCORE CALL RE_TMP INPUT STR,BL MOV SC,BL ;BL保护 ADD BL,2 ;去掉回车 MOV BH,0 MOV SI,BX
限制150内