作息时间控制系统
pop ax pop bx ret
gettime endp (2)系统时间的显示
调用DOS的INT 21H的9中断向量,将时间显示在屏幕上,并且要加上‘:’,并使之能正确的显示。但是,由于系统频率的影响,应该设计一个延时程序延缓时间的变化;同时,编写一个设置光标的程序使之显示在适当的位置。
延时子程序: waitf proc near;延时 push ax waitf_1: in al,61h and al,10h cmp al,ah je waitf_1 mov ah,al loop waitf_1 pop ax ret waitf endp 清屏子程序:
clearscreen macro ch1,cl1,dh1,dl1,bh1;定义清屏宏 mov ah,6 mov al,0 mov ch,ch1 mov cl,cl1 mov dh,dh1 mov dl,dl1 mov bh,bh1
4
作息时间控制系统
int 10h Endm 设置光标程序:
setf macro dh1,dl1 ;定义光标定位宏 push ax push bx push dx mov ah,2h mov bh,0h mov dh,dh1 mov dl,dl1 int 10h pop dx pop bx pop ax endm
b.不需调用系统日期,由键盘输入设定时间
由键盘输入设定的起始时间,再通过编程将输入的时间转换成BCD码,接着进行时
间递增的运算,依靠延时子程序实现每一秒计数一次,最后再转换回ASCII码显示在屏幕上。此过程需要的延时程序使用a方法的即可。 (1)获取系统时间
调用DOS操作系统,在显示屏上显示提示语“welcome to my program!!!”
(2) 延时程序
在计算机中,指令的长短是以计算机的时钟周期为基本单位的,当CPU的时钟频率一定时,时钟周期也是确定的,可以通过在程序中加一些与程序无关的指令让计算机执行以达到延时的目的。
(3) 光标设置程序
通过设置光标的位置是光标显示在屏幕适当的位置 (4)校时程序
settime: clearscreen 00h,00h,18h,4fh,0fh
5
作息时间控制系统
setf 09h,14h
mov dx,offset show_reset call output
mov ah,01h
int 21h and al,0fh mov [Disptime],al int 21h and al,0fh
mov [Disptime+1],al int 21h int 21h and al,0fh
mov [Disptime+3],al int 21h and al,0fh
mov [Disptime+4],al int 21h int 21h and al,0fh
mov [Disptime+6],al int 21h and al,0fh
mov [Disptime+7],al jmp begin
(5)闹钟值的设置
timetableflag db 01h,01h,00h,00h
timetable_1 db \ \timetable_2 db \
6
作息时间控制系统
timetable_3 db \ \timetable_4 db \ \
2.2 用硬件实现的作息时间控制系统
可通过中断控制器8259A、并行输入接口芯片8255A、计数器/定时器8253实现电子时钟功能,LED发光二极管。本次硬件的设计还用到了8284时钟发生器。
开始页面
调用系统时间
7
相关推荐: