久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久

首頁 > 體育

第10章-實例練習與經驗積累(上:跟堂作業)

來源:嗶哩嗶哩 時間:2023-09-01 06:42:38


(資料圖片僅供參考)

這節課,真沒意思,不想做,拖了好幾天,快沒感覺了

//跟堂作業:秒表#include <>typedef signed char i8;typedef unsigned char u8;typedef signed int i16;typedef unsigned int u16;typedef signed long i32;typedef unsigned long u32;sbit ADDR3 = P1 ^ 3;sbit ENLED = P1 ^ 4;sbit KEY1 = P2 ^ 4;sbit KEY2 = P2 ^ 5;sbit KEY3 = P2 ^ 6;sbit KEY4 = P2 ^ 7;u8 code LedChar[16] ={?? ?0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,?? ?0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};u8 LedBuff[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};u8 KeySta[4] = {1, 1, 1, 1};u8 TH0RL = 0;u8 TL0RL = 0;bit StopWatchRefresh = 1; // 0=不需要刷新,1=需要刷新數碼管u8 DecimalPart = 0;?? ?? // 小數部分u16 IntegerPart = 0;?? ?? // 整數部分bit StopWatchRunning = 0; // 0=停,1=正在工作void ConfigTimer0(u16 ms){?? ?u32 tmp;?? ?tmp = 11059200 / 12;?? ?tmp = tmp * ms / 1000;?? ?tmp = 65536 - tmp;?? ?tmp += 18; // 補償值?? ?TH0 = TH0RL = (u8)(tmp >> 8);?? ?TL0 = TL0RL = (u8)tmp;?? ?TMOD ^= 0xF0;?? ?TMOD |= 0x01;?? ?ET0 = TR0 = 1;}void StopWatchReset(void){?? ?StopWatchRunning = 0;?? ?DecimalPart = 0;?? ?IntegerPart = 0;?? ?StopWatchRefresh = 1;}void StopWatchAction(void){?? ?StopWatchRunning = !StopWatchRunning;}void StopWatchCount(void){?? ?if (StopWatchRunning)?? ?{?? ??? ?DecimalPart++;?? ??? ?if (DecimalPart >= 100)?? ??? ?{?? ??? ??? ?DecimalPart = 0;?? ??? ??? ?IntegerPart++;?? ??? ??? ?if (IntegerPart >= 10000)?? ??? ??? ?{?? ??? ??? ??? ?IntegerPart = 0;?? ??? ??? ?}?? ??? ?}?? ??? ?StopWatchRefresh = 1;?? ?}}void StopWatchDisplay(void){?? ?u8 i, j;?? ?u8 buf[4];?? ?LedBuff[0] = LedChar[DecimalPart % 10];?? ?LedBuff[1] = LedChar[DecimalPart / 10];?? ?buf[0] = IntegerPart % 10;?? ?buf[1] = IntegerPart / 10 % 10;?? ?buf[2] = IntegerPart / 100 % 10;?? ?buf[3] = IntegerPart / 1000 % 10;?? ?for (i = 3; i >= 1; i--)?? ?{?? ??? ?if (buf[i] == 0)?? ??? ?{?? ??? ??? ?LedBuff[i + 2] = 0xFF;?? ??? ?}?? ??? ?else?? ??? ?{?? ??? ??? ?break;?? ??? ?}?? ?}?? ?for (j = 0; j <= i; j++)?? ?{?? ??? ?LedBuff[j + 2] = LedChar[buf[j]];?? ?}?? ?LedBuff[2] &= 0x7F; // 加小數點}void KeyDriver(void){?? ?u8 i;?? ?static u8 backup[4] = {1, 1, 1, 1};?? ?for (i = 0; i < 4; i++)?? ?{?? ??? ?if (backup[i] != KeySta[i])?? ??? ?{?? ??? ??? ?if (backup[i] != 0) // 按下處理?? ??? ??? ?{?? ??? ??? ??? ?if (i == 1) // Esc鍵,復位秒表?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?StopWatchReset();?? ??? ??? ??? ?}?? ??? ??? ??? ?else if (i == 2) // 回車鍵,啟停秒表?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?StopWatchAction();?? ??? ??? ??? ?}?? ??? ??? ?}?? ??? ??? ?backup[i] = KeySta[i];?? ??? ?}?? ?}}void main(void){?? ?EA = 1;?? ?ENLED = 0;?? ?ADDR3 = 1;?? ?P2 = 0xFE; // 1111-1110?? ?ConfigTimer0(2); // 2ms?? ?while (1)?? ?{?? ??? ?if (StopWatchRefresh)?? ??? ?{?? ??? ??? ?StopWatchRefresh = 0;?? ??? ??? ?StopWatchDisplay();?? ??? ?}?? ??? ?KeyDriver();?? ?}}void LedScan(void){?? ?static u8 i = 0;?? ?P0 = 0xFF;?? ?P1 = (P1 & 0xF8) | i;?? ?P0 = LedBuff[i];?? ?if (i < 5)?? ??? ?i++;?? ?else?? ??? ?i = 0;}void KeyScan(void){?? ?static u8 keybuff[4] = {0xFF, 0xFF, 0xFF, 0xFF};?? ?u8 i;?? ?keybuff[0] = (keybuff[0] << 1) | KEY1;?? ?keybuff[1] = (keybuff[1] << 1) | KEY2;?? ?keybuff[2] = (keybuff[2] << 1) | KEY3;?? ?keybuff[3] = (keybuff[3] << 1) | KEY4;?? ?for (i = 0; i < 3; i++)?? ?{?? ??? ?if (keybuff[i] == 0xFF)?? ??? ??? ?KeySta[i] = 1;?? ??? ?else if (keybuff[i] == 0)?? ??? ??? ?KeySta[i] = 0;?? ?}}void Timer0_ISR(void) interrupt 1{?? ?static u8 tmr10ms = 0;?? ?TH0 = TH0RL;?? ?TL0 = TL0RL;?? ?LedScan();?? ?KeyScan();?? ?tmr10ms++;?? ?if (tmr10ms >= 5)?? ?{?? ??? ?tmr10ms = 0;?? ??? ?StopWatchCount();?? ?}}//跟堂作業,PWM#include <>typedef unsigned char u8;typedef unsigned int? u16;typedef unsigned long u32;typedef signed char i8;typedef signed int? i16;typedef signed long i32;sbit PWMOUT=P0^0;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ADDR3=P1^3;sbit ENLED=P1^4;u8 lowRH,lowRL;u8 highRH,highRL;void ConfigPWM( u16 freq, u8 dc ) {?? ?u32 tmp;?? ?u16 high,low;?? ?tmp=11059200/12/freq;//計數值?? ?high=tmp*dc/100;//高電平計數值?? ?low=tmp-high;//低電平計數值?? ??? ?high=65536-high+12;//補償,初值?? ?low=65536-low+12;//補償,初值?? ?highRH=(u8)(high>>8);?? ?highRL=(u8)(high);?? ?lowRH=(u8)(low>>8);?? ?lowRL=(u8)low;?? ?TMOD&=0xF0;?? ?TMOD|=0x01;?? ?TH0=highRH;?? ?TL0=highRL;?? ?ET0=TR0=1;?? ?PWMOUT=1;}void ClosePWM(void) {?? ?ET0=TR0=0;?? ?PWMOUT=1;}void main(void){?? ?u16 i;?? ?EA=1;?? ?ENLED=0;?? ?ADDR3=1;?? ?ADDR2=1;?? ?ADDR1=1;?? ?ADDR0=0;?? ?while(1)?? ?{?? ??? ?ConfigPWM(100,10);?? ??? ?for(i=0;i<40000;i++);?? ??? ?ConfigPWM(100,40);?? ??? ?for(i=0;i<40000;i++);?? ??? ?ConfigPWM(100,90);?? ??? ?for(i=0;i<40000;i++);?? ??? ?ClosePWM();?? ??? ?for(i=0;i<40000;i++);?? ?}}void Timer0_ISR(void) interrupt 1{?? ?if(PWMOUT==1)?? ?{?? ??? ?TH0=lowRH;?? ??? ?TL0=lowRL;?? ??? ?PWMOUT=0;?? ?}?? ?else?? ?{?? ??? ?TH0=highRH;?? ??? ?TL0=highRL;?? ??? ?PWMOUT=1;?? ?}}//跟堂作業,呼吸燈#include <>typedef unsigned char u8;typedef unsigned int? u16;typedef unsigned long u32;typedef signed char i8;typedef signed int? i16;typedef signed long i32;u8 lowRH,lowRL;u8 highRH,highRL;u8 TH1RL,TL1RL;u32 PeriodCnt;sbit PWMOUT=P0^0;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ADDR3=P1^3;sbit ENLED=P1^4;void ConfigPWM( u16 freq, u8 dc ) {?? ?u16 high,low;?? ?PeriodCnt=11059200/12/freq;//計數值?? ?high=PeriodCnt*dc/100;//高電平計數值?? ?low=PeriodCnt-high;//低電平計數值?? ?high=65536-high+12;//補償,初值?? ?low=65536-low+12;//補償,初值?? ?highRH=(u8)(high>>8);?? ?highRL=(u8)(high);?? ?lowRH=(u8)(low>>8);?? ?lowRL=(u8)low;?? ?TMOD&=0xF0;?? ?TMOD|=0x01;?? ?TH0=highRH;?? ?TL0=highRL;?? ?ET0=TR0=1;?? ?PWMOUT=1;}void ConfigTimer1( u16 ms ){?? ?u32 tmp;?? ??? ?tmp=11059200/12*ms/1000;?? ?tmp=65536-tmp;?? ?tmp+=12;//補償?? ?TH1RL=(u8)(tmp>>8);?? ?TL1RL=(u8)tmp;?? ?TMOD&=0x0F;?? ?TMOD|=0x10;?? ?TH1=TH1RL;?? ?TL1=TL1RL;?? ?ET1=TR1=1;}void ClosePWM(void) {?? ?ET0=TR0=0;?? ?PWMOUT=1;}void main(void){?? ?EA=1;?? ?ENLED=0;?? ?ADDR3=1;?? ?ADDR2=1;?? ?ADDR1=1;?? ?ADDR0=0;?? ?ConfigPWM(100,10);//100Hz,占空比10?? ?ConfigTimer1(50);//50ms?? ?while(1);}void Timer0_ISR(void) interrupt 1{?? ?if(PWMOUT==1)?? ?{?? ??? ?TH0=lowRH;?? ??? ?TL0=lowRL;?? ??? ?PWMOUT=0;?? ?}?? ?else?? ?{?? ??? ?TH0=highRH;?? ??? ?TL0=highRL;?? ??? ?PWMOUT=1;?? ?}}void AdjuctDutyCycle( u8 dc ) {?? ?u16 high,low;?? ??? ?high=PeriodCnt*dc/100;//高電平計數值?? ?low=PeriodCnt-high;//低電平計數值?? ?high=65536-high+12;//補償,初值?? ?low=65536-low+12;//補償,初值?? ?highRH=(u8)(high>>8);?? ?highRL=(u8)(high);?? ?lowRH=(u8)(low>>8);?? ?lowRL=(u8)low;}void Timer1_ISR(void) interrupt 3{?? ?u8 code table[13]={5,18,30,41,51,60,68,75,81,86,90,93,95};?? ?static bit dir=0;?? ?static u8 index=0;?? ?TH1=TH1RL;?? ?TL1=TL1RL;?? ?AdjuctDutyCycle(table[index]);?? ?if(dir==0)?? ?{?? ??? ?index++;?? ??? ?if(index>=12)dir=1;?? ?}?? ?else?? ?{?? ??? ?index--;?? ??? ?if(index==0)dir=0;?? ?}}//跟堂作業,交通燈--改進版#include ""typedef signed char i8;typedef unsigned char u8;typedef signed int i16;typedef unsigned int u16;typedef signed long i32;typedef unsigned long u32;sbit ADDR3 = P1 ^ 3;sbit ENLED = P1 ^ 4;u8 code LedChar[] = { // 數碼管顯示字符轉換表??? 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,??? 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};u8 LedBuff[8] = { // 數碼管+獨立LED顯示緩沖區??? 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};bit flag1s = 1;u8 TH0RL = 0;u8 TL0RL = 0;void ConfigTimer0(u16 ms);void TrafficLight();void main(void){?? ?EA = 1;?? ??? // 開總中斷?? ?ENLED = 0; // 使能數碼管和LED?? ?ADDR3 = 1;?? ?ConfigTimer0(1); // 配置T0定時1ms?? ?while (1)?? ?{?? ??? ?if (flag1s) // 每秒執行一次交通燈刷新?? ??? ?{?? ??? ??? ?flag1s = 0;?? ??? ??? ?TrafficLight();?? ??? ?}?? ?}}void ConfigTimer0(u16 ms){?? ?unsigned long tmp; // 臨時變量?? ?tmp = 11059200 / 12;?? ?????? // 定時器計數頻率?? ?tmp = (tmp * ms) / 1000;????? // 計算所需的計數值?? ?tmp = 65536 - tmp;?? ?????? // 計算定時器重載值?? ?tmp = tmp + 18;?? ??? ?????? // 補償中斷響應延時造成的誤差?? ?TH0 = TH0RL = (u8)(tmp >> 8); // 定時器重載值拆分為高低字節?? ?TL0 = TL0RL = (u8)tmp;?? ?TMOD &= 0xF0;? // 清零T0的控制位?? ?TMOD |= 0x01;? // 配置T0為模式1?? ?ET0 = TR0 = 1; // 使能T0中斷 // 啟動T0}void TrafficLight(){#define red 1#define green 2#define yello 3?? ?static u8 color = yello;#define red_smgPos 0#define green_smgPos 4#define yello_smgPos 2?? ?static u8 smgPos = yello_smgPos;?? ?static i8 timer = 2;?? ?static u8 lastLight = red;?? ?u8 i;?? ?for (i = 0; i < 6; i++)?? ?{?? ??? ?LedBuff[i] = 0xFF;?? ?}?? ?timer--;?? ?LedBuff[smgPos] = LedChar[timer % 10];?? ?LedBuff[smgPos + 1] = LedChar[timer / 10];?? ?switch (color)?? ?{?? ?case green:?? ??? ?LedBuff[6] = 0x3F; // 0011-1111?? ??? ?if (timer == 0)?? ??? ?{?? ??? ??? ?lastLight = green;?? ??? ??? ?smgPos = yello_smgPos;?? ??? ??? ?color = yello;?? ??? ??? ?timer = 2;?? ??? ?}?? ??? ?break;?? ?case yello:?? ??? ?LedBuff[6] = 0xE7; // 1110-0111?? ??? ?if (timer == 0)?? ??? ?{?? ??? ??? ?if (lastLight == green)?? ??? ??? ?{?? ??? ??? ??? ?color = red;?? ??? ??? ??? ?smgPos = red_smgPos;?? ??? ??? ??? ?timer = 10;?? ??? ??? ?}?? ??? ??? ?else if (lastLight == red)?? ??? ??? ?{?? ??? ??? ??? ?color = green;?? ??? ??? ??? ?smgPos = green_smgPos;?? ??? ??? ??? ?timer = 20;?? ??? ??? ?}?? ??? ?}?? ??? ?break;?? ?case red:?? ??? ?LedBuff[6] = 0xFC; // 1111-1100?? ??? ?if (timer == 0)?? ??? ?{?? ??? ??? ?lastLight = red;?? ??? ??? ?smgPos = yello_smgPos;?? ??? ??? ?color = yello;?? ??? ??? ?timer = 2;?? ??? ?}?? ??? ?break;?? ?}}void LedScan(){?? ?static u8 i = 0; // 動態掃描索引?? ?P0 = 0xFF;?? ?????? // 關閉所有段選位,顯示消隱?? ?P1 = (P1 & 0xF8) | i; // 位選索引值賦值到P1口低3位?? ?P0 = LedBuff[i];????? // 緩沖區中索引位置的數據送到P0口?? ?i++;?? ?i &= 0x07; // 0000-0111}void InterruptTimer0() interrupt 1{?? ?static u16 tmr1s = 0; // 1秒定時器?? ?TH0 = TH0RL; // 重新加載重載值?? ?TL0 = TL0RL;?? ?LedScan(); // LED掃描顯示?? ?tmr1s++;?? // 1秒定時的處理?? ?if (tmr1s >= 1000)?? ?{?? ??? ?tmr1s = 0;?? ??? ?flag1s = 1; // 設置秒定時標志?? ?}}//跟堂作業 c4炸彈#include <>typedef signed char i8;typedef unsigned char u8;typedef signed int i16;typedef unsigned int u16;typedef signed long i32;typedef unsigned long u32;sbit BUZZ = P1 ^ 6;sbit ADDR3 = P1 ^ 3;sbit ENLED = P1 ^ 4;sbit KEYIN1 = P2 ^ 4;sbit KEYIN2 = P2 ^ 5;sbit KEYIN3 = P2 ^ 6;sbit KEYIN4 = P2 ^ 7;sbit KEYOUT1 = P2 ^ 3;sbit KEYOUT2 = P2 ^ 2;sbit KEYOUT3 = P2 ^ 1;sbit KEYOUT4 = P2 ^ 0;u8 code LedChar[16] =??? {?? ?0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,?? ?0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};u8 LedBuff[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};u8 code KeyCodeMap[4][4] =??? {?? ?{0x31, 0x32, 0x33, 0x26}, // 數字1,2,3,UP?? ?{0x34, 0x35, 0x36, 0x25}, // 數字4,5,6,LEFT?? ?{0x37, 0x38, 0x39, 0x28}, // 數字7,8,9,DOWN?? ?{0x30, 0x1B, 0x0D, 0x27}, // 數字0,ESC,ENTER,RIGHT};u8 KeySta[4][4] = {{1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}};u32 pdata KeyDownTime[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};bit enBuzz = 0;bit flag1s = 0;bit flagStart = 0;u8 TH0RL = 0;u8 TL0RL = 0;u16 CountDown = 0;void ConfigTimer0(u16 ms){?? ?u32 tmp;?? ?tmp = 11059200 / 12;?? ?tmp = tmp * ms / 1000;?? ?tmp = 65536 - tmp;?? ?tmp += 18; // 補償值?? ?TH0 = TH0RL = (u8)(tmp >> 8);?? ?TL0 = TL0RL = (u8)tmp;?? ?TMOD &= 0xF0;?? ?TMOD |= 0x01;?? ?ET0 = TR0 = 1;}void ShowNumber(u32 num){?? ?i8 i;?? ?u8 buf[6];?? ?for (i = 0; i < 6; i++)?? ?{?? ??? ?buf[i] = num % 10;?? ??? ?num /= 10;?? ?}?? ?for (i = 5; i >= 1; i--)?? ?{?? ??? ?if (buf[i] == 0)?? ??? ??? ?LedBuff[i] = 0xFF;?? ??? ?else?? ??? ??? ?break;?? ?}?? ?for (; i >= 0; i--)?? ?{?? ??? ?LedBuff[i] = LedChar[buf[i]];?? ?}}void KeyAction(u8 keycode){?? ?if (keycode == 0x26) // up?? ?{?? ??? ?if (CountDown < 9999)?? ??? ?{?? ??? ??? ?CountDown++;?? ??? ??? ?ShowNumber(CountDown);?? ??? ?}?? ?}?? ?else if (keycode == 0x28) // down?? ?{?? ??? ?if (CountDown > 1)?? ??? ?{?? ??? ??? ?CountDown--;?? ??? ??? ?ShowNumber(CountDown);?? ??? ?}?? ?}?? ?else if (keycode == 0x0D) // enter?? ?{?? ??? ?flagStart = 1;?? ?}?? ?else if (keycode == 0x1B) // esc?? ?{?? ??? ?enBuzz = 0;?? ??? ?LedBuff[6] = 0xFF;?? ??? ?flagStart = 0;?? ??? ?CountDown = 0;?? ??? ?ShowNumber(CountDown);?? ?}}void KeyDriver(void){?? ?u8 i, j;?? ?static u8 backup[4][4] = {{1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}};?? ?static u32 pdata TimeThr[4][4] = {?? ???? {1000, 1000, 1000, 1000},?? ???? {1000, 1000, 1000, 1000},?? ???? {1000, 1000, 1000, 1000},?? ???? {1000, 1000, 1000, 1000}};?? ?for (i = 0; i < 4; i++)?? ?{?? ??? ?for (j = 0; j < 4; j++)?? ??? ?{?? ??? ??? ?if (backup[i][j] != KeySta[i][j])?? ??? ??? ?{?? ??? ??? ??? ?if (backup[i][j] == 0)?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?KeyAction(KeyCodeMap[i][j]);?? ??? ??? ??? ?}?? ??? ??? ??? ?backup[i][j] = KeySta[i][j];?? ??? ??? ?}?? ??? ??? ?if (KeyDownTime[i][j] > 0)?? ??? ??? ?{?? ??? ??? ??? ?if (KeyDownTime[i][j] >= TimeThr[i][j])?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?KeyAction(KeyCodeMap[i][j]);?? ??? ??? ??? ??? ?TimeThr[i][j] += 200;?? ??? ??? ??? ?}?? ??? ??? ?}?? ??? ??? ?else?? ??? ??? ?{?? ??? ??? ??? ?TimeThr[i][j] = 1000;?? ??? ??? ?}?? ??? ?}?? ?}}void main(void){?? ?EA = 1;?? ?ENLED = 0;?? ?ADDR3 = 1;?? ?ConfigTimer0(1); // 1ms?? ?ShowNumber(0);?? ?while (1)?? ?{?? ??? ?KeyDriver();?? ??? ?if (flagStart && flag1s)?? ??? ?{?? ??? ??? ?flag1s = 0;?? ??? ??? ?if (CountDown > 0)?? ??? ??? ?{?? ??? ??? ??? ?CountDown--;?? ??? ??? ??? ?ShowNumber(CountDown);?? ??? ??? ??? ?if (CountDown == 0)?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?enBuzz = 1;?? ??? ??? ??? ??? ?LedBuff[6] = 0;?? ??? ??? ??? ?}?? ??? ??? ?}?? ??? ?}?? ?}}void LedScan(void){?? ?static u8 i = 0;?? ?P0 = 0xFF;?? ?P1 = (P1 & 0xF8) | i;?? ?P0 = LedBuff[i];?? ?i++;?? ?i &= 0x07; // 0000-0111}void KeyScan(void){?? ?u8 i;?? ?static u8 keyout = 0;?? ?static u8 keybuf[4][4] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}};?? ?keybuf[keyout][0] = (keybuf[keyout][0] << 1) | KEYIN1;?? ?keybuf[keyout][1] = (keybuf[keyout][1] << 1) | KEYIN2;?? ?keybuf[keyout][2] = (keybuf[keyout][2] << 1) | KEYIN3;?? ?keybuf[keyout][3] = (keybuf[keyout][3] << 1) | KEYIN4;?? ?for (i = 0; i < 4; i++)?? ?{?? ??? ?if ((keybuf[keyout][i] & 0x0F) == 0)?? ??? ?{?? ??? ??? ?KeySta[keyout][i] = 0;?? ??? ??? ?KeyDownTime[keyout][i] += 4;?? ??? ?}?? ??? ?else if ((keybuf[keyout][i] & 0x0F) == 0x0F)?? ??? ?{?? ??? ??? ?KeySta[keyout][i] = 1;?? ??? ??? ?KeyDownTime[keyout][i] = 0;?? ??? ?}?? ?}?? ?keyout++;?? ?keyout &= 0x03; // 0000-0011?? ?switch (keyout)?? ?{?? ?case 0:?? ?KEYOUT4 = 1; KEYOUT1 = 0; break;?? ?case 1: KEYOUT1 = 1; KEYOUT2 = 0; break;?? ?case 2: KEYOUT2 = 1; KEYOUT3 = 0; break;?? ?case 3: KEYOUT3 = 1; KEYOUT4 = 0; break;?? ?}}void Timer0_ISR(void) interrupt 1{?? ?static u16 tmr1s = 0;?? ?TH0 = TH0RL;?? ?TL0 = TL0RL;?? ?if (enBuzz)?? ??? ?BUZZ = !BUZZ;?? ?else?? ??? ?BUZZ = 1;?? ?LedScan();?? ?KeyScan();?? ?if (flagStart)?? ?{?? ??? ?tmr1s++;?? ??? ?if (tmr1s >= 1000)?? ??? ?{?? ??? ??? ?tmr1s = 0;?? ??? ??? ?flag1s = 1;?? ??? ?}?? ?}?? ?else?? ?{?? ??? ?tmr1s = 0;?? ?}}

