偉福8051單機實例程式_第1頁
偉福8051單機實例程式_第2頁
偉福8051單機實例程式_第3頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、附錄 C C 語言程序清單 LAP2000;軟件實驗一 存儲器塊清零/* #define Buffer 0x3000 */ unsigned char Buffer256;void main() unsigned int index;unsigned char * ptr;ptr = &Buffer; /* 起始地址 */for (index = 0; index <= 255; index+) *ptr+ = 0xff; /* 清 0, 地址加一 */ ;軟件實驗二 二進制到 BCD 碼轉換/* 將 Number 拆為三個 void main()unsigned char Re

2、sult3;unsigned char Number;Number = 234;Result0 = Number / 100;Result1 = (Number % 100) / 10; /*Result2 = Number % 10;/*;軟件實驗三 二進制到 ASCII 碼轉換 /* 將 A 拆為二個 ASCII 碼 ,BCD 碼, 并存入Result 數組 */除以 100, 得百位數 */ 余數除以 10, 得十位數 */ 余數為個位數 */并存入 Result 數組 */unsigned char const ASCIITable16 = "0123456789ABCDEF

3、" /* 定義數字對應的 ASCII 表 */ void main()unsigned char Result2; unsigned char Number;Number = 0x1a;Result0 = ASCIITableNumber / 16; /*Result1 = ASCIITableNumber & 0xf; /*高四位 */ 低四位 */while(1);軟件實驗四 內存塊移動unsigned char Buffer1256;unsigned char Buffer2256;void main()unsigned char * ptr1; unsigned ch

4、ar * ptr2;unsigned int index;ptr1 = &Buffer10;ptr2 = &Buffer20;for (index=0; index <= 255; index+) *ptr2+ = *ptr1+ - 1;軟件實驗五 程序跳轉表 void Func0() void Func1() void Func2() void Func3() void FuncEnter(unsigned char FuncID) switch (FuncID) case 0: Func0(); break;case 1:Func1(); break;case 2:F

5、unc2(); break;case 3:Func3(); break;default: break;void main()FuncEnter(0);FuncEnter(1);FuncEnter(2);FuncEnter(3); ;軟件實驗六 數據排序#define Size 10unsigned char ArraySize= 5,2,1,0,2,3,8,6,5,9;void main ()unsigned char Change;unsigned char index;unsigned char Temp;do Change = 0;for (index = 0; index < (

6、Size-1); index+) if (Arrayindex > Arrayindex+1) Change = 1;Temp = Arrayindex;Arrayindex = Arrayindex+1; Arrayindex+1 = Temp; while (Change);while (1);硬件實驗一 用 74LS245 讀入外部數據 extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);#define CS245 0x8000 unsigned

7、 char b;void main()while (1) b = IN(CS245);b +;硬件實驗二 用 74LS273 擴展 I/O 口 extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);#define CS273 0x8000void main()unsigned char i, b;while(1)b = 1;for (i=0; i<8; i+) OUT(CS273, b);b <<= 1;硬件實驗三 方向燈控制實驗 #def

8、ine CS273 0x8000#define CS245 0xa000#define DelayCounter 4000#define ON 1#define OFF 0 extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v); unsigned char P1Buf;unsigned char Flash; void main()unsigned int FlashCounter;OUT(CS273,0);FlashCounter = DelayCounte

