查詢完整的 C 時鐘中斷程式

發布 科技 2024-08-06
3個回答
  1. 匿名使用者2024-02-15

    #include

    #include

    #include

    #define vk_esc 0x11b /* escape key */

    定義定時器0x1c時鐘中斷的中斷編號

    int timercounter=0;* 計時變數,每秒增加 18 次。 */

    指向原始時鐘中斷處理程式條目的中斷處理程式指標(控制代碼)

    void interrupt ( oldhandler)()

    新的時鐘中斷處理程式 *

    void interrupt newhandler( )

    increase the global counter */

    timercounter++;

    call the old routine */

    oldhandler();

    設定新的時鐘中斷處理程式*

    void settimer(void interrupt (*intproc)()

    oldhandler=getvect(timer);

    disable();設定新的時鐘中斷處理程式時,將禁用所有中斷

    setvect(timer,intproc);

    enable();開啟中斷

    恢復到原始時鐘中斷處理*

    void killtimer()

    disable();

    setvect(timer,oldhandler);

    enable();

    void main(void)

    int key,time=0;

    settimer(newhandler);修改時鐘中斷

    for (;

    if (bioskey(1))

    key=bioskey(0);

    if (key==vk esc) * 按 Esc 鍵提前退出程式*

    printf("user cancel!");

    break;

    if (timercounter>18) * 每 1 秒一次 *

    恢復時序變數 *

    timercounter=0;

    time++;

    printf("%d",time);

    if (time==10) * 在 10 秒內結束程式

    printf("program terminated normally!");

    break;

    killtimer();恢復時鐘中斷

  2. 匿名使用者2024-02-14

    這裡有乙個想法。

    讓我們從鍵盤掃瞄器開始。 採集是通過 A 按鈕還是 B 按鈕按下。 如果按下A鍵,LED1埠的輸出電平會很高,然後延時為1s,延時程式可以用延時大致延時,也可以用定時器準確延時; 延遲1s後,讓LED埠輸出低電平,然後延遲1s。

    用 a while 或 for 語句迴圈此程式 5 次,這樣就可以得到啟動 led1 的動作(1s 閃爍一次,持續 10 秒);

    然後在此語句之後啟動另乙個計時器,用於計時 20 秒。 您可以將此計時器排程為 50 毫秒,然後在迴圈變數中新增 400 次,即 20 秒的計時。

    在此期間,如果再次按下A鍵,則判斷定時器是否迴圈超過400次,如果超過則表示A鍵已從之前的狀態按下20S以上,以這種方式重複啟動LED1的動作(1S閃爍一次, 持續10S),如果迴圈變數不超過400次,則表示在20S內再次按下了A鍵,這樣就執行了LED2(秒閃一次,持續20S)這個動作。

    LED2(20s秒閃爍一次)的程式是LED2的IO口輸出高電平,然後延秒,然後LED2口輸出低電平,延秒。 之後,使用 while 或 for 語句迴圈此程式 10 次,即可完成 led2 的動作(秒閃一次,持續 20 秒)。

    當然,在鍵盤掃瞄程式中,如果按B鍵,會直接讓LED2埠輸出高電平。 這樣,LED2 將保持亮起。

  3. 匿名使用者2024-02-13

    太奇怪了,居然用串列埠當io口。

相關回答
8個回答2024-08-06

*找到 2+4+6+8+....+100 和 *

#include "" >>>More

5個回答2024-08-06

bool f=0;

for(int i=1000;i>=1;我--)從最大的數字 1000 開始,然後嘗試使用較小的數字。 >>>More

3個回答2024-08-06

總結。 這是乙個用 C** 編寫的簡單時鐘,它列印出當前時間(以小時、分鐘和秒為單位):include include int main() return 0; 此 ** 使用標頭檔案中的 time 函式和 localtime 函式,以及標頭檔案中的 printf 函式和 fflush 函式。 >>>More

5個回答2024-08-06

最主要的是你使用命名空間 std 來放置這一行; 把它放在 main() 中,然後呼叫 cout 輸出它,所以你應該把它放在前面,或者直接新增到頭檔案中。 可以使用 h,也可以將其放在呼叫 iostream 的函式的前面。 如: >>>More

6個回答2024-08-06

您可以在陣列的末尾新增乙個 0,但不能在中間新增乙個 0。 然後將其更改為如下所示: >>>More