相關稿件

第10章-實例練習與經驗積累(上:跟堂作業)

中山評論 | 以法治化營商環境護航“中山號”

退伍季:火箭軍“東風快遞員”別樣的退伍照

民事訴訟案件管轄權的確定

難救主!克拉克森23中9&三分10中4 空砍24分4板3助3斷

新車幾年免檢,新車幾年免檢最新規定2023

武漢、東莞等4城同日官宣“認房不認貸”

高盛預計蘋果(AAPL.US)iPhone 15 Pro和Pro Max至少漲價100美元

生態修復靚齊魯,岱青海藍鳥飛回

無償獻血踐初心 這群人擼袖組團獻血用真情奉獻社會

瀏陽九中:充分做好新學期迎接工作 為學生開學保駕護航

中石科技:8月30日公司高管袁靖減持公司股份合計3.44萬股

青海海北可提供東芝洗碗機維修服務地址在哪

重慶潼南區可提供萬家樂洗碗機維修服務地址在哪

大生農業金融(01103.HK):上半年股東應占虧損366.4萬元

小紅書數碼,攜手麻瓜聯盟開啟首屆“城市飛行”,換個視角看世界

復星國際(00656)2023中期業績產業運營利潤強勁提升66% 郭廣昌:“復星會聚焦創新、聚焦全球化 聚焦已有能力的進一步深耕”

