/* os_cfg.h
* ** */
#include "reg51.h"
#define time_per_sec 200 //定義任務時鐘頻率,200hz
#define clock 22118400 //定義時鐘晶振,單位hz
#define max_task 4 //定義任務數量
/*函式變數宣告,在需要用以下函式或變數的檔案中包含此檔案即可*/
extern void task0();
extern void task1();
extern void task2();
extern void task3();
extern unsigned char task_delay[max_task];
extern void run(void (*ptask)());
extern void os_timer_init(void);
/* os_c.c
* */
#include "os_cfg.h"
//定時器0初始化
void os_timer0_init(void)
/*系統os定時中斷服務*/
void os_timer0(void)interrupt 1
}/*指向函式的指標函式*/
void run(void (*ptask)())
/* main.c
* */
#include "os_cfg.h"
#define task_delay0 time_per_sec/1 //任務執行頻率為1hz
#define task_delay0 time_per_sec/2 //任務執行頻率為2hz
#define task_delay0 time_per_sec/10 //任務執行頻率為10hz
#define task_delay0 time_per_sec/20 //任務執行頻率為20hz
void (*code task()) = ; //獲取任務pc指標
sbit led0 = p1^0;
sbit led1 = p1^1;
sbit led2 = p1^2;
sbit led3 = p1^3;
void main(void)
} }}void task0(void)
void task1(void)
void task2(void)
void task3(void)
}
乙個簡單的作業系統
電腦上電後,bios在自檢後會根據使用者指定的裝置啟動作業系統。假設我們指定軟盤為啟動盤,bios會把軟盤的第乙個扇區 512位元組 讀取到記憶體的0x7c00處,如果這個扇區的最後兩個位元組為0xaa55,bios會跳轉到0x7c00處開始執行。我們可以利用這樣乙個過程做乙個簡單的作業系統。我們的...
乙個小作業系統
1 1 chapter1 a boot.asm 乙個 作業系統 可以只有20行 把下面這段 用nasm編譯一下 nasm boot.asm o boot.bin org 07c00h 告訴編譯器程式載入到7c00處 mov ax,cs mov ds,ax mov es,ax call dispstr...
作業系統開發之 乙個簡單的Bootsect
先嚇唬一下讀者朋友呵呵,直接發 這是uos作業系統的bootsect 有興趣的朋友能夠增加我們,在最後 檔名稱 bootsect.asm 檔案建立者 imcjy 檔案編碼 utf 8 狀態 o build 3 檔案建立日期 2015年7月24日 檔案最後改動日期 2015年8月12日 備註 本檔案為...