9、r;Flash = 0xff; while (1) OUT(CS273,(IN(CS245) & Flash); FlashCounter-;if (FlashCounter = 0) FlashCounter = DelayCounter;Flash = Flash;硬件實驗四 PWM 轉換電壓實驗/* 輸出 50% (5:5) 占空比 PWM */ /* 輸出 10% (1:9) 占空比 PWM */ /* 輸出 90% (9:1) 占空比 PWM */extern unsigned char IN(unsigned int port); extern void OUT(unsig

10、ned int port, unsigned char v);#define CS273 0x8000void Delay(unsigned char CNT)unsigned char i;while (CNT-) for (i=0; i<50; i+) ;void main()while (1) OUT(CS273,1);Delay(1);OUT(CS273,0);Delay(9);硬件實驗五 8253 計數器實驗#define CONTROL 0x8003#define COUNT0 0x8000#define COUNT1 0x8001#define COUNT2 0x8002e

11、xtern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned int i,j;void main()OUT(CONTROL, 0x30); /* counter0,16bit,mode 3,binary */ OUT(COUNT0, 0); /* low byte of counter */ OUT(COUNT0, 0); /* high byte of counter */ while(1)OUT(CONTROL, 0x0); /* counter1

12、,16bit,mode 3,binary */ i = IN(COUNT0); /* low byte of counter */i += IN(COUNT0)*256; /* high byte of counter */j = i ;硬件實驗六 8259 外部中斷實驗#define CS273 0x8000 /* 273 輸出地址 */ #define ICW1 0x13/* 單片 8259, 上升沿中斷 , 要寫 ICW4 */ #define ICW2 0x20/* 中斷號為 20H */#define ICW4 0x01/*工作在 8086/88 方式 */#define OCW1

13、0xfe/*只響應 INT0 中斷 */#define CS8259A 0xa000#define CS8259B 0xa001extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);extern void DISABLE(void);extern void ENABLE(void);extern void SETINT(unsigned char NO, unsigned int *ENTER); unsigned char CNT;interrupt IEn

14、ter()CNT+;OUT(CS273, CNT);OUT(CS8259A, 0x20); /*中斷服務程序結束指令 */void IInit()OUT(CS8259A, ICW1);OUT(CS8259B, ICW2);OUT(CS8259B, ICW4);OUT(CS8259B, OCW1);void main()DISABLE(); /* 關閉中斷響應 */IInit();SETINT(ICW2, &IEnter); /*中斷入口地址 */CNT = 0;OUT(CS273, CNT);ENABLE(); /*打開中斷響應 */while (1); /*等待中斷,并計數。 */;

15、硬件實驗七 8253 定時器實驗#define CONTROL 0x8003#define COUNT0 0x8000#define COUNT1 0x8001#define COUNT2 0x8002extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);void main()OUT(CONTROL, 0x36); /* 計數器 0,16 位 , 方式 3, 二進制 */OUT(COUNT0, 10000 % 256); /*計數器低字節(jié) */OUT(COU

16、NT0, 10000 / 256); /*計數器高字節(jié) */OUT(CONTROL, 0x76); /* 計數器 1,16 位,方式 3, 二進制 */OUT(COUNT1, 100 ); /*計數器低字節(jié) */OUT(COUNT1, 0); /*計數器高字節(jié) */while (1) ;硬件實驗八 D/A 轉換實驗#define CS0832 0x8000 extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);unsigned char SinTbl9 =

17、0x00,0x18,0x30,0x46,0x59,0x69,0x75,0x7c,0x7f;void Write0832(unsigned char b)OUT(CS0832,b);/* unsigned char i; */void main()register i;產生鋸齒波 */產生正弦波 */n /2)區(qū)間的波形*/n /2n )區(qū)間的波形*/n3 n /2)區(qū)間的波形*/n /22 n )區(qū)間的波形*/while(1)for(i=0; i<16; i+)/*Write0832(i*0x10);for(i=0; i<8; i+)/*Write0832(0x80 + SinTb

18、li); /* (0 for(i=8; i>0; i-)Write0832(0x80 + SinTbli); /* ( for(i=0; i<8; i+)Write0832(0x80 - SinTbli); /* ( for(i=8; i>0; i-)Write0832(0x80 - SinTbli); /* (3;硬件實驗九 A/D 轉換實驗#define CS0809 0x8000 extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);

19、unsigned char Read0809()起動 A/D */ 延時 > 100us */ 讀入結果 */unsigned char i;OUT(CS0809, 0); /* for (i=0; i<0x40; i+) ; /* return(IN(CS0809); /* unsigned char b; void main(void) b = Read0809(); b +;硬件實驗十8255 輸入 /輸出實驗/*方式0, PA PC輸出,PB輸入*/#define mode 0x82#define PortA 0x8000 /* Port A */#define PortB

