SEG

靜態的過於簡單,直接開動態掃描的。

在這裏插入圖片描述

//SEG.h//

u8 SEG_code[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xBF}; //共陽管碼錶(10 = -)
u8 SEG_buff[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //緩衝區
//SEG.c//

void SEG_Scan()		//定時器中斷調用(建議1ms)
{
  static u8 index = 0;
 
  P2 = (P2 & 0X1F) | 0XE0;  //消隱
  P0 = 0xFF;
  P2 = P2 & 0X1F;
  
  P2 = (P2 & 0X1F) | 0XC0;  //位選
  P0 = 0x80 >> index;
  P2 = P2 & 0X1F;
  
  P2 = (P2 & 0X1F) | 0XE0;  //段選
  P0 = SEG_buff[index];
  P2 = P2 & 0X1F;
  
  index++;
  index &= 0x07; 
}
  • 比賽是提供碼錶的,不需要背會。
  • DP程序只需要申請修改緩衝區即可,具體見 運籌帷幄 方法論 部分
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章