《微型计算机系统原理及应用》课程设计电子时钟显示程序设计.doc
《《微型计算机系统原理及应用》课程设计电子时钟显示程序设计.doc》由会员分享,可在线阅读,更多相关《《微型计算机系统原理及应用》课程设计电子时钟显示程序设计.doc(16页珍藏版)》请在三一办公上搜索。
1、目录一、课程设计的目的 (2)二、课程设计的题目 (2)三、课程设计的主要内容 (2) (一)、程序论述 (2)(二)、程序设计的步骤 (2)(三)程序流程图(2)(四)程序 (4)(五)结果显示(14)四、总结(14)(一)、本设计主要用到的DOS、BIOS调用及功能 (14)(二)、心得体会 (15)五、参考文献(16)一、课程设计的目的:本次微型计算机原理及应用课程设计我选择了用汇编语言做电子时钟,其主要目的是加强软件编程能力。通过本次设计复习并熟练掌握微机原理中的基本操作指令、DOS中断功能调用以及BIOS中断功能调用。最主要的是使用汇编语言编程来实现现实中许多电子产品的功能。二、课程
2、设计的题目:电子时钟显示程序设计三、课程设计的主要内容:(一)、程序论述本次微型计算机原理及应用课程设计我做的题目是“电子时钟显示程序设计”,是使用汇编语言编程实现电子时钟显示的功能。主要提供了系统时间的调用,设置时间及显示时间等功能。在我所做的程序中主要以下面的内用运行。主程序首先注册新的中断处理程序从系统中取得时间,然后持续等待,直到在中断程序中检测到有按键时间的发生,然后主程序取消中断处理程序。判断输入的键,然后根据相应的按键提供相应的设置功能。中断处理程序每次得到系统定时器中断时间、,判断是否到达1秒,如果到达则更新时间,存入数据区,然后更新数据的显示。当有按键事件发生时,设置数据区的
3、按键标记为真。当主程序检查到该标记为真时,则取消中断程序的驻留。然后处理相应的事件。(二)程序设计的步骤:1、定义显示界面2、调用系统时间,并将调用的二进制表示的时间数转换成ASC码,并将时间存入内存区。3、将存在系统内存区的 时间数用显示字符串的形式显示出来。4、获取键盘的按键值,判断键值并推出系统。(三)程序流程图:开始设置输入字符串用缓冲区,定义变量初始化界面输入的ASC码转换成16进制数DOS调用,显示:welcome to Simple clock取得系统时间,时、分、秒分别存CH、CL、DH时间定时更新关中断开中断DH清零,CL加1CL清零,CH加1CH清零显示时间16进制转换成1
4、0进制显示字符串外部中断?结束(DH)60H??(CL)60H??(CH)24H?YYYYNNNN延时1秒(四)程序:.model small;- .stack;- .dataHOUR db ?MIN db ?SEC db ?MSEC db ? NHOUR db 0 ;设置时间使用NMIN db 0 ;设置时间使用NSEC db 0 ;设置时间使用FUNKEY db ? ;功能设置使用keySw db 00h ;是否按键开关SWITCH db 0FFh ;刷新开关,真,则不断在定时器中断函数中刷新,否则不刷新 n db 0dh,0ah,$ count dw 1 sMsg db * welcom
5、e to Simple clock *,0dh,0ah,$ qMsg db * Please Input q to quit *,0dh,0ah db ,* Input s to set new Time *,0dh,0ah,$ setTMsg db Please Input new Time(HH:MM:SS),0dh,0ah,$ authorMsg db _,0dh,0ah db Author: DingChuanxiang,0dh,0ah db E-mail: dingsg3c16,0dh,0ah db class: xin gong_042_08 hao,0dh,0ah db Date
6、: 2007/07/07,0dh,0ah db _,0dh,0ah,$;- .codePUSHA MACRO PUSH DS PUSH AX PUSH BX PUSH CX PUSH DX ENDMPOPA MACRO POP DX POP CX POP BX POP AX POP DS ENDMmain proc far start: mov ax,data mov ds,ax push ds call GETTIME ;取得系统时间 call initUI ;初始化界面 mov al,1ch mov ah,35h int 21h ;DOS调用取中断向量 push es push bx pu
7、sh ds mov dx,offset tUpdate mov ax,seg tUpdate mov ds,ax mov al,1ch mov ah,25h int 21h ;DOS调用设置中断向量 pop ds in al, 21h and al, 11111100b out 21h,al stidelay: PUSHA cmp ds:keySw,0FFh ;检查是否有按键 jz exitdelay ;有按键则跳转 POPA jmp delayexitdelay: POPA pop dx pop ds mov al, 1ch mov ah, 25h int 21h ;DOS调用设置中断向量
8、pop ds ;restore ds ;读敲入的按键 mov ah,07h int 21h cmp al,s jne next1;判断读入字符然后进行相应处理,此时中断函数已经取消,只是单线程setT: mov ds:FUNKEY,al call SETTIME ;调用子函数设置时间 mov ds:keySw,00h jmp startnext1: cmp al,q je endmain mov ds:keySw,00h jmp startendmain: mov ax,4c00h ;exit int 21hmain endp;定时中断程序()tUpdate proc near push ds
9、 ;保存工作寄存器 push ax push bx push cx push dx mov ax, data mov ds, ax sti dec count ;时间间隔总数(约18.2次为1秒) jnz exit ;不到一秒则跳转 mov count,18 call CALTIME ;更新时间;检测刷新开关是否打开 mov bl,ds:SWITCH cmp bl,00 jz exit;检测是否有按键按下,取适当的值进行退出控制 PUSHA MOV AH, 0BH ;检测是否输入消息(按键消息) INT 21H INC AL JNZ nokey mov ds:keySw,0FFh ;设置已经被
10、按键 POPA jmp exitnokey: POPA call DISPLYH ;显示小时 call DISPLYM ;显示分钟 call DISPLYS ;显示秒exit: cli mov al,20h out 20h,al pop dx pop cx pop bx pop ax pop ds iret ;返回中断tUpdate endp;-;关闭定时刷新开关closeSw proc near PUSHA mov bl,0h mov ds:SWITCH,bl ;关闭刷新开关 POPA retcloseSw endp;-;打开定时刷新开关openSw proc near PUSHA mov
11、bl,0FFh mov ds:SWITCH,bl ;打开刷新开关 POPA retopenSw endp;-;初始化显示界面initUI proc near PUSHA ;设置显示方式(4025 黑白文本,16级灰度) mov ah,0h mov al,00h ;BIOS调用设置显示方式 int 10h ;显示头标题 mov dh,00h mov dl,00h call MOVCUR mov dx,offset sMsg mov ah,09h ;DOS调用显示字符串 int 21h ;call DOS ;显示结尾标题 mov dh,06h mov dl,02h call MOVCUR mov
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机系统原理及应用 微型计算机 系统 原理 应用 课程设计 电子 时钟 显示 程序设计

链接地址:https://www.31ppt.com/p-2881800.html