20、 0x8001 /* Port B */#define PortC 0x8002 /* Port C */#define CAddr 0x8003 /* 控制字地址 */ extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);unsigned char i,buf;void Delay(unsigned int CNT) while (CNT)CNT-;void main()while(1)OUT(CAddr, mode); /*輸出控制字 */*實驗 1:

21、 PortA 輸出 */buf = 0x80;for(i=0; i<8; i+)OUT(PortA, buf); /*輸出到A端口 */buf >>= 1; /*移位 */Delay(0x5000); /*延時 */;/* 實驗 2: PortB 輸入 PortA 輸出 */ buf = IN(PortB); /*讀入 PortB */OUT(PortA, buf); /*輸出到 PortA */Delay(0x8000);#define LEDLen 6#define OUTBIT 0xfe02#define CLK164 0xfe04#define DAT164 0xfe

22、06extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char LEDBufLEDLen; /* 顯示緩沖 */ unsigned char const LEDMAP = /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;void Delay(unsigned char CN

23、T)unsigned char i;while (CNT- !=0)for (i=100; i !=0; i-);void DisplayLED()unsigned char i, j, k;unsigned char Pos;unsigned char LED;Pos = 0x20; /*從左邊開始顯示 */for (i = 0; i < LEDLen; i+) OUT(OUTBIT,0); /* 關所有八段管 */LED = LEDBufi;for (j = 0; j < 8; j+) /*送 164 */if (LED & 0x80) OUT(DAT164, 1);e

24、lse OUT(DAT164, 0);OUT(CLK164, 1);OUT(CLK164, 0);LED <<= 1;OUT(OUTBIT, Pos); /*顯示一位八段管 */Delay(1);Pos >>= 1; /* 顯示下一位 */void main()unsigned char i = 0;unsigned char j;while(1) LEDBuf0 = LEDMAP i & 0x0f;LEDBuf1 = LEDMAP(i+1) & 0x0f;LEDBuf2 = LEDMAP(i+2) & 0x0f;LEDBuf3 = LEDMAP

25、(i+3) & 0x0f;LEDBuf4 = LEDMAP(i+4) & 0x0f;LEDBuf5 = LEDMAP(i+5) & 0x0f;i+;for(j=0; j<20; j+)DisplayLED(); /* 延時 */#define LEDLen 6#define IN_KEY 0xfe00#define OUTBIT 0xfe02#define CLK164 0xfe04#define DAT164 0xfe06extern unsigned char IN(unsigned int port);extern void OUT(unsigned int

26、 port, unsigned char v);unsigned char LEDBufLEDLen; /* 顯示緩沖 */ unsigned char const LEDMAP = /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;unsigned char const KeyTable = /*鍵碼定義 */0x16, 0x15, 0x14, 0xff,0x13, 0x12, 0x11, 0x10,0x0d, 0x0c, 0x

