微机原理与接口技术课设与接口技术课设内容摘要:

B 是 否 ① 初始化程序 开始 给 timer 赋初值 把 buf 中的内容传送到 res 中 清屏 重置光标于开始处3 判断 timer 是否为 0 timer1 赋值给 timer 取 该数的数码编码在 res中偏移量 给 cl赋初值 7 5 ① 否 是 否 是 A 该数码循环左移一位判断是否为 0 偏移地址内的内容用空格代替 保留偏移地址内容 送入 res Cl1 判断 cl是否为0 显示 res 中的内容以及系统提示 调用延时子程序 6 A B 无 有 否 是 图 31 从程序流程图可以看出,程序一旦开始运行就不会自动停止,需要人工输入“ Q”或者“ q”来终止程序。 程序分为如下部分:七段码数据定义部分;循环显示数字部分;显示每一个数字部分;判断键盘输入部分;子程序延时部分。 四、 程序段落说明 数据段定义 data segment buf db 39。 __ 39。 ,0DH,0AH db 39。 | |39。 ,0DH,0AH db 39。 39。 ,0DH,0AH db 39。 | |39。 ,0DH,0AH db 39。 39。 ,0DH,0AH,24H res db 32 dup(?) desk db 1,6,8,13,18,20,25 led db 0EEh,24H,0BAH,0B6H,74H,0D6H,0DEH,0A4H,0FEH,0F6H timer db ? message db 39。 If you want to quit,please press 39。 39。 q39。 39。 or 39。 39。 Q39。 39。 !39。 ,0ah,0dh,39。 $39。 data ends 在数据定义段,定义了模拟七段数码管的显示,同时给为 buf 开辟空间 res。 定义每段数码管在 buf里面的偏移量。 为 09的每一位数字的七段数码管显示编码,以及循环显判断键盘是否有输入 判断输入是否为“ Q”或者“ q” 结束 7 示的数字个数即起始显示数字 timer。 定义系统提示推出的信息。 程序初始化 code segment assume cs:code,ds:data,es:data main proc near start: mov ax,data mov ds,ax mov es,ax 数码显示处理工作 T: mov timer,9 again: lea si,buf lea di,res cld mov cx,32 rep movsb 为数字显示赋初值 timer 为 9,程序从 9 开始到 0 的循环显示。 程序把 buf 中的内容传送到 res中。 清空显示屏 mov ah,06h xor al,al mov bh,7 xor cx,cx mov dx,186Fh int 10h 调用 BIOS的第 06h号功能。 给 ah赋值 06h表示调用的是第 06h号功能。 al与 al相与达到al置零的效果,清屏。 为 bh赋值 7为滚入行属性。 cx与 cx相与置零,左上角行列号置零。 Dx赋值 186fh为显示的右下角赋行列号。 重置光标 mov bh,0 8 mov dx,0 mov ah,2 int 10h 调用 BIOS 的第 2h 号功能。 置页号 bh 为 0。 置行列号 dx为 0。 取得计数并为下次循环准备 xor bx,bx mov bl,timer mov al,led[bx] cmp bl,0 jl T dec bl mov timer,bl 取得初始计数 timer 以及其在定义的数据段 led 中的数码编码。 判断 time。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。