七段码电子表显示程序.doc_第1页
七段码电子表显示程序.doc_第2页
七段码电子表显示程序.doc_第3页
七段码电子表显示程序.doc_第4页
七段码电子表显示程序.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1题目及要求22功能设计23详细设计2 31设计方法2 32流程图2 3. 3重点,难点64总结心得体会75 参考文献76附:源程序71题目及要求11题目:七段码电子表显示程序12要求1七段码电子表显示程序 2菜单选择:设置时,分,秒,开始,退出等3模拟七段码管显示时,分,秒 4要求界面美2功能设计说明:esc键退出 s键设置时间数据段(1)Disptime , showtime 显示时钟(2)定义定义09十个图形数字,以便模拟七段码显示时钟宏定义(1)Clear定义清屏宏(2)rowcol 定义光标定位宏(3)crlf 回车换行宏(4)display显示字符串宏(5)change 计算时间宏函数(1) main 主函数(2) play 主要完成显示七段码电子表显示(3) prog0 到prog10完成七段码到一般显示的转换 (4) moveshape 显示七段码电子表(4) delay 延迟函数(5) exit 返回DOS函数3设计详细31设计方法(1)Clears清屏宏 用到了BIOS中断06H。(2)rowcol光标定位宏 用到了BIOS中断02H。 (3) crlf 回车换行宏 用到了DOS中断的0ah, 0dh (4) display显示字符串宏 用到了DOS中断的09h (5) change 计算时间宏 用户自己定义的宏,方便以后使用(6)main 主函数 主要调用子函数实现功能(7)delayr 延迟函数 用双重循环实现,根据不同机子设置不同的参数(8)exit 返回DOS函数 ,也就是结束函数。调用int 21h中的04h(9) moveshape 显示七段码电子表函数。利用int 21h中的09h32流程图Play函数 Delay函数3. 3重点,难点 本程序的重点是怎么把系统时间转化成七段码显示出来,先把吧0到9十个数字,利用相对坐标表示出来。然后在依依和系统时间的时、分、秒对比,相等则输出,这样就把系统时间的显示方式,改变成七段码表显示方式了。 然而要实现以上功能实在不容易,经过多番努力,最后才实现了系统时间到七段码的转化。接下来设置时间,取DOS中断的2DH,把输入的时间转化成七段码。 再下来是加上窗口,优化程序,整理界面,使程序更加好理解。4总结心得体会 学习了汇编语言这门课程,对它有了基本的了解和认识。以为可以对付一些简单的程序的,但是拿到题目还是无从下手。幸好得到了同学的帮助,才一点点起步,到后面完成。最后运行自己程序的时候,喜悦真是难以言表。很感谢帮助过我的同学和老师,没有他们的帮助,我真不知道课程设计能否按时完成。对于所学的这个专业,编写程序是基本技能,可是自己却不能独立完成课程设计,自责的感觉油然而生,我相信在今后的学习中,自己能够吸取教训。5 参考文献1东扬生等编著:“宏汇编语言MASM6实用大全”,科学出版社,19932求伯军主编:“新编深入DOS编程”,学苑出版社,19943沈美明 温冬婵 主编:“IBM-PC汇编语言程序设计”,清华大学出版社,20016附:源程序data segmentDisptime DB 00,00,:,00,00,:,00,00,$showtime dw A10,A11,A12,A13,A14,A15,A16,A17,A18,A19escape equ 1bh ;按键ESC退出zhao db 0dh,0ah, Press s to set time.$ db 0dh,0ah, Press esc to end!$bing db 0dh,0ah, C L O C K $stime db 9,(?),9 dup(?)sign db 0;*定义09十个图形数字* s0 db 6 db 5fh,0ah,0,0db 7ch,0ah,1,-1 db 7ch,0ah,1,0 db 5fh,0ah,0,1 db 7ch,0ah,0,1 db 7ch,0ah,-1,0 s1 db 2 db 7ch,0ah,1,0 db 7ch,0ah,1,0 s2 db 5 db 5fh,0ah,0,0 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,1,-1 db 5fh,0ah,0,1 s3 db 5 db 5fh,0ah,0,0 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 s4 db 4 db 7ch,0ah,1,0 db 5fh,0ah,0,1 db 7ch,0ah,1,1 db 7ch,0ah,-1,0 s5 db 5 db 5fh,0ah,0,0 db 7ch,0ah,1,-1 db 5fh,0ah,0,1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 s6 db 6 db 5fh,0ah,0,0 db 7ch,0ah,1,-1 db 5fh,0ah,0,1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,0,-1 s7 db 3 db 5fh,0ah,0,0 db 7ch,0ah,1,1 db 7ch,0ah,1,0 s8 db 7 db 7ch,0ah,1,0 db 5fh,0ah,-1,1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,0,-1 s9 db 6 db 7ch,0ah,1,0 db 5fh,0ah,-1,1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 db 7ch,0ah,1,1 db 5fh,0ah,0,-1 s10 db 2 db 03h,0ah,1,0 db 03h,0ah,1,0data ends;.code segmentcrlf MACRO push ax push bx push cx push dx mov ah,02h mov dl,0ah int 21h mov ah,02h mov dl,0dh int 21h pop dx pop cx pop bx pop axENDM;.clear macro ala,ulrow,ulcol,lrrow,lrcol,att push ax push bx push cx push dx mov ah,6 mov al,ala;属性 mov bh,ulrow;页号 mov ch,ulcol;左上角行号 mov cl,lrrow;左上角列号 mov dh,lrcol;右下角行号 mov dl,att;右下角列号 int 10h pop dx pop cx pop bx pop axendm ;.rowcol macro row,col;光标定位 push ax push bx push cx push dx push di mov bh,0 mov dh,row mov dl,col mov ah,02h int 10h pop di pop dx pop cx pop bx pop ax endmchange macro c1,c2,c3 ;系统时间 mov al,c1 cbw div bh add al,0 mov Disptimec2,al add ah,0 mov Disptimec3,ahendmchange_1 macro c1,c2,c3 ;设定时间 mov bh,10 mov al,stimec2 sub al,0 mul bh add al,stimec3 sub al,0 mov c1,alendm;.assume cs:code,ds:data;-;主函数start:mov ax,data mov ds,axnext: call delay mov al,sign cmp al,1bh je A1_1 cmp al,s je settime jmp A1_2 A1_1:jmp exit settime: rowcol 18,22 lea dx,stime mov ah,0ah ;接受键盘输入 int 21h mov ah,2 mov bh,0 mov dh,18 mov dl,22 int 21h change_1 ch,2,3 change_1 cl,5,6 change_1 dh,8,9 mov dl,00 mov ah,2dh ;置系统时间 int 21h cmp al,0 jne A1_1 jmp A1_2 A1_2:clear 0,07h,0,0,24,79 clear 0,44h,4,19,23,60 clear 0,07h,6,20,7,59 clear 0,07h,9,20,13,59;从第四行,20列开始 clear 0,07h,16,20,22,59 mov ah,2 mov bh,0 mov dh,6 ;确定“clock”的输出行 mov dl,25 ;确定的clock的输出列 int 10h mov ah,9 ;显示字符串 lea dx,bing int 21h mov ah,2ch ;取系统时间 int 21h mov bh,10 change ch,0,1 change cl,3,4 change dh,6,7 mov dl,00 mov bx,0 mov dh,10 mov dl,25 show:push dx mov ax,dx rowcol ah,al mov al,Disptimebx cmp al,: je A20 sub al,0 shl al,1 CBW MOV SI,AX JMP showtimeSInext1: pop dx add dx,0004h inc bx cmp bx,8 jae next2 jmp shownext2:jmp next A10:call prog0 jmp next1 A11:call prog1 jmp next1 A12:call prog2 jmp next1 A13:call prog3 jmp next1 A14:call prog4 jmp next1 A15:call prog5 jmp next1 A16:call prog6 jmp next1 A17:call prog7 jmp next1 A18:call prog8 jmp next1 A19:call prog9 jmp next1 A20:call prog10 jmp next1;.prog0 proc lea di,s0 call moveshape ret prog0 endpprog1 proc lea di,s1 call moveshape ret prog1 endpprog2 proc lea di,s2 call moveshape ret prog2 endpprog3 proc lea di,s3 call moveshape ret prog3 endpprog4 proc lea di,s4 call moveshape ret prog4 endpprog5 proc lea di,s5 call moveshape ret prog5 endpprog6 proc lea di,s6 call moveshape ret prog6 endpprog7 proc lea di,s7 call moveshape ret prog7 endpprog8 proc lea di,s8 call moveshape ret prog8 endpprog9 proc lea di,s9 call moveshape ret prog9 endpprog10 proc lea di,s10 call moveshape ret prog10 endpmoveshape proc near ;对字符的输出 push ax push bx push cx push dx push di mov ah,0fh int 10h sub ch,ch mov cl,di inc di plotnext: add dh,di+2 add dl,di+3 mov ah,2 int 10h mov al,di mov bl,di+1 push cx mov cx,1 mov ah,09 int 10h pop cx add di,4 loop plotnext pop di pop dx pop cx pop b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论