27、0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08,0x00, 0x01, 0x04, 0x07;void Delay(unsigned char CNT)unsigned char i;while (CNT- !=0)for (i=100; i !=0; i-);void DisplayLED()unsigned char i, j, k;unsigned char Pos;unsigned char LED;Pos = 0x20; /*從左邊開始顯示 */for (i = 0; i < LEDLen; i+) OUT(OUTB

28、IT,0); /* 關所有八段管 */LED = LEDBufi;for (j = 0; j < 8; j+) /*送 164 */if (LED & 0x80) OUT(DAT164, 1);else OUT(DAT164, 0);OUT(CLK164, 1);OUT(CLK164, 0);LED <<= 1;OUT(OUTBIT, Pos); /*顯示一位八段管 */Delay(1);Pos >>= 1; /* 顯示下一位 */unsigned char TestKey()OUT(OUTBIT, 0); /*輸出線置為 0 */return (IN(I

29、N_KEY) & 0x0f); /*讀入鍵狀態(tài) ( 高四位不用 ) */unsigned char GetKey()unsigned char Pos;unsigned char i;unsigned char j;unsigned char k;i = 6;Pos = 0x20; /* 找出鍵所在列 */do OUT(OUTBIT, Pos);Pos >>= 1;k = IN(IN_KEY) & 0x0f; while (-i != 0) && (k = 0);/* 鍵值 = 列 X 4 + 行 */if (k != 0) i *= 4;if (k

30、 & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3;OUT(OUTBIT, 0);do Delay(10); while (TestKey(); /*等鍵釋放 */return(KeyTablei); /* 取出鍵碼 */ else return(0xff);void main()LEDBuf0 = 0xff;LEDBuf1 = 0xff;LEDBuf2 = 0xff;LEDBuf3 = 0xff;LEDBuf4 = 0x00;LEDBuf5 = 0x00;while (1) DisplayLED();if (

31、TestKey() LEDBuf5 = LEDMAPGetKey() & 0x0f;#define LEDLen 6#define IN_KEY 0xfe00#define OUTBIT 0xfe02#define CLK164 0xfe04#define DAT164 0xfe06#define CS8251D 0x8000#define CS8251C 0x8001extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);unsigned char

32、LEDBufLEDLen; /* 顯示緩沖 */unsigned char const LEDMAP = /* 八段管顯示碼 */0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;unsigned char const KeyTable = /*鍵碼定義 */0x16, 0x15, 0x14, 0xff,0x13, 0x12, 0x11, 0x10,0x0d, 0x0c, 0x0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x0

33、2, 0x05, 0x08,0x00, 0x01, 0x04, 0x07;void Delay(unsigned char CNT) unsigned char i;while (CNT- !=0)for (i=100; i !=0; i-);void DisplayLED()unsigned char i, j, k; unsigned char Pos; unsigned char LED;Pos = 0x20; /*從左邊開始顯示 */for (i = 0; i < LEDLen; i+) OUT(OUTBIT,0); /* 關所有八段管 */LED = LEDBufi;for (

34、j = 0; j < 8; j+) /*送 164 */if (LED & 0x80) OUT(DAT164, 1); else OUT(DAT164, 0);OUT(CLK164, 1);OUT(CLK164, 0);LED <<= 1;OUT(OUTBIT, Pos); /*顯示一位八段管 */Delay(1);Pos >>= 1; /* 顯示下一位 */unsigned char TestKey()OUT(OUTBIT, 0); /*輸出線置為 0 */return (IN(IN_KEY) & 0x0f); /*讀入鍵狀態(tài) ( 高四位不用 )

35、 */unsigned char GetKey()unsigned char Pos;unsigned char i;unsigned char j;unsigned char k;i = 6;Pos = 0x20; /* 找出鍵所在列 */do OUT(OUTBIT, Pos);Pos >>= 1;k = IN(IN_KEY) & 0x0f; while (-i != 0) && (k = 0);/* 鍵值 = 列 X 4 + 行 */if (k != 0) i *= 4;if (k & 2) i += 1;else if (k & 4)

36、i += 2;else if (k & 8) i += 3;OUT(OUTBIT, 0);do Delay(10); while (TestKey(); /*return(KeyTablei); /* else return(0xff);void IInit()OUT(CS8251C,0x4f); /* 1OUT(CS8251C,0x15); /*void Send(unsigned char TBuf)unsigned ss;OUT(CS8251C,0x15);/*while( !(IN(CS8251C) & 0x1); /*OUT(CS8251D,TBuf);/*unsig

37、ned char Receive()while( !(IN(CS8251C) & 0x2); /* return (IN(CS8251D); /* void main()unsigned char RCVBUF;IInit();LEDBuf0 = 0xff;LEDBuf1 = 0xff;LEDBuf2 = 0xff;LEDBuf3 = 0xff;LEDBuf4 = 0x00;LEDBuf5 = 0x00;等鍵釋放 */取出鍵碼 */停止位,無校驗, 8 數據位 */ 清錯誤標志,允許接收發(fā)送 */清錯誤標志,允許接收發(fā)送 */ 發(fā)送緩沖是否為空 */ 送出數據庫 */是否已收到數據 *

38、/ 讀入數據 */while (1) DisplayLED(); /* if(!(IN(CS8251C) & 0x2) /* if (TestKey()/*Send(GetKey();/* elseRCVBUF = Receive(); /*LEDBuf5 = LEDMAPRCVBUF & 0x0f; /*LEDBuf4 = LEDMAPRCVBUF / 0x10; /* 顯示 */是否收到數據 */如果有鍵按下 */ 則用串口輸出 */已收到數據 */ 顯示低 4 位 */ 顯示高 4 位 */;硬件實驗十五 電子琴#define CONTROL 0x8003#define

39、COUNT0 0x8000#define COUNT1 0x8001#define COUNT2 0x8002#define IN_KEY 0xfe00#define OUTBIT 0xfe02extern unsigned char IN(unsigned int port); extern void OUT(unsigned int port, unsigned char v);unsigned int const ToneTable = 2273, 2024, 1805, 1704, 1517, 1353, 1205, 1136;unsigned char const KeyTable

40、= /* 0x16, 0x15, 0x14, 0xff, 0x13, 0x12, 0x11, 0x10, 0x0d, 0x0c, 0x0b, 0x0a, 0x0e, 0x03, 0x06, 0x09, 0x0f, 0x02, 0x05, 0x08, 0x00, 0x01, 0x04, 0x07;unsigned char TestKey()OUT(OUTBIT, 0);/*return (IN(IN_KEY) & 0x0f); /*unsigned char GetKey()unsigned char Pos; unsigned char i;unsigned char j; unsi

41、gned char k;鍵碼定義 */輸出線置為 0 */讀入鍵狀態(tài) ( 高四位不用 ) */i = 6;Pos = 0x20; /* 找出鍵所在列 */ do OUT(OUTBIT, Pos);Pos >>= 1;k = IN(IN_KEY) & 0x0f; while (-i != 0) && (k = 0);/* 鍵值 = 列 X 4 + 行 */if (k != 0) A if (k & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3;return(KeyTablei)

42、; /* else return(0xff);取出鍵碼 */void Delay(unsigned char CNT) unsigned char i;while (CNT- !=0)for (i=100; i !=0; i-); void OutTone(unsigned int Tone)OUT(CONTROL, 0x36); /* counter0,16bit,mode 3,binary */OUT(COUNT0, Tone % 256); /* low byte of counter */ OUT(COUNT0, Tone / 256); /* high byte of counter

43、 */ void main()unsigned char Key;unsigned int Tone;while (1) while (! TestKey() ; /*等按鍵 */Key = GetKey();if ( (Key >= 1) && (Key <= 8) ) Tone = ToneTableKey-1 ;OutTone(Tone);delay(600);OutTone(2);硬件實驗十六 步進電機控制實驗;硬件實驗十七 空調溫度控制實驗#define LEDLen 6#define ADPort 0x8000 /* AD采樣輸入片選 */#define

44、 CS273 0xa000 /* 控制輸出片選 */#define IN_KEY 0xfe00#define OUTBIT 0xfe02#define CLK164 0xfe04#define DAT164 0xfe06extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char LEDBufLEDLen; /* 顯示緩沖 */unsigned char const LEDMAP = /* 八段管顯示碼 */0x3f, 0x06, 0x5b

45、, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;unsigned char const KeyTable = /*鍵碼定義 */0x16, 0x15, 0x14, 0xff,0x13, 0x12, 0x11, 0x10,0x0d, 0x0c, 0x0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08,0x00, 0x01, 0x04, 0x07;void Delay(unsigned char CNT) unsigned char

46、i;while (CNT- !=0)for (i=80; i !=0; i-);void DisplayLED() unsigned char i, j, k; unsigned char Pos; unsigned char LED;Pos = 0x20; /*從左邊開始顯示 */for (i = 0; i < LEDLen; i+) OUT(OUTBIT,0); /* 關所有八段管 */LED = LEDBufi;for (j = 0; j < 8; j+) /*送 164 */if (LED & 0x80) OUT(DAT164, 1); else OUT(DAT16

47、4, 0);OUT(CLK164, 1);OUT(CLK164, 0);LED <<= 1;OUT(OUTBIT, Pos); /*顯示一位八段管 */Delay(1);Pos >>= 1; /* 顯示下一位 */OUT(OUTBIT,0); /* 關所有八段管 */unsigned char TestKey()OUT(OUTBIT, 0); /*輸出線置為 0 */return (IN(IN_KEY) & 0x0f); /*讀入鍵狀態(tài) ( 高四位不用 ) */unsigned char GetKey()unsigned char Pos;unsigned ch

48、ar i;unsigned char j;unsigned char k;i = 6;Pos = 0x20; /* 找出鍵所在列 */ do OUT(OUTBIT, Pos);Pos >>= 1;k = IN(IN_KEY) & 0x0f; while (-i != 0) && (k = 0);/* 鍵值 = 列 X 4 + 行 */if (k != 0) A if (k & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3;等鍵釋放 */OUT(OUTBIT, 0);do De

49、lay(10); while (TestKey(); /*return(KeyTablei); /* 取出鍵碼 */ else return(0xff);/* =*/ #define UP 0x16#define DOWN 0x15#define ON 1#define OFF 0#define LowLimit 10#define HighLimit 30#define LowTemp (-40) /* A/D 0 */#define HighTemp 50 /* A/D 255*/#define Heat 1#define Cool 2signed char P1Buf;signed ch

50、ar SetTemp, CurTemp;void DisplayResult()signed char T;T = CurTemp;if (T < 0) LEDBuf0 = 0x40;T = - T; else LEDBuf0 = 0;LEDBuf1 = LEDMAPT / 10;LEDBuf2 = LEDMAPT % 10;LEDBuf3 = 0;LEDBuf4 = LEDMAPSetTemp / 10;LEDBuf5 = LEDMAPSetTemp % 10; unsigned char ReadAD()unsigned int i;OUT(ADPort, 0); /* start

51、A/D convert */ for (i=0; i<10; i+) ; /* delay 100us */ return (IN(ADPort);void ReadTemp()unsigned char i;signed int Temp;Temp = 0; for (i=0; i<16; i+) Temp += ReadAD();CurTemp = (Temp/16) * (HighTemp-LowTemp) / 256 + LowTemp; void main() unsigned char Key;P1Buf = 0;SetTemp = 20; while (1) whil

52、e (!TestKey() DisplayResult(); DisplayLED(); ReadTemp();if (CurTemp < (SetTemp - 2) P1Buf |= Heat;P1Buf &= Cool; else if (CurTemp > (SetTemp + 2) P1Buf &= Heat; P1Buf |= Cool; else P1Buf &= Heat;P1Buf &= Cool;OUT(CS273, P1Buf);Key = GetKey();if (Key = DOWN) if (SetTemp > Low

53、Limit) SetTemp-; else if (Key = UP) if (SetTemp < HighLimit) SetTemp+;硬件實驗十八 計算器實驗#define LEDLen 6#define IN_KEY 0xfe00#define OUTBIT 0xfe02#define CLK164 0xfe04#define DAT164 0xfe06extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char LEDBufLEDLen; /* 顯示緩沖 */ unsigned char const LEDMAP = /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論