freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

智能電能表設計-本科畢業(yè)論-資料下載頁

2025-06-02 22:56本頁面
  

【正文】 gSniffer 函數判斷功能鍵標志是否被標記, 如果功能鍵標志被標記,而且按鍵時間超過 T0的 100 次計數,即 。則 DogSniffer 使功能鍵標志復位。如果功能鍵標志沒有被標記,則 DogSniffer 使 T0 中斷計數復位。并且不在向 T0 送入定時初值。如果功能鍵標志被標記,但是 T0 中斷計數未達 100 次,則將 T0 中斷計數加 1,并向T0 送入定時初值,開始下次定時。 下是鍵盤模塊程序中使用的函數列表,其中 NumsToArray 等四個輔助算法函數在第二部分,系統(tǒng)整體設計中已經詳細描述,這里不在說明。 void DogSniffer(void) interrupt 1 using 0。 void KeyBoard(void) interrupt 2 using 0。 void ShowHighCoulometer(void)。 void ShowLowCoulometer(void)。 void ShowAllCoulometer(void)。 void ShowHighFee(void)。 void ShowLowFee(void)。 void ShowAllFee(void)。 void Clear(void)。 void WakeupDog(void)。 void SetHighFee(uchar key)。 void SetLowFee(uchar key)。 void SetHighStart(uchar key)。 void SetHighEnd(uchar key)。 void SetLowStart(uchar key)。 void SetLowEnd(uchar key)。 uchar NumsToArray(int number,uchar Array[8])。 void ArrayToCharacters(uchar message[8]。 uchar display[8][32]。 uchar length)。 int ArrayToDigitalI(uchar Array[8],uchar length)。 float ArrayToDigitalF(uchar Array[8],uchar length)。 KeyBoard 中斷處理函數首先將按鍵的鍵碼讀入一個變量中,然后判斷功能鍵標志 WhichFunctionKey 是否被作標記,如果已做標記,則進入一個 switch 語句,根據不同的鍵碼,調用不同設置函數。如果 WhichFunctionKey 未被標記,則進入標準狀態(tài)的按鍵處理過程,此過程通過一個 switch 語句決定不同的執(zhí)行方式。按下 0~ 5 鍵時,為顯示相關信息的操作,則直接調用相關函數。按下 C 鍵時為復位語句,直接調用Clear()函數。當按下功能鍵 6~b 時,首先將功能鍵標志WhichFunctionKey 設置為相 同的鍵碼,然后喚醒偵探狗,進行設置超時探測。當下次按下按鍵時,由于 WhichFunctionKey已被標記,會轉到相應的設置函數執(zhí)行。如果長時間未按下任何鍵,當超過偵探狗的超時時間后,偵探狗會將WhichFunctionKey 標志的標記取消。 ShowHighCoulometer , ShowLowCoulometer ,ShowAllCoulometer 和 ShowHighFee 、 ShowLowFee 、ShowAllFee 兩組函數用于顯示 coulometer 和 fee 結構的變量中保存的高峰用電量、低谷用電量、 總用電量和高峰電費、低谷電費、總電費的數值。這兩組函數將內存中保存的數值轉化為一個只存放單個位數字的數組,然后通過查字庫NumCharacters,將單個數字的字型碼送到要顯示的字符緩存區(qū)里。 ShowHighFee 一組函數在顯示時,由于內部變量為 float型,在 LCD 上顯示時比較困難,而且在計算電費時按照整數結算也是比較容易接受的選擇,所以在實現(xiàn)時首先利用標準庫中的 ceil()函數將 float取整,然后再轉化為整型數字顯示。 SetHighFee、 SetLowFee、 SetHighStart、和 SetHighEnd、SetLowStart、 SetLowEnd 函數用于設置 initset 結構定義的電價、轉數、高峰時段、低谷時段等變量。這些函數被調用時一般將按鍵信息存儲在一個輸入緩沖區(qū)里面。輸入小數點用按鍵 D 代替,輸入結束用按鍵 E 代替。當這些函數檢測到一個輸入結束按鍵時,它們將輸入緩沖區(qū)的數據傳遞給ArrayToDigitalI 或者時 ArrayToDigitalF,由他們完成輸入到數值的轉化。然后將轉化后的數值設為相應變量的當前值。做完這些工作后,這些函數將輸入緩存區(qū)、緩存位置計數和WhichFunctionKey 標志復位。以備下一次設置。 鍵盤的中斷處理函數 下面簡單介紹了鍵盤的中斷處理函數,當鍵盤接到 CPU 的 T1中斷時,根據鍵值的不同調用相應的處理函數。 void KeyBoard(void) interrupt 2 using 0 //從外部中斷 INT1,工 作 寄 存 器 0 組 { uchar key。// 定義鍵盤函數 CommandPortOf8279=0x40。//鍵盤控制芯片 8279 的命令口地址 key=DataOf8279。//8279 的 數 據 口 地址 if(WhichFunctionKey =0x06 amp。amp。 WhichFunctionKey = 0x0b) { switch(WhichFunctionKey)// 選擇函數 { case 0x06: SetHighFee(key)。// 設置高鋒電費 break。 case 0x07: SetLowFee(key)。// 設置低谷電費 break。 case 0x08: SetHighStart(key)。// 設 置 高 鋒 起始 break。 case 0x09: SetHighEnd(key)。 設置高鋒結束 break。 case 0x0a: SetLowStart(key)。// 設 置 低 谷 開始 break。 case 0x0b: SetLowEnd(key)。 設置低谷結束 } } else { switch(key) { case 0x00: ShowHighCoulometer()。//顯示高鋒用電量
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1