微信表情開放平臺現已支持單個表情投稿

龍大美食半年報:預制菜占比提升 規模持續擴大

今年最大“超級月亮”今夜登場,哪里能邂逅滿月

汽車被撞對方全責但對方不處理怎么辦

715萬元“牛郎織女”雕塑涉嫌抄襲“湘江女神”?后者設計方:正收集資料準備維權

華夏幸福:公司半年報披露時間為8月31日,投資者可持續關注公司對外披露的公告

五部門部署開展綠色出行宣傳月活動

熱門車訊廣汽傳祺2款重磅車首發 隆重亮相上海車展

利好上億居民!存量按揭貸款利率開啟下調模式 100萬元房貸 每年可省超5000元

落地長安(關于落地長安簡述)

落幕之后的會面(關于落幕之后的會面簡述)

落寞之戀(關于落寞之戀簡述)

芯動半導體-SFM平臺SiC模塊丨確認申報2023金輯獎·年度最具成長價值獎


久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久
91视频在线观看| 欧美一级片免费看| 97aⅴ精品视频一二三区| 欧美精品一区二区在线观看| 久久国产精品一区二区| 免费xxxx性欧美18vr| 欧美草草影院在线视频| 国产精品一品视频| 最新日韩在线视频| 欧美日本精品一区二区三区| 日韩和欧美的一区| 国产精品成人免费在线| 日韩视频一区在线观看| 91丨九色丨尤物| 国产酒店精品激情| 看电影不卡的网站| 亚洲18女电影在线观看| 亚洲色欲色欲www| 国产日韩欧美制服另类| 久久日一线二线三线suv| 欧美伊人久久久久久久久影院| 免费一级片91| 亚洲va欧美va人人爽| 亚洲欧美日韩一区二区三区在线观看| 精品美女在线观看| 精品99久久久久久| 久久精品欧美日韩精品| 欧美一级黄色片| 欧美一区二区三区视频免费 | 亚洲国产aⅴ成人精品无吗| 亚洲欧洲综合另类| 一区二区三区精品视频| 亚洲国产综合在线| 日本中文字幕一区二区有限公司| 天天影视涩香欲综合网| 国产伦精品一区二区三区在线观看| 久久国产人妖系列| 91亚洲精品久久久蜜桃网站| 欧美无人高清视频在线观看| 91精品国产一区二区| 中文字幕一区视频| 五月婷婷另类国产| 国产成人精品亚洲日本在线桃色| 91色综合久久久久婷婷| 久久亚洲综合av| 午夜精品久久久久久久99樱桃| 久久97超碰色| 欧美一级高清片在线观看| 亚洲精品乱码久久久久久黑人| 日本中文字幕一区二区有限公司| 99re66热这里只有精品3直播| 欧美大胆人体bbbb| 精品一区二区三区不卡 | 99精品久久久久久| 国产精品午夜电影| 色综合久久综合网97色综合| 国产欧美一二三区| 午夜欧美一区二区三区在线播放| caoporen国产精品视频| 一区二区三国产精华液| 色综合婷婷久久| 性做久久久久久久免费看| 欧美日韩中文字幕一区二区| 亚洲福利视频三区| 91精品久久久久久蜜臀| 成人激情av网| 美女一区二区三区| 国产精品久久久久久久久久免费看 | 狠狠狠色丁香婷婷综合久久五月| 日韩一级免费一区| 国产a级毛片一区| 亚洲电影一级黄| 国产精品成人免费在线| 欧美精品乱码久久久久久| 国产成a人亚洲| 麻豆精品一区二区三区| 亚洲精品免费电影| 亚洲人成在线观看一区二区| 国产欧美日韩激情| 中文字幕久久午夜不卡| 久久亚洲精华国产精华液| 日韩欧美亚洲另类制服综合在线 | 中文字幕综合网| 国产欧美一区二区精品性色超碰 | 中文av一区二区| 国产精品久久久久久久第一福利 | 成人一级视频在线观看| 免费成人性网站| 国产一区二区主播在线| 国产福利精品一区| 色综合天天做天天爱| 91麻豆精品国产自产在线 | 国产欧美综合色| 日本va欧美va精品发布| 国产成人午夜电影网| 色综合久久综合网97色综合 | 国产在线播放一区二区三区| 国产91清纯白嫩初高中在线观看| 色婷婷精品大视频在线蜜桃视频| 91精品国产综合久久婷婷香蕉| 精品国产一区二区三区av性色| 综合激情网...| 国产成人综合网| 26uuu成人网一区二区三区| 亚洲精品久久久蜜桃| 国产一区91精品张津瑜| 91精品国产综合久久精品图片 | 蜜臀av性久久久久蜜臀aⅴ流畅| 国产综合久久久久久鬼色| 日本乱码高清不卡字幕| 91精品久久久久久久99蜜桃 | 无吗不卡中文字幕| 91网站在线播放| 国产亚洲一区二区三区在线观看| 亚洲欧美自拍偷拍| 久久99久久久久久久久久久| 欧美一区二区精品| 午夜视频在线观看一区二区| www.日韩av| 国产精品美女一区二区| 国产精品系列在线观看| 久久综合色鬼综合色| 午夜精品久久久久久久99樱桃| 色综合色综合色综合| 中文字幕中文在线不卡住| 国产·精品毛片| 亚洲电影中文字幕在线观看| 色国产精品一区在线观看| 亚洲一区二区三区在线| 884aa四虎影成人精品一区| 精品少妇一区二区三区在线播放 | 久久久久久影视| 99精品一区二区三区| 亚洲乱码国产乱码精品精小说| 一本大道久久a久久综合| 国产一区欧美一区| 中文成人av在线| 宅男在线国产精品| 成人高清免费观看| 日本欧美在线看| 亚洲乱码国产乱码精品精可以看 | 91久久线看在观草草青青| 丝袜诱惑制服诱惑色一区在线观看| 成人午夜视频网站| 天堂午夜影视日韩欧美一区二区| 久久青草欧美一区二区三区| 色哟哟在线观看一区二区三区| 久久99国产精品免费网站| 国产1区2区3区精品美女| 国产在线国偷精品产拍免费yy| 亚洲成a人片在线不卡一二三区| 国产日产欧产精品推荐色| 久久久精品欧美丰满| 国产欧美一区二区在线| 久久久久久久久99精品| 欧美日韩aaaaaa| 日韩亚洲欧美在线观看| 久久久99精品免费观看| 国产色产综合色产在线视频| 国产亚洲综合性久久久影院| 中文字幕二三区不卡| 亚洲天堂精品在线观看| 久久国内精品自在自线400部| 国产精品一区二区果冻传媒| 成人污污视频在线观看| 欧美日韩精品电影| 国产无人区一区二区三区| 亚洲欧美一区二区视频| 日韩中文字幕不卡| 不卡的电影网站| 精品系列免费在线观看| 国产精品白丝jk白祙喷水网站| 色婷婷综合久久久中文字幕| 日韩欧美中文字幕公布| 国产精品久久久久久久久快鸭| 天使萌一区二区三区免费观看| 国产精品白丝jk白祙喷水网站| 91国偷自产一区二区三区观看 | 亚洲高清视频的网址| 国产精品中文字幕一区二区三区| 在线视频欧美精品| 亚洲欧美偷拍卡通变态| 欧美色爱综合网| 亚洲自拍偷拍欧美| 欧美亚洲高清一区| 亚洲一区在线观看视频| 欧美一区二区黄色| 日韩电影免费一区| 欧美一个色资源| 国产一区激情在线| 亚洲天堂久久久久久久| 欧美一级欧美三级在线观看| 首页国产欧美久久| 中文字幕精品综合| 欧美色图免费看| 成人午夜在线播放| 国产精品高潮久久久久无| 色综合 综合色| 精品午夜久久福利影院| 亚洲国产精品精华液网站|