七段码电子表显示程序.docx

上传人:时光煮雨 文档编号:15008830 上传时间:2022-03-03 格式:DOCX 页数:15 大小:91.92KB
返回 下载 相关 举报
七段码电子表显示程序.docx_第1页
第1页 / 共15页
七段码电子表显示程序.docx_第2页
第2页 / 共15页
七段码电子表显示程序.docx_第3页
第3页 / 共15页
七段码电子表显示程序.docx_第4页
第4页 / 共15页
七段码电子表显示程序.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《七段码电子表显示程序.docx》由会员分享,可在线阅读,更多相关《七段码电子表显示程序.docx(15页珍藏版)》请在三一文库上搜索。

1、目录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 计算时

2、间宏函数(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 主函数 主要调用

3、子函数实现功能(7)delayr 延迟函数 用双重循环实现,根据不同机子设置不同的参数(8)exit 返回DOS函数 ,也就是结束函数。调用int 21h中的04h(9) moveshape 显示七段码电子表函数。利用int 21h中的09h32流程图Play函数 Delay函数3. 3重点,难点 本程序的重点是怎么把系统时间转化成七段码显示出来,先把吧0到9十个数字,利用相对坐标表示出来。然后在依依和系统时间的时、分、秒对比,相等则输出,这样就把系统时间的显示方式,改变成七段码表显示方式了。 然而要实现以上功能实在不容易,经过多番努力,最后才实现了系统时间到七段码的转化。接下来设置时间,取D

4、OS中断的2DH,把输入的时间转化成七段码。 再下来是加上窗口,优化程序,整理界面,使程序更加好理解。4总结心得体会 学习了汇编语言这门课程,对它有了基本的了解和认识。以为可以对付一些简单的程序的,但是拿到题目还是无从下手。幸好得到了同学的帮助,才一点点起步,到后面完成。最后运行自己程序的时候,喜悦真是难以言表。很感谢帮助过我的同学和老师,没有他们的帮助,我真不知道课程设计能否按时完成。对于所学的这个专业,编写程序是基本技能,可是自己却不能独立完成课程设计,自责的感觉油然而生,我相信在今后的学习中,自己能够吸取教训。5 参考文献1东扬生等编著:“宏汇编语言MASM6实用大全”,科学出版社,19

5、932求伯军主编:“新编深入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 $stim

6、e 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,

7、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

8、,-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 d

9、b 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;

10、左上角行号 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

11、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

12、 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

13、,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

14、: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 pro

15、g4 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

16、 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

17、 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,

18、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 bx pop ax retmoveshape endpdelay proc near push ax push cx push dx mov cx,10000 b1:push cx b2:loop b2 pop cx mov dl,0ffh mov ah,06h int 21h cmp al,1bh je C11 cmp al,s je C11 loop b1C11:mov sign,al pop dx pop cx pop ax ret delay endpexit:mov ah,4ch int 21hcode ends end start14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1