⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 DOS下的有8254时钟的程序
💻 C
字号:
#include "dos.h"
#include "bios.h"
#include "stdio.h"
#include "time.h"
#include "stdlib.h"

void interrupt (far *old)();
void interrupt  far handle_timer();
unsigned long timer_i=0,timer_a=0;
unsigned long count = 0;

void T8254_SetTimer(int number)
{
	outportb(0x43,0x36);
	outportb(0x40,0x9A);
	outportb(0x40,0x2E);
	timer_i=0;
	old=getvect(0x08);
	setvect(0x08,handle_timer);
	while(timer_i<number*100);
	printf("%d\n",count);
//	printf("timer_i=%u\n",timer_i);
//	printf("timer_t=%u\n",timer_t);
	setvect(0x08,old);
	outportb(0x43,0x36);
	outportb(0x40,0);
	outportb(0x40,0);
}

void interrupt far handle_timer()
{
	timer_i++;
	timer_a++;
//	puts("c");
	count++;
	if(timer_a>=5494)
		{
			timer_a=timer_a-5494;
			old();
		}
	else
		outportb(0x20,0x20);
			
}	

void main(int agrc,char *agrv[])
{
	int number=0;
	time_t time_start,time_end;
	if(agrc==2)		number=atol(agrv[1]);
	else			number=1;
	time(&time_start);
	printf("time_start:%d\n",time_start);
	T8254_SetTimer(number);
	time(&time_end);
	printf("\ntime_end:%d\n",time_end);
	printf("%d",time_end-time_start);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -