1 研究的问题
运用纯汇编语言在DOS下进行系统编程来实现自动化管理的电子时钟及应用系统的设计。
1.1课题介绍
1.1.1 课题背景
电子时钟及应用系统的设计主要是是实现自动化管理,因为自动化管理是现代管理的发展趋势,自动化其特点在于利用计算机技术进行各种教学、科研和管理等活动。而校园、工厂等人员聚集机构的人员作息管理主要依靠响铃实现机构。用于提示人员上下班、上下课,是工厂、学校管理不可或缺的管理手段。但就目前而言,作息响铃在很多学校、工厂仍然是由人工控制的,打铃时间容易出现误差,自动化水平差,消耗人工费用。现在计算机已经十分普及,利用空闲的计算机完成响铃任务从资源上讲容易实现,于是考虑开发电子时钟。
1.1.2 课题意义
利用计算机技术实现作息管理控制。响铃全交由计算机完成,铃声多样化,节省人力资源,方便学校和各种机关团体的管理,提高管理自动化且有保障性。而且还有时间的文本显示和图形时钟显示。使用汇编语言编程,汇编语言如今已践能力和动手操作能力。学习程序设计的基本思路和方法。
表1-1 公司情况收集表
调查内容 | 调查时间 | 情况概述 |
组织结构 | 2005.2 | 设有7个职能部门、5个生产部门以及工会。 |
上级主管部门 | 2005.3 | 福州市贸易发展局。 |
公司生产部门 | 2005.3- 2005.4 | 新南亚商场、旧车辆交易市场、赃失物认领中心、公正拍卖行、旧货贸易部;以及其基本经营状况。 |
2 模块划分
该课题主要有4个功能模块组合。总控部分(主要是表格管理,一些参数的设置)、文本显示、时钟图显示、响铃控制。
2.1课题介绍
主要是整体界面的控制部分,其中包括两个部分,一是,主控界面即欢迎主界面,主要包括:作息表管理、时钟管理、退出系统。二是,作息表管理的界面,主要包括:作息表显示界面、增加信息、修改信息、删除信息、清除信息、返回主控界面等信息。时钟管理主要是通过作息管理显示年月日,时分秒的文本形式和时钟图的显示界面;退出系统即退出该系统的运行。
图 2-1 杜邦分析图[4]
………
其次,我要感谢有关毕业设计的各位老师,特别是我的导师池积涛老师,他们在毕业设计的每一环节,都给了我悉心的指导,帮我解决了许多问题和遇到的困难。池老师严谨的治学态度,认真负责的工作作风使我终身受益。
最后,我要感谢同组的各位同学,他们在毕业设计的过程中给我或多或少的帮助。让我真正懂得集体的力量,团队的合作精神的重要性。
7 参考文献
[1] 沈美明,温冬婵,IBM-PC汇编语言程序设计(第2版),清华大学出版社,2001.
[2] 李珍香,刘红梅,赵润林,汇编语言课程设计案例精编,中国水利水电出版社,2004.
[3] 黄海萍,汇编语言与微机接口技术实验教程,国防工业出版社,2007.
[4] 马力尼等,80X86汇编语言程序设计教程,机械工业出版社,2004.
[5] 王成耀,姚琳,汇编语言程序设计,机械工业出版社,2003
[6] 何友鸣,汇编语言程序设计,武汉大学出版社,2006
[7] 丁辉 ,汇编语言程序设计(第二版),电子工业出版社,2005.
[8] 冯萍,史新福,汇编语言与接口技术——21世纪高等学校教材,机械工业出版社,2002
8 附录
附录1 常用DOS功能调用(INT21H)
AH | 功能 | 调用参数 | 返回参数 |
01 | 键盘输入并回显 | AL=输出字符 | |
02 | 显示输出 | DL=输出字符 | |
07 | 键盘输入(无回显) | AL=输入字符 | |
08 | 键盘输入(无回显) 检测Ctrl-Break或Ctrl-C | AL=输入字符 | |
09 | 显示字符串 | DS:DX=串地址 字符串以‘$’结尾 | |
0A | 键盘输入到缓冲区 | DS:DX=缓冲区首址 (DS:DX)=缓冲区最大字符数 | |
0F | 打开文件(FCB) | DS:DX=FCB首地址 | AL=00文件找到 AL=FF文件未找到 |
10 | 关闭文件(FCB) | DS:DX=FCB首地址 | AL=00目录修改成功 AL=FF目录中未找到文件 |
13 | 删除文件(FCB) | DS:DX=FCB首地址 | AL=00删除成功 AL=FF文件未删除 |
14 | 顺序读文件(FCB) | DS:DX=FCB首地址 | AL=00读成功 =01文件结束未读到数据 =02DAT边界错误 =03文件结束,记录不完整 |
15 | 顺序写文件(FCB) | DS:DX=FCB首地址 | AL=00写成功 =01磁盘满或是只读文件 |
16 | 建文件(FCB) | DS:DX=FCB首地址 | AL=00建文件成功 =FF磁盘操作有错 |
17 | 文件改名(FCB) | DS:DX=FCB首地址 | AL=00文件被改名 =FF文件未改名 |
21 | 随机读文件(FCB) | DS:DX=FCB首地址 | AL=00读成功 =01文件结束 =02DAT边界错误 =03读部分记录 |
22 | 随机写文件(FCB) | DS:DX=FCB首地址 | AL=00写成功 =01磁盘满或是只读文件 =02DTA边界错误 |
25 | 设置中断向量 | DS:DX=中断向量 AL=中断类型号 | |
2A | 取系统日期 | CX=年 DH=月 DL=日 AL=星期 | |
2B | 置系统日期 | CH:CL=时:分 DH:DL=秒:1/100秒 | AL=00成功 =FF无效 |
2C | 取系统时间 | CH:CL=时:分 DH:DL=秒:1/100秒 | |
2D | 置系统时间 | CH:CL=时:分 DH:DL=秒;1/100秒 | AL=00成功 =FF无效 |
39 | 建立子目录 | DS:DX=ASCIZ串地址 | AX=错误码 |
3A | 删除子目录 | DS:DX=ASCIZ串地址 | AX=错误码 |
3B | 设置目录 | DS:DX=ASCIZ串地址 | AX=错误码 |
3C | 建立文件 | DS:DX=ASCIZ串地址 CX=文件属性 | 成功:AX=文件代号 失败:AX=错误码 |
3D | 打开文件 | DS:DX=ASCIZ串地址 AL=访问和文件共享方式 0=读,1=写,2=读/写 | 成功:AX=文件代号 失败:AX=错误码 |
3E | 关闭文件 | BX=文件代号 | 失败:AX=错误码 |
3F | 读文件或设备 | DS:DX=ASCIZ串地址 BX=文件代号 CX=读取的字节数 | 成功:AX=实际读入的字节数 AX=0已到文件尾 失败:AX=错误码 |
40 | 写文件或设备 | DS:DX=ASCIZ串地址 BX=文件代号 CX=写入的字节数 | 成功:AX=实际写入的字节数 失败:AX=错误码 |
41 | 删除文件 | DS:DX=ASCIZ串地址 | 成功:AX=00 失败:AX=错误码 |
42 | 移动文件指针 | BX=文件代号 CX:DX=位移量 AL=移动方式 | 成功:DX:AX=新指针位置 失败:AX=错误码 |
附录2 主要代码设计
1、宏定义
★clear macro ;清除全屏
mov al,0 ;全屏幕为空白
mov ah,6 ;滚动(上卷)
mov cl,0 ;左上角列号