1.有三根桿子A,B,C。A桿上有若干碟子 2.每次移動一塊碟子,小的只能疊在大的上面 3.把所有碟子從A桿全部移到C桿上 經(jīng)過研究發(fā)現(xiàn),漢諾塔的破解很簡單,就是按照移動規(guī)則向一個方向移動金片: 如3階漢諾塔的移動:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,漢諾塔問題也是程序設(shè)計中的經(jīng)典遞歸問題
標簽: 移動 發(fā)現(xiàn)
上傳時間: 2016-07-25
上傳用戶:gxrui1991
給定兩個集合A、B,集合內(nèi)的任一元素x滿足1 ≤ x ≤ 109,并且每個集合的元素個數(shù)不大于105。我們希望求出A、B之間的關(guān)系。 任 務 :給定兩個集合的描述,判斷它們滿足下列關(guān)系的哪一種: A是B的一個真子集,輸出“A is a proper subset of B” B是A的一個真子集,輸出“B is a proper subset of A” A和B是同一個集合,輸出“A equals B” A和B的交集為空,輸出“A and B are disjoint” 上述情況都不是,輸出“I m confused!”
標簽:
上傳時間: 2017-03-15
上傳用戶:yulg
/* * _168ZHONGDUAN2.c * * Created: 2014/11/2 15:12:45 * Author: lenovo */ #include <avr/io.h> #include <avr/iom168pa.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> //#include <util/delay_basic.h> //unsigned char const SEGtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; #define BIT(x) (1<<(x)) #include<avr/signal.h> #include<avr/pgmspace.h> #include<util/delay.h> #include<avr/eeprom.h> #define setb(val,bitn) (val|=(1<<(bitn)))//設(shè)置某IO口某位為1 #define clr(val,bitn) (val&=~(1<<(bitn)))//設(shè)置某IO口某位為0 #define get(val,bitn) (val&(1<<(bitn)))//讀取某位狀態(tài) //uchar ACT[8] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; #define CPL_BIT(x,y) (x^=(1<<y)) #define CLR_BIT(x,y) (x&=~(1<<y)) #define SET_1(a,b) a|=(1<<b) #define CLE_0(a,b) a&=~(1<<b) /*------宏定義------*/ #include <avr/wdt.h> #include <avr/sleep.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <avr/eeprom.h> #define setb(val,bitn) (val|=(1<<(bitn)))//設(shè)置某IO口某位為1 #define clr(val,bitn) (val&=~(1<<(bitn)))//設(shè)置某IO口某位為0 #define get(val,bitn) (val&(1<<(bitn)))//讀取某位狀態(tài) #define uint8 unsigned char #define uint16 unsigned int #define P_LCDCS1 setb(PORTB,5) #define P_LCDCS0 clr(PORTB,5) #define P_LCDRST1 setb(PORTB,1) #define P_LCDRST0 clr(PORTB,1) #define P_LCDRS1 setb(PORTB,2) #define P_LCDRS0 clr(PORTB,2) #define P_LCDDAT1 setb(PORTB,4) #define P_LCDDAT0 clr(PORTB,4) #define P_LCDCLK1 setb(PORTB,3) #define P_LCDCLK0 clr(PORTB,3) //#define LCD_ //-----頁地址定義----- #define Page1 0 #define Page2 1 #define Page3 2 #define Page4 3 #define Page5 4 #define Page6 5 #define Page7 6 #define Page8 7 //-----列地址定義-----每8列地址增1 #define List8_1 0 #define List8_2 7 #define List8_3 15 #define List8_4 23 #define List8_5 31 #define List8_6 39 #define List8_7 47 #define List8_8 55 #define List8_9 63 #define List8_10 71 #define List8_11 79 #define List8_12 87 #define List8_13 95 #define List8_14 103 #define List8_15 111 #define List8_16 119 //#define List8_17 127 //-----列地址定義-----每16列地址增1 #define List16_1 0 #define List16_2 15 #define List16_3 31 #define List16_4 47 #define List16_5 63 #define List16_6 79 #define List16_7 95 #define List16_8 111 //---------------------------------- #define STR_CHARG "Charge" //提示充電 #define STR_PRCE "%" //電量百分比 #define STR_ERR "Err" //出錯顯示 #define STR_OFF "OFF" //關(guān)機顯示 //待機顯示 #define STR_WAIT1 "Portable UPS" #define STR_WAIT2 "110V/60HZ" #define STR_WAIT3 "Select:DC OR AC" #define STR_WAIT4 "BATTERY:" //開機顯示 #define STR_OUTSTATUS "Out Status:" #define STR_DCOUT12V "DC12V" #define STR_DCOUT5V "DC5V" #define STR_ACOUT "AC110V" //#define STR_MAOHAO ":" //====================================== extern uint8 LOCKA[2][16] ; //extern uint8 code BATS[10][16] ; extern uint8 BAT2S[12][32] ; extern uint8 NC[] ; extern uint8 mao_hao[] ; extern uint8 num1[] ; extern uint8 num2[] ; extern uint8 num3[] ; extern uint8 num4[] ; extern uint8 num5[] ; extern uint8 num6[] ; extern uint8 num7[] ; extern uint8 num8[] ; extern uint8 num9[] ; extern uint8 Tab_Ascii_8x16[95][16] ; extern uint8 Tab_Ascii_5x7[95][5] ; extern uint8 zhuang1[] ; extern uint8 tai1[] ; extern uint8 shi1[] ; extern uint8 yong1[] ; //---------------------------------- //extern void LcdWriteCommand(uint8 data1) ; extern void Display_Graphic_32x32(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_32x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_16x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_8x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_String_8x16(uint8 page,uint8 column,uint8 *text) ; extern void Display_Num_8x16(uint8 page,uint8 column,uint8 Num) ; extern void Display_Digital_8x16(uint8 page,uint8 column,uint8 *a) ; extern void Display_Nop_8x16(uint8 page,uint8 column,uint8 DatLong) ; extern void Display_String_5x7(uint8 page,uint8 column,uint8 *text) ; extern void Full_Display(void) ; extern void Clear_Screen(void) ; extern void Init_lcd12864(void) ; //#endif //========c12864.c============================================== /*************************************************** LCD:晶聯(lián)訊電子 JLX12864G-086-PN(不帶字庫IC-UC1701X) 僅支持串行驅(qū)動方式 ***************************************************/ //#include "global.h" //#include "c12864.h" #define Tab_Ascii_8x16_CALL1 //粗體字形 #define Tab_Ascii_8x16_CALL2 //細體字形 #define Tab_Ascii_5x7_CALL #define Display_Graphic_32x32_CALL #define Display_Graphic_32x16_CALL #define Display_Graphic_16x16_CALL #define Display_Graphic_8x16_CALL #define Display_String_8x16_CALL //顯示字符串 #define Display_Num_8x16_CALL //顯示單個數(shù)據(jù)0-9 #define Display_Digital_8x16_CALL //顯示數(shù)據(jù)0-9999 #define Display_Nop_8x16_CALL //填充8*16的空字符N個 #define Display_String_5x7_CALL #define Full_Display_CALL //============================================================================== uint8 aa[]={0,1,2,3,4,5,6,7,8,9}; uint8 LOCKA[2][16]={ //-- 童鎖符號 -- //-- 此字體下對應的點陣為:寬x高=16x16 -- //0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xd8, 0xcc, 0xc4, 0xc4, 0xcc, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, //0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xb0, 0x98, 0x8c, 0x8c, 0x8c, 0x8c, 0x98, 0xb0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, } ; const PROGMEM uint8_t BATS[10][16]={ //-- 電池符號 -- //-- 此字體下對應的點陣為:寬x高=16x16 -- 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc8, 0xc8, 0xcc, 0xce, 0xce, 0xcc, 0xc8, 0xc8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xfe, 0xfc, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, }; const PROGMEM uint8_t BAT2S1[12][32]={ /*-- 電池符號 --*/ /*-- 此字體下對應的點陣為:寬x高=32x16 --*/ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x3f, 0x07, 0x03}, } ; const PROGMEM uint8_t BAT2S2[2][32]={ //-- 電池符號 不顯示 -- //-- 此字體下對應的點陣為:寬x高=32x16 -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } ; uint8 NC[]={ /*-- 文字: 空符號 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, } ; uint8 mao_hao[]={ /*-- 文字: : (冒號) --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00}; uint8 num0[]={ /*-- 文字: 0 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00 }; uint8 num1[]={ /*-- 文字: 1 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00 }; uint8 num2[]={ /*-- 文字: 2 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00 //細體 //0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00, // 粗體 }; uint8 num3[]={ /*-- 文字: 3 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00 }; uint8 num4[]={ /*-- 文字: 4 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00 }; uint8 num5[]={ /*-- 文字: 5 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00 }; uint8 num6[]={ /*-- 文字: 6 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00 }; uint8 num7[]={ /*-- 文字: 7 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00 }; uint8 num8[]={ /*-- 文字: 8 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00 }; uint8 num9[]={ /*-- 文字: 9 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00 }; //=======8x16======================================================================= #ifdef Display_String_8x16_CALL //Tab_Ascii_8x16_CALL const PROGMEM uint8_t Tab_Ascii_8x161[95][16]={ //粗體字形 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - - 0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00, // -!- 0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -"- 0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00, // -#- 0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,0x03,0x06,0x04,0x1C,0x1C,0x07,0x03,0x00, // -$- 0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00, // -%- 0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -&- 0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -'- 0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00, // -(- 0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00, // -)- 0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00, // -*- 0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00, // -+- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00, // -,- 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // --- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00, // -.- 0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00, // -/- 0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00, // -0- 0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00, // -1- 0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00, // -2- 0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00, // -3- 0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00, // -4- 0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00, // -5- 0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -6- 0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00, // -7- 0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -8- 0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00, // -9- 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00, // -:- 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00, // -;- 0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00, // -<- 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00, // -=- 0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00, // ->- 0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00, // -?- 0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00, // -@- 0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -A- 0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00, // -B- 0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00, // -C- 0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00, // -D- 0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00, // -E- 0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -F- 0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00, // -G- 0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -H- 0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -I- 0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00, // -J- 0x04,0xFC,0xFC,0xC0,0xF0,0x3C,0x0C,0x00,0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00, // -K- 0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00, // -L- 0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -M- 0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -N- 0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00, // -O- 0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -P- 0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00, // -Q- 0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -R- 0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00, // -S- 0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -T- 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -U- 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00, // -V- 0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00,0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00, // -W- 0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00,0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00, // -X- 0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -Y- 0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00, // -Z- 0x00,0x00,0xFC,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x0F,0x0F,0x08,0x08,0x00,0x00, // -[- 0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x00, // -\- 0x00,0x00,0x04,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x00,0x00, // -]- 0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -^- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, // -_- 0x00,0x00,0x03,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -`- 0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -a- 0x04,0xFC,0xFC,0x20,0x60,0xC0,0x80,0x00,0x08,0x0F,0x07,0x08,0x08,0x0F,0x07,0x00, // -b- 0xC0,0xE0,0x20,0x20,0x20,0x60,0x40,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00, // -c- 0x80,0xC0,0x60,0x24,0xFC,0xFC,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -d- 0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00, // -e- 0x40,0xF8,0xFC,0x44,0x0C,0x18,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -f- 0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x27,0x6F,0x48,0x48,0x7F,0x3F,0x00,0x00, // -g- 0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -h- 0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -i- 0x00,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x30,0x70,0x40,0x40,0x7F,0x3F,0x00, // -j- 0x04,0xFC,0xFC,0x80,0xC0,0x60,0x20,0x00,0x08,0x0F,0x0F,0x01,0x03,0x0E,0x0C,0x00, // -k- 0x00,0x00,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -l- 0xE0,0xE0,0x60,0xC0,0x60,0xE0,0xC0,0x00,0x0F,0x0F,0x00,0x0F,0x00,0x0F,0x0F,0x00, // -m- 0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -n- 0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -o- 0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x40,0x7F,0x7F,0x48,0x08,0x0F,0x07,0x00, // -p- 0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x07,0x0F,0x08,0x48,0x7F,0x7F,0x40,0x00, // -q- 0x20,0xE0,0xC0,0x60,0x20,0x60,0xC0,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -r- 0x40,0xE0,0xA0,0x20,0x20,0x60,0x40,0x00,0x04,0x0C,0x09,0x09,0x0B,0x0E,0x04,0x00, // -s- 0x20,0x20,0xF8,0xFC,0x20,0x20,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x0C,0x04,0x00, // -t- 0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -u- 0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x03,0x07,0x0C,0x0C,0x07,0x03,0x00, // -v- 0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x07,0x0F,0x0C,0x07,0x0C,0x0F,0x07,0x00, // -w- 0x20,0x60,0xC0,0x80,0xC0,0x60,0x20,0x00,0x08,0x0C,0x07,0x03,0x07,0x0C,0x08,0x00, // -x- 0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00, // -y- 0x60,0x60,0x20,0xA0,0xE0,0x60,0x20,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x0C,0x0C,0x00, // -z- 0x00,0x40,0x40,0xF8,0xBC,0x04,0x04,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x08,0x00, // -{- 0x00,0x00,0x00,0xBC,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00, // -|- 0x00,0x04,0x04,0xBC,0xF8,0x40,0x40,0x00,0x00,0x08,0x08,0x0F,0x07,0x00,0x00,0x00, // -}- 0x08,0x0C,0x04,0x0C,0x08,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -~- } ; #endif //Tab_Ascii_8x16_CALL1 //=======8x16======================================================================= //#ifdef Tab_Ascii_8x16_CALL2 // #ifdef Display_Num_8x16_CALL const PROGMEM uint8_t Tab_Ascii_8x162[95][16]={ //細體字形 /*-- 文字: --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: ! --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00, /*-- 文字: " --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: # --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00, /*-- 文字: $ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00, /*-- 文字: % --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00, /*-- 文字: & --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10, /*-- 文字: ' --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: ( --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00, /*-- 文字: ) --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00, /*-- 文字: * --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00, /*-- 文字: + --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00, /*-- 文字: , --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00, /*-- 文字: - --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, /*-- 文字: . --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, /*-- 文字: / --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00, /*-- 文字: 0 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: 1 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: 2 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, /*-- 文字: 3 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 4 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, /*-- 文字: 5 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 6 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 7 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, /*-- 文字: 8 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: 9 --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, /*-- 文字: : --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, /*-- 文字: ; --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00, /*-- 文字: < --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00, /*-- 文字: = --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00, /*-- 文字: > --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00, /*-- 文字: ? --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00, /*-- 文字: @ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00, /*-- 文字: A --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, /*-- 文字: B --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: C --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00, /*-- 文字: D --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: E --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00, /*-- 文字: F --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, /*-- 文字: G --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00, /*-- 文字: H --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20, /*-- 文字: I --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: J --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00, /*-- 文字: K --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00, /*-- 文字: L --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00, /*-- 文字: M --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00, /*-- 文字: N --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00, /*-- 文字: O --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: P --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00, /*-- 文字: Q --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00, /*-- 文字: R --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20, /*-- 文字: S --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: T --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, /*-- 文字: U --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, /*-- 文字: V --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00, /*-- 文字: W --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00, /*-- 文字: X --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20, /*-- 文字: Y --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, /*-- 文字: Z --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00, /*-- 文字: [ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00, /*-- 文字: \ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00, /*-- 文字: ] --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00, /*-- 文字: ^ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: _ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, /*-- 文字: ` --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: a --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20, /*-- 文字: b --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: c --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00, /*-- 文字: d --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20, /*-- 文字: e --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00, /*-- 文字: f --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: g --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00, /*-- 文字: h --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, /*-- 文字: i --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: j --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00, /*-- 文字: k --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00, /*-- 文字: l --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: m --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F, /*-- 文字: n --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, /*-- 文字: o --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, /*-- 文字: p --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: q --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80, /*-- 文字: r --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00, /*-- 文字: s --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00, /*-- 文字: t --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00, /*-- 文字: u --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20, /*-- 文字: v --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00, /*-- 文字: w --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00, /*-- 文字: x --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00, /*-- 文字: y --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00, /*-- 文字: z --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00, /*-- 文字: { --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40, /*-- 文字: | --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, /*-- 文字: } --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00, /*-- 文字: ~ --*/ /*-- Comic Sans MS12; 此字體下對應的點陣為:寬x高=8x16 --*/ 0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; ///#endif //#endif //Tab_Ascii_8x16_CALL1 //=======5x7======================================================================= //#ifdef Tab_Ascii_5x7_CALL const PROGMEM uint8_t Tab_Ascii_5x71[95][5]={ /*全體ASCII 列表:5x7點陣*/ 0x00,0x00,0x00,0x00,0x00,//space 0x00,0x00,0x4f,0x00,0x00,//! 0x00,0x07,0x00,0x07,0x00,//" 0x14,0x7f,0x14,0x7f,0x14,//# 0x24,0x2a,0x7f,0x2a,0x12,//$ 0x23,0x13,0x08,0x64,0x62,//% 0x36,0x49,0x55,0x22,0x50,//& 0x00,0x05,0x07,0x00,0x00,//] 0x00,0x1c,0x22,0x41,0x00,//( 0x00,0x41,0x22,0x1c,0x00,//) 0x14,0x08,0x3e,0x08,0x14,//* 0x08,0x08,0x3e,0x08,0x08,//+ 0x00,0x50,0x30,0x00,0x00,//, 0x08,0x08,0x08,0x08,0x08,//- 0x00,0x60,0x60,0x00,0x00,//. 0x20,0x10,0x08,0x04,0x02,/// 0x3e,0x51,0x49,0x45,0x3e,//0 0x00,0x42,0x7f,0x40,0x00,//1 0x42,0x61,0x51,0x49,0x46,//2 0x21,0x41,0x45,0x4b,0x31,//3 0x18,0x14,0x12,0x7f,0x10,//4 0x27,0x45,0x45,0x45,0x39,//5 0x3c,0x4a,0x49,0x49,0x30,//6 0x01,0x71,0x09,0x05,0x03,//7 0x36,0x49,0x49,0x49,0x36,//8 0x06,0x49,0x49,0x29,0x1e,//9 0x00,0x36,0x36,0x00,0x00,//: 0x00,0x56,0x36,0x00,0x00,//; 0x08,0x14,0x22,0x41,0x00,//< 0x14,0x14,0x14,0x14,0x14,//= 0x00,0x41,0x22,0x14,0x08,//> 0x02,0x01,0x51,0x09,0x06,//? 0x32,0x49,0x79,0x41,0x3e,//@ 0x7e,0x11,0x11,0x11,0x7e,//A 0x7f,0x49,0x49,0x49,0x36,//B 0x3e,0x41,0x41,0x41,0x22,//C 0x7f,0x41,0x41,0x22,0x1c,//D 0x7f,0x49,0x49,0x49,0x41,//E 0x7f,0x09,0x09,0x09,0x01,//F 0x3e,0x41,0x49,0x49,0x7a,//G 0x7f,0x08,0x08,0x08,0x7f,//H 0x00,0x41,0x7f,0x41,0x00,//I 0x20,0x40,0x41,0x3f,0x01,//J 0x7f,0x08,0x14,0x22,0x41,//K 0x7f,0x40,0x40,0x40,0x40,//L 0x7f,0x02,0x0c,0x02,0x7f,//M 0x7f,0x04,0x08,0x10,0x7f,//N 0x3e,0x41,0x41,0x41,0x3e,//O 0x7f,0x09,0x09,0x09,0x06,//P 0x3e,0x41,0x51,0x21,0x5e,//Q 0x7f,0x09,0x19,0x29,0x46,//R 0x46,0x49,0x49,0x49,0x31,//S 0x01,0x01,0x7f,0x01,0x01,//T 0x3f,0x40,0x40,0x40,0x3f,//U 0x1f,0x20,0x40,0x20,0x1f,//V 0x3f,0x40,0x38,0x40,0x3f,//W 0x63,0x14,0x08,0x14,0x63,//X 0x07,0x08,0x70,0x08,0x07,//Y 0x61,0x51,0x49,0x45,0x43,//Z 0x00,0x7f,0x41,0x41,0x00,//[ 0x02,0x04,0x08,0x10,0x20,//\ 0x00,0x41,0x41,0x7f,0x00,//] 0x04,0x02,0x01,0x02,0x04,//^ 0x40,0x40,0x40,0x40,0x40,//_ 0x01,0x02,0x04,0x00,0x00,//` 0x20,0x54,0x54,0x54,0x78,//a 0x7f,0x48,0x48,0x48,0x30,//b 0x38,0x44,0x44,0x44,0x44,//c 0x30,0x48,0x48,0x48,0x7f,//d 0x38,0x54,0x54,0x54,0x58,//e 0x00,0x08,0x7e,0x09,0x02,//f 0x48,0x54,0x54,0x54,0x3c,//g 0x7f,0x08,0x08,0x08,0x70,//h 0x00,0x00,0x7a,0x00,0x00,//i 0x20,0x40,0x40,0x3d,0x00,//j 0x7f,0x20,0x28,0x44,0x00,//k 0x00,0x41,0x7f,0x40,0x00,//l 0x7c,0x04,0x38,0x04,0x7c,//m 0x7c,0x08,0x04,0x04,0x78,//n 0x38,0x44,0x44,0x44,0x38,//o 0x7c,0x14,0x14,0x14,0x08,//p 0x08,0x14,0x14,0x14,0x7c,//q 0x7c,0x08,0x04,0x04,0x08,//r 0x48,0x54,0x54,0x54,0x24,//s 0x04,0x04,0x3f,0x44,0x24,//t 0x3c,0x40,0x40,0x40,0x3c,//u 0x1c,0x20,0x40,0x20,0x1c,//v 0x3c,0x40,0x30,0x40,0x3c,//w 0x44,0x28,0x10,0x28,0x44,//x 0x04,0x48,0x30,0x08,0x04,//y 0x44,0x64,0x54,0x4c,0x44,//z 0x08,0x36,0x41,0x41,0x00,//{ 0x00,0x00,0x77,0x00,0x00,//| 0x00,0x41,0x41,0x36,0x08,//} 0x04,0x02,0x02,0x02,0x01,//~ }; //#endif //Tab_Ascii_5x7_CALL uint8 zhuang1[]={ /*-- 文字: 狀 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/ 0x08,0x30,0x00,0xFF,0x20,0x20,0x20,0x20,0xFF,0x20,0xE1,0x26,0x2C,0x20,0x20,0x00, 0x04,0x02,0x01,0xFF,0x40,0x20,0x18,0x07,0x00,0x00,0x03,0x0C,0x30,0x60,0x20,0x00 }; uint8 tai1[]={ /*-- 文字: 態(tài) --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/ 0x00,0x04,0x04,0x04,0x84,0x44,0x34,0x4F,0x94,0x24,0x44,0x84,0x84,0x04,0x00,0x00, 0x00,0x60,0x39,0x01,0x00,0x3C,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00 }; uint8 shi1[]={ /*-- 文字: 使 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/ 0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00, 0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00 }; uint8 yong1[]={ /*-- 文字: 用 --*/ /*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/ 0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00, 0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00 }; //x=9 y=16 點陣 0-9 const PROGMEM uint8_t lcd_numbers_lit[]={ 0x00,0xE0,0xE0,0x60,0x20,0x60,0xE0,0xE0,0x00,//0 0x00,0x7F,0x7F,0x60,0x40,0x60,0x7F,0x7F,0x00, 0x00,0x00,0x40,0x40,0xE0,0xE0,0x00,0x00,0x00,//1 0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0xC0,0x00,//2 0x00,0x71,0x79,0x78,0x5E,0x47,0x43,0x41,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0xC0,0x00,//3 0x00,0x78,0x78,0x42,0x47,0x7F,0x7D,0x39,0x00, 0x00,0x00,0x00,0x80,0xE0,0xE0,0xE0,0x00,0x00,//4 0x00,0x0E,0x0F,0x0B,0x7F,0x7F,0x7F,0x08,0x00, 0x00,0xE0,0xE0,0xE0,0x20,0x20,0x20,0x20,0x00,//5 0x00,0x73,0x73,0x43,0x41,0x7F,0x7F,0x3E,0x00, 0x00,0xE0,0xE0,0x60,0x20,0x60,0x60,0x60,0x00,//6 0x00,0x7F,0x7F,0x43,0x43,0x7F,0x7E,0x3C,0x00, 0x00,0x20,0x20,0x20,0xA0,0xE0,0xE0,0x60,0x00,//7 0x00,0x00,0x40,0x78,0x7F,0x0F,0x01,0x00,0x00, 0x00,0xE0,0xE0,0x20,0x20,0x20,0xE0,0xE0,0x00,//8 0x00,0x7D,0x7D,0x47,0x42,0x47,0x7D,0x7D,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0x80,0x00,//9 0x00,0x67,0x6F,0x4C,0x6C,0x7F,0x3F,0x0F,0x00 }; //x=12 y=16 點陣 0-9數(shù)字 const PROGMEM uint8_t lcd_numbers[]={ 0x00,0xF0,0xFC,0xFC,0x0E,0x02,0x02,0x0E,0xFC,0xFC,0xF0,0x00,//0 0x00,0x07,0x3F,0x3F,0x70,0x40,0x40,0x70,0x3F,0x3F,0x07,0x00, 0x00,0x00,0x00,0x08,0x08,0xFC,0xFE,0xFE,0x00,0x00,0x00,0x00,//1 0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00, 0x00,0x38,0x3C,0x3E,0x06,0x02,0x86,0xFE,0xFC,0x78,0x00,0x00,//2 0x00,0x60,0x78,0x7C,0x5E,0x4F,0x43,0x41,0x40,0x40,0x00,0x00, 0x00,0x18,0x1C,0x1E,0x86,0x82,0xC6,0xFE,0x7C,0x38,0x00,0x00,//3 0x00,0x1C,0x3C,0x7C,0x60,0x40,0x61,0x7F,0x3F,0x1E,0x00,0x00, 0x00,0x00,0x80,0xC0,0xF0,0x3C,0xFE,0xFE,0xFE,0x00,0x00,0x00,//4 0x00,0x06,0x07,0x05,0x04,0x04,0x7F,0x7F,0x7F,0x04,0x04,0x00, 0x00,0x00,0xFE,0xFE,0xFE,0x62,0x62,0xE2,0xE2,0x82,0x00,0x00,//5 0x00,0x18,0x38,0x78,0x60,0x40,0x60,0x7F,0x3F,0x1F,0x00,0x00, 0x00,0xF0,0xFC,0xFC,0xCE,0x42,0xC6,0xCE,0x8E,0x0C,0x00,0x00,//6 0x00,0x0F,0x3F,0x7F,0x60,0x40,0x60,0x7F,0x3F,0x1F,0x00,0x00, 0x00,0x02,0x02,0x02,0x02,0x82,0xF2,0xFE,0x7E,0x0E,0x00,0x00,//7 0x00,0x00,0x00,0x60,0x7C,0x7F,0x1F,0x03,0x00,0x00,0x00,0x00, 0x00,0x38,0x7C,0x7E,0xC6,0x82,0x82,0xC6,0x7E,0x7C,0x38,0x00,//8 0x00,0x1E,0x3F,0x7F,0x61,0x40,0x40,0x61,0x7F,0x3F,0x1E,0x00, 0x00,0xF8,0xFC,0xFE,0x06,0x02,0x06,0xFE,0xFC,0xF0,0x00,0x00,//9 0x00,0x30,0x71,0x73,0x63,0x42,0x73,0x3F,0x1F,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//. 0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,//- 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00 }; const PROGMEM uint8_t Tab_Ascii_5x72[95][5]={ /*全體ASCII 列表:5x7點陣*/ 0x00,0x00,0x00,0x00,0x00,//space 0x00,0x00,0x4f,0x00,0x00,//! 0x00,0x07,0x00,0x07,0x00,//" 0x14,0x7f,0x14,0x7f,0x14,//# 0x24,0x2a,0x7f,0x2a,0x12,//$ 0x23,0x13,0x08,0x64,0x62,//% 0x36,0x49,0x55,0x22,0x50,//& 0x00,0x05,0x07,0x00,0x00,//] 0x00,0x1c,0x22,0x41,0x00,//( 0x00,0x41,0x22,0x1c,0x00,//) 0x14,0x08,0x3e,0x08,0x14,//* 0x08,0x08,0x3e,0x08,0x08,//+ 0x00,0x50,0x30,0x00,0x00,//, 0x08,0x08,0x08,0x08,0x08,//- 0x00,0x60,0x60,0x00,0x00,//. 0x20,0x10,0x08,0x04,0x02,/// 0x3e,0x51,0x49,0x45,0x3e,//0 0x00,0x42,0x7f,0x40,0x00,//1 0x42,0x61,0x51,0x49,0x46,//2 0x21,0x41,0x45,0x4b,0x31,//3 0x18,0x14,0x12,0x7f,0x10,//4 0x27,0x45,0x45,0x45,0x39,//5 0x3c,0x4a,0x49,0x49,0x30,//6 0x01,0x71,0x09,0x05,0x03,//7 0x36,0x49,0x49,0x49,0x36,//8 0x06,0x49,0x49,0x29,0x1e,//9 0x00,0x36,0x36,0x00,0x00,//: 0x00,0x56,0x36,0x00,0x00,//; 0x08,0x14,0x22,0x41,0x00,//< 0x14,0x14,0x14,0x14,0x14,//= 0x00,0x41,0x22,0x14,0x08,//> 0x02,0x01,0x51,0x09,0x06,//? 0x32,0x49,0x79,0x41,0x3e,//@ 0x7e,0x11,0x11,0x11,0x7e,//A 0x7f,0x49,0x49,0x49,0x36,//B 0x3e,0x41,0x41,0x41,0x22,//C 0x7f,0x41,0x41,0x22,0x1c,//D 0x7f,0x49,0x49,0x49,0x41,//E 0x7f,0x09,0x09,0x09,0x01,//F 0x3e,0x41,0x49,0x49,0x7a,//G 0x7f,0x08,0x08,0x08,0x7f,//H 0x00,0x41,0x7f,0x41,0x00,//I 0x20,0x40,0x41,0x3f,0x01,//J 0x7f,0x08,0x14,0x22,0x41,//K 0x7f,0x40,0x40,0x40,0x40,//L 0x7f,0x02,0x0c,0x02,0x7f,//M 0x7f,0x04,0x08,0x10,0x7f,//N 0x3e,0x41,0x41,0x41,0x3e,//O 0x7f,0x09,0x09,0x09,0x06,//P 0x3e,0x41,0x51,0x21,0x5e,//Q 0x7f,0x09,0x19,0x29,0x46,//R 0x46,0x49,0x49,0x49,0x31,//S 0x01,0x01,0x7f,0x01,0x01,//T 0x3f,0x40,0x40,0x40,0x3f,//U 0x1f,0x20,0x40,0x20,0x1f,//V 0x3f,0x40,0x38,0x40,0x3f,//W 0x63,0x14,0x08,0x14,0x63,//X 0x07,0x08,0x70,0x08,0x07,//Y 0x61,0x51,0x49,0x45,0x43,//Z 0x00,0x7f,0x41,0x41,0x00,//[ 0x02,0x04,0x08,0x10,0x20,// 0x00,0x41,0x41,0x7f,0x00,//] 0x04,0x02,0x01,0x02,0x04,//^ 0x40,0x40,0x40,0x40,0x40,//_ 0x01,0x02,0x04,0x00,0x00,//` 0x20,0x54,0x54,0x54,0x78,//a 0x7f,0x48,0x48,0x48,0x30,//b 0x38,0x44,0x44,0x44,0x44,//c 0x30,0x48,0x48,0x48,0x7f,//d 0x38,0x54,0x54,0x54,0x58,//e 0x00,0x08,0x7e,0x09,0x02,//f 0x48,0x54,0x54,0x54,0x3c,//g 0x7f,0x08,0x08,0x08,0x70,//h 0x00,0x00,0x7a,0x00,0x00,//i 0x20,0x40,0x40,0x3d,0x00,//j 0x7f,0x20,0x28,0x44,0x00,//k 0x00,0x41,0x7f,0x40,0x00,//l 0x7c,0x04,0x38,0x04,0x7c,//m 0x7c,0x08,0x04,0x04,0x78,//n 0x38,0x44,0x44,0x44,0x38,//o 0x7c,0x14,0x14,0x14,0x08,//p 0x08,0x14,0x14,0x14,0x7c,//q 0x7c,0x08,0x04,0x04,0x08,//r 0x48,0x54,0x54,0x54,0x24,//s 0x04,0x04,0x3f,0x44,0x24,//t 0x3c,0x40,0x40,0x40,0x3c,//u 0x1c,0x20,0x40,0x20,0x1c,//v 0x3c,0x40,0x30,0x40,0x3c,//w 0x44,0x28,0x10,0x28,0x44,//x 0x04,0x48,0x30,0x08,0x04,//y 0x44,0x64,0x54,0x4c,0x44,//z 0x08,0x36,0x41,0x41,0x00,//{ 0x00,0x00,0x77,0x00,0x00,//| 0x00,0x41,0x41,0x36,0x08,//} 0x04,0x02,0x02,0x02,0x01,//~ }; /////////////// #define Start_T1 TCCR1B|=_BV(CS11);TCNT1=0//復位預計分頻器并開啟定時器T1 #define Stop_T1 TCCR1B&=~_BV(CS11) //關(guān)閉定時器T1 //數(shù)碼管的段碼編碼 unsigned char table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; volatile unsigned char i,j,k; volatile unsigned char IRcode; //定義一個長度為4字節(jié)的無符號long類型變量來存儲代碼 volatile unsigned char IR_OK=0; //IR信號接收有效 當程序響應接收以后請馬上清零 這樣才會繼續(xù)接收下一IR碼 volatile unsigned char IR_con=0; //IR信號當前接收位 0時表示第0位即同步碼(4.5ms高電平) volatile unsigned int Pulse_length=0; //捕獲的脈沖寬度 volatile unsigned char ICP_Parity=0; //捕獲中斷奇偶次計數(shù) 1時為偶次 并在此時判斷脈寬 volatile unsigned char address; volatile unsigned char code_data; volatile unsigned char code_data1; unsigned char clrbit; #define FREQ 8 //定義單片機工作頻率為 4M /////////////// //**************************************************************** // 函數(shù)名稱:DelayLcd // 函數(shù)功能:延時 // 入口參數(shù): // 出口參數(shù): //***************************************************************** void DelayLcd(uint16 i) { uint16 j; for(j=200;j>0;j--) for(;i>0;i--); //while(i--); } //**************************************************************** // 函數(shù)名稱:LcdWriteCommand // 函數(shù)功能:寫指令到LCD模塊 // 入口參數(shù):數(shù)據(jù) // 出口參數(shù): //***************************************************************** void LcdWriteCommand(uint8 data1) // { uint8 i ; P_LCDCS0 ; P_LCDRS0 ; for(i=8;i>0;i--) { P_LCDCLK0; if(data1&0x80) P_LCDDAT1; else P_LCDDAT0; P_LCDCLK1; data1 <<= 1; } } //**************************************************************** // 函數(shù)名稱:LcdWritedata // 函數(shù)功能:寫數(shù)據(jù)到LCD模塊 // 入口參數(shù):數(shù)據(jù) // 出口參數(shù): //***************************************************************** void LcdWritedata(uint8 data1) // { uint8 i; P_LCDCS0 ; P_LCDRS1 ; for(i=8;i>0;i--) { P_LCDCLK0; if(data1&0x80) P_LCDDAT1; else P_LCDDAT0; P_LCDCLK1; data1 <<= 1; } } //**************************************************************** // 函數(shù)名稱:Lcd_SetAddr // 函數(shù)功能:設(shè)置LCD顯示地址 // 入口參數(shù): 頁地址 列地址 // 出口參數(shù): //***************************************************************** void Lcd_SetAddr(uint8 page,uint8 column) { //LcdWriteCommand(0xb0 | (y+yy)); //LcdWriteCommand(0x10 | (x>>4)); //LcdWriteCommand(0x00 | (x&0x0f)); //P_LCDCS0 ; LcdWriteCommand(0xb0|page); /*設(shè)置頁地址*/ LcdWriteCommand((column>>4)|0x10); /*設(shè)置列地址的高4位*/ LcdWriteCommand(column&0x0f); /*設(shè)置列地址的低4位*/ } ////// void Display_Graphic_32x2(uint8 page,uint8 column,PROGMEM uint8_t *dp) // 電池顯示 0、2、4、6、8、10 { uint8 i,j; uint8 page_address; uint8 column_address_L,column_address_H; page_address = 0xb0|page; column_address_L =(column&0x0f); column_address_H =(column>>4)|0x10; P_LCDCS0 ; for(j=0;j<2;j++) { LcdWriteCommand(page_address+j); /*設(shè)置頁地址*/ LcdWriteCommand(column_address_H); /*設(shè)置列地址的高4位*/ LcdWriteCommand(column_address_L); /*設(shè)置列地址的低4位*/ for (i=32;i>0;i--) //寫32行 { LcdWritedata(pgm_read_byte(dp++)); /*寫數(shù)據(jù)到LCD,每寫完一個8位的數(shù)據(jù)后列地址自動加1*/ } LcdWritedata(0x00); } P_LCDCS1 ; } //#ifdef Display_Graphic_32x32_CALL void Display_Graphic_32x32(uint8 page,uint8 column,PROGMEM uint8_t *dp) { uint8 i,j; uint8 page_address; uint8 column_address_L,column_address_H; page_address = 0xb0|page; column_address_L =(column&0x0f); column_address_H =(column>>4)|0x10; P_LCDCS0 ; &
標簽: 程序
上傳時間: 2016-03-03
上傳用戶:彥 yan
MSP430系列超低功耗16位單片機原理與應用TI公司的MSP430系列微控制器是一個近期推出的單片機品種。它在超低功耗和功能集成上都有一定的特色,尤其適合應用在自動信號采集系統(tǒng)、液晶顯示智能化儀器、電池供電便攜式裝置、超長時間連續(xù)工作設(shè)備等領(lǐng)域。《MSP430系列超低功耗16位單片機原理與應用》對這一系列產(chǎn)品的原理、結(jié)構(gòu)及內(nèi)部各功能模塊作了詳細的說明,并以方便工程師及程序員使用的方式提供軟件和硬件資料。由于MSP430系列的各個不同型號基本上是這些功能模塊的不同組合,因此,掌握《MSP430系列超低功耗16位單片機原理與應用》的內(nèi)容對于MSP430系列的原理理解和應用開發(fā)都有較大的幫助。《MSP430系列超低功耗16位單片機原理與應用》的內(nèi)容主要根據(jù)TI公司的《MSP430 Family Architecture Guide and Module Library》一書及其他相關(guān)技術(shù)資料編寫。 《MSP430系列超低功耗16位單片機原理與應用》供高等院校自動化、計算機、電子等專業(yè)的教學參考及工程技術(shù)人員的實用參考,亦可做為應用技術(shù)的培訓教材。MSP430系列超低功耗16位單片機原理與應用 目錄 第1章 MSP430系列1.1 特性與功能1.2 系統(tǒng)關(guān)鍵特性1.3 MSP430系列的各種型號??第2章 結(jié)構(gòu)概述2.1 CPU2.2 代碼存儲器?2.3 數(shù)據(jù)存儲器2.4 運行控制?2.5 外圍模塊2.6 振蕩器、倍頻器和時鐘發(fā)生器??第3章 系統(tǒng)復位、中斷和工作模式?3.1 系統(tǒng)復位和初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 中斷處理3.3.1 SFR中的中斷控制位3.3.2 外部中斷3.4 工作模式3.5 低功耗模式3.5.1 低功耗模式0和模式13.5.2 低功耗模式2和模式33.5.3 低功耗模式43.6 低功耗應用要點??第4章 存儲器組織4.1 存儲器中的數(shù)據(jù)4.2 片內(nèi)ROM組織4.2.1 ROM表的處理4.2.2 計算分支跳轉(zhuǎn)和子程序調(diào)用4.3 RAM與外圍模塊組織4.3.1 RAM4.3.2 外圍模塊--地址定位4.3.3 外圍模塊--SFR??第5章 16位CPU?5.1 CPU寄存器5.1.1 程序計數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG2?5.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令集概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令5.4 指令分布??第6章 硬件乘法器?6.1 硬件乘法器的操作6.2 硬件乘法器的寄存器6.3 硬件乘法器的SFR位6.4 硬件乘法器的軟件限制6.4.1 硬件乘法器的軟件限制--尋址模式6.4.2 硬件乘法器的軟件限制--中斷程序??第7章 振蕩器與系統(tǒng)時鐘發(fā)生器?7.1 晶體振蕩器7.2 處理機時鐘發(fā)生器7.3 系統(tǒng)時鐘工作模式7.4 系統(tǒng)時鐘控制寄存器7.4.1 模塊寄存器7.4.2 與系統(tǒng)時鐘發(fā)生器相關(guān)的SFR位7.5 DCO典型特性??第8章 數(shù)字I/O配置?8.1 通用端口P08.1.1 P0的控制寄存器8.1.2 P0的原理圖8.1.3 P0的中斷控制功能8.2 通用端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理圖8.2.3 P1、P2的中斷控制功能8.3 通用端口P3、P48.3.1 P3、P4的控制寄存器8.3.2 P3、P4的原理圖8.4 LCD端口8.5 LCD端口--定時器/端口比較器??第9章 通用定時器/端口模塊?9.1 定時器/端口模塊操作9.1.1 定時器/端口計數(shù)器TPCNT1--8位操作9.1.2 定時器/端口計數(shù)器TPCNT2--8位操作9.1.3 定時器/端口計數(shù)器--16位操作9.2 定時器/端口寄存器9.3 定時器/端口SFR位9.4 定時器/端口在A/D中的應用9.4.1 R/D轉(zhuǎn)換原理9.4.2 分辨率高于8位的轉(zhuǎn)換??第10章 定時器?10.1 Basic Timer110.1.1 Basic Timer1寄存器10.1.2 SFR位10.1.3 Basic Timer1的操作10.1.4 Basic Timer1的操作--LCD時鐘信號fLCD?10.2 8位間隔定時器/計數(shù)器10.2.1 8位定時器/計數(shù)器的操作10.2.2 8位定時器/計數(shù)器的寄存器10.2.3 與8位定時器/計數(shù)器有關(guān)的SFR位10.2.4 8位定時器/計數(shù)器在UART中的應用10.3 看門狗定時器11.1.3 比較模式11.1.4 輸出單元11.2 TimerA的寄存器11.2.1 TimerA控制寄存器TACTL11.2.2 捕獲/比較控制寄存器CCTL11.2.3 TimerA中斷向量寄存器11.3 TimerA的應用11.3.1 TimerA增計數(shù)模式應用11.3.2 TimerA連續(xù)模式應用11.3.3 TimerA增/減計數(shù)模式應用11.3.4 TimerA軟件捕獲應用11.3.5 TimerA處理異步串行通信協(xié)議11.4 TimerA的特殊情況11.4.1 CCR0用做周期寄存器11.4.2 定時器寄存器的啟/停11.4.3 輸出單元Unit0??第12章 USART外圍接口--UART模式?12.1 異步操作12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多處理機模式12.1.5 地址位格式12.2 中斷與控制功能12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制與狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)制控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式--低功耗模式應用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART模式的波特率12.4.3 節(jié)約MSP430資源的多處理機模式12.5 波特率的計算??第13章 USART外圍接口--SPI模式?13.1 USART的同步操作13.1.1 SPI模式中的主模式--MM=1、SYNC=113.1.2 SPI模式中的從模式--MM=0、SYNC=113.2 中斷與控制功能13.2.1 USART接收允許13.2.2 USART發(fā)送允許13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF??第14章 液晶顯示驅(qū)動?14.1 LCD驅(qū)動基本原理14.2 LCD控制器/驅(qū)動器14.2.1 LCD控制器/驅(qū)動器功能14.2.2 LCD控制與模式寄存器14.2.3 LCD顯示內(nèi)存14.2.4 LCD操作軟件例程14.3 LCD端口功能14.4 LCD與端口模式混合應用實例??第15章 A/D轉(zhuǎn)換器?15.1 概述15.2 A/D轉(zhuǎn)換操作15.2.1 A/D轉(zhuǎn)換15.2.2 A/D中斷15.2.3 A/D量程15.2.4 A/D電流源15.2.5 A/D輸入端與多路切換15.2.6 A/D接地與降噪15.2.7 A/D輸入與輸出引腳15.3 A/D控制寄存器??第16章 其他模塊16.1 晶體振蕩器16.2 上電電路16.3 晶振緩沖輸出??附錄A 外圍模塊地址分配?附錄B 指令集描述?B1 指令匯總B2 指令格式B3 不增加ROM開銷的指令模擬B4 指令說明B5 用幾條指令模擬的宏指令??附錄C EPROM編程?C1 EPROM操作C2 快速編程算法C3 通過串行數(shù)據(jù)鏈路應用\"JTAG\"特性的EPROM模塊編程C4 通過微控制器軟件實現(xiàn)對EPROM模塊編程??附錄D MSP430系列單片機參數(shù)表?附錄E MSP430系列單片機產(chǎn)品編碼?附錄F MSP430系列單片機封裝形式?
上傳時間: 2014-05-07
上傳用戶:lwq11
MSP430系列flash型超低功耗16位單片機MSP430系列單片機在超低功耗和功能集成等方面有明顯的特點。該系列單片機自問世以來,頗受用戶關(guān)注。在2000年該系列單片機又出現(xiàn)了幾個FLASH型的成員,它們除了仍然具備適合應用在自動信號采集系統(tǒng)、電池供電便攜式裝置、超長時間連續(xù)工作的設(shè)備等領(lǐng)域的特點外,更具有開發(fā)方便、可以現(xiàn)場編程等優(yōu)點。這些技術(shù)特點正是應用工程師特別感興趣的。《MSP430系列FLASH型超低功耗16位單片機》對該系列單片機的FLASH型成員的原理、結(jié)構(gòu)、內(nèi)部各功能模塊及開發(fā)方法與工具作詳細介紹。MSP430系列FLASH型超低功耗16位單片機 目錄 第1章 引 論1.1 MSP430系列單片機1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結(jié)構(gòu)概述2.1 引 言2.2 CPU2.3 程序存儲器2.4 數(shù)據(jù)存儲器2.5 運行控制2.6 外圍模塊2.7 振蕩器與時鐘發(fā)生器第3章 系統(tǒng)復位、中斷及工作模式3.1 系統(tǒng)復位和初始化3.1.1 引 言3.1.2 系統(tǒng)復位后的設(shè)備初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 MSP430 中斷優(yōu)先級3.3.1 中斷操作--復位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應用的要點23第4章 存儲空間4.1 引 言4.2 存儲器中的數(shù)據(jù)4.3 片內(nèi)ROM組織4.3.1 ROM 表的處理4.3.2 計算分支跳轉(zhuǎn)和子程序調(diào)用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲器4.5.1 FLASH存儲器的組織4.5.2 FALSH存儲器的數(shù)據(jù)結(jié)構(gòu)4.5.3 FLASH存儲器的控制寄存器4.5.4 FLASH存儲器的安全鍵值與中斷4.5.5 經(jīng)JTAG接口訪問FLASH存儲器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令組概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎(chǔ)時鐘模塊7.1 基礎(chǔ)時鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調(diào)整器7.4 時鐘與運行模式7.4.1 由PUC啟動7.4.2 基礎(chǔ)時鐘調(diào)整7.4.3 用于低功耗的基礎(chǔ)時鐘特性7.4.4 選擇晶振產(chǎn)生MCLK7.4.5 時鐘信號的同步7.5 基礎(chǔ)時鐘模塊控制寄存器7.5.1 DCO時鐘頻率控制7.5.2 振蕩器與時鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時器WDT9.1 看門狗定時器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時器模式控制10.2.2 時鐘源選擇和分頻10.2.3 定時器啟動10.3 定時器模式10.3.1 停止模式10.3.2 增計數(shù)模式10.3.3 連續(xù)模式10.3.4 增/減計數(shù)模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應用 第11章 16位定時器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時器長度11.2.2 定時器模式控制11.2.3 時鐘源選擇和分頻11.2.4 定時器啟動11.3 定時器模式11.3.1 停止模式11.3.2 增計數(shù)模式11.3.3 連續(xù)模式11.3.4 增/減計數(shù)模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多機模式12.1.5 地址位多機通信格式12.2 中斷和中斷允許12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制和狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)整控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式,低功耗模式應用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART的波特率12.4.3 多處理機模式對節(jié)約MSP430資源的支持12.5 波特率計算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發(fā)送允許位及接收操作13.2.2 USART接收/發(fā)送允許位及發(fā)送操作13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF第14章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關(guān)14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發(fā)生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應用14.4.1 模擬信號在數(shù)字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個獨立電阻元件的測量系統(tǒng)14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補償14.4.8 增加比較器A的回差第15章 模數(shù)轉(zhuǎn)換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內(nèi)核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號15.3.3 熱敏二極管的使用15.4 轉(zhuǎn)換存儲15.5 轉(zhuǎn)換模式15.5.1 單通道單次轉(zhuǎn)換模式15.5.2 序列通道單次轉(zhuǎn)換模式15.5.3 單通道重復轉(zhuǎn)換模式15.5.4 序列通道重復轉(zhuǎn)換模式15.5.5 轉(zhuǎn)換模式之間的切換15.5.6 低功耗15.6 轉(zhuǎn)換時鐘與轉(zhuǎn)換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉(zhuǎn)換存儲寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發(fā)16.1 開發(fā)系統(tǒng)概述16.1.1 開發(fā)技術(shù)16.1.2 MSP430系列的開發(fā)16.1.3 MSP430F系列的開發(fā)16.2 FLASH型的FET開發(fā)方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標準復位過程和進入BSL過程16.3.2 BSL的UART協(xié)議16.3.3 數(shù)據(jù)格式16.3.4 退出BSL16.3.5 保護口令16.3.6 BSL的內(nèi)部設(shè)置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機參數(shù)表附錄D MSP430系列單片機封裝形式附錄E MSP430系列器件命名
上傳時間: 2014-04-28
上傳用戶:sssnaxie
4bit ALU(運算邏輯單元)的設(shè)計 給出了此次設(shè)計alu的輸入輸出結(jié)構(gòu)及相應的位數(shù)。其中C0是一位的進位輸入,A和B分別是4位的數(shù)據(jù)輸入,S0、S1、M分別為一位的功能選擇輸入信號;Cout是一位的進位輸出,F(xiàn)是4為的運算結(jié)果輸出。
上傳時間: 2013-12-09
上傳用戶:sevenbestfei
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門狗?????? /**********全局常量************/ //寫卡的命令 #define write_command0 0//寫密碼 #define write_command1 1//寫配置字 #define write_command2 2//密碼寫數(shù)據(jù) #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時間參數(shù)us #define ts_min 250//270*11.0592/12=249//取近似的整數(shù) #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調(diào)整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢的方法讀卡時關(guān)所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測試綠燈 sbit led_light1 = P1^5;//測試紅燈 sbit led_light_ok = P1^1;//讀卡成功標志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲卡上用戶數(shù)據(jù)(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數(shù)組ram uchar command; //第一個命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時值,因用同一個定時器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時值,因用同一個定時器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數(shù)原型*****************/ //讀寫操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據(jù)命令寫不同的內(nèi)容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數(shù) void write_password(uchar data *data p);//寫初始密碼或數(shù)據(jù) void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫位 /*子函數(shù)區(qū)*****************************************************/ void delay_2(uint x) //延時,時間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發(fā),波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位) TCON = 0x40; //設(shè)定時器1 允許開始計時(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動定時器 WDT_CONTR = 0x3c;//使能看門狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關(guān),防止影響跳變的定時器計時 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁 write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認時間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個穩(wěn)定的低電平?超時判斷? while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時器晚啟動10個周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數(shù)據(jù) for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個位 { //等待下降沿的到來 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫數(shù)據(jù)位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數(shù):初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫數(shù)據(jù) { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_password(p);//發(fā)口令 write_bit(0);//寫鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫數(shù)據(jù) } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時數(shù)據(jù)不停的循環(huán)傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫新配置參數(shù):pwd=0 //密碼無效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數(shù)***********************************/ void write_bit(bit x)//寫一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫0 } } /*******************寫一個block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數(shù)據(jù) { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標簽: 12345
上傳時間: 2017-10-20
上傳用戶:my_lcs
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少? //這是一個菲波拉契數(shù)列問題 public class lianxi01 { public static void main(String[] args) { System.out.println("第1個月的兔子對數(shù): 1"); System.out.println("第2個月的兔子對數(shù): 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"個月的兔子對數(shù): "+f2); } } } 【程序2】 題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。 程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 則表明此數(shù)不是素數(shù),反之是素數(shù)。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素數(shù)個數(shù)是: " + count); } } 【程序3】 題目:打印出所有的 "水仙花數(shù) ",所謂 "水仙花數(shù) "是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個 "水仙花數(shù) ",因為153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3;
上傳時間: 2017-12-24
上傳用戶:Ariza
|- 數(shù)據(jù)科學速查表 - 0 B|- 遷移學習實戰(zhàn) - 0 B|- 零起點Python機器學習快速入門 - 0 B|- 《深度學習入門:基于Python的理論與實現(xiàn)》高清中文版PDF+源代碼 - 0 B|- 《Python生物信息學數(shù)據(jù)管理》中文版PDF+英文版PDF+源代碼 - 0 B|- 《Python深度學習》2018中文版pdf+英文版pdf+源代碼 - 0 B|- 《Python編程:從入門到實踐》中文版+源代碼 - 0 B|- stanford machine learning - 0 B|- Python語言程序設(shè)計2018版電子教案 - 0 B|- Python網(wǎng)絡(luò)編程第三版 (原版+中文版+源代碼) - 0 B|- Python機器學習實踐指南(中文版帶書簽)、原書代碼、數(shù)據(jù)集 - 0 B|- python官方文檔 - 0 B|- Python編程(第4版 套裝上下冊) - 0 B|- PyQt5快速開發(fā)與實戰(zhàn)(pdf+源碼) - 0 B|- linux - 0 B|- 征服PYTHON-語言基礎(chǔ)與典型應用.pdf - 67.40 MB|- 與孩子一起學編程_中文版_詳細書簽.pdf - 69.10 MB|- 用Python做科學計算.pdf - 6.10 MB|- 用Python寫網(wǎng)絡(luò)爬蟲.pdf - 9.90 MB|- 用Python進行自然語言處理(中文翻譯NLTK).pdf - 4.40 MB|- 像計算機科學家那樣思考 Python中文版第二版.pdf - 712.00 kB|- 網(wǎng)絡(luò)爬蟲-Python和數(shù)據(jù)分析.pdf - 6.90 MB|- 圖解機器學習.pdf - 59.40 MB|- 凸優(yōu)化.pdf - 5.70 MB|- 數(shù)據(jù)挖掘?qū)д?pdf - 2.50 MB|- 數(shù)據(jù)科學入門.pdf - 13.30 MB|- 數(shù)據(jù)結(jié)構(gòu)與算法__Python語言描述_裘宗燕編著_北京:機械工業(yè)出版社_,_2016.01_P346.pdf - 74.30 MB|- 神經(jīng)網(wǎng)絡(luò)與深度學習.pdf - 92.60 MB|- 深入Python3...
標簽: python
上傳時間: 2022-06-06
上傳用戶:
由于移動環(huán)境的復雜性,無線信號在發(fā)送傳輸和接收過程中有很明顯的衰落現(xiàn)象,特別是在高頻無線通信中,多徑衰落或頻率選擇性衰落對無線信號的干擾最為嚴重。通過分集接收技術(shù),Rake接收機在CDMA移動通信系統(tǒng)中抗多徑衰落效果尤為明顯。作為一種新穎的多址接入方式,多載波CDMA充分利用了OFDM最優(yōu)頻率利用率以及CDMA的多址和頻率分集,且系統(tǒng)容量和抗符號間干擾性能明顯優(yōu)于傳統(tǒng)的單載波CDMA。這些特性使得多載波CDMA成為未來的寬帶無線通信系統(tǒng)最有希望的候選。 @@ 本文研究了一種多載波擴頻通信系統(tǒng),介紹了其Rake接收機工作原理和設(shè)計思想,進行了理論仿真并用FPGA予以實現(xiàn)。 @@ 本文首先介紹了移動通信系統(tǒng)的發(fā)展歷史以及OFDM和CDMA技術(shù)原理,并描述了OFDM和CDMA結(jié)合的三種系統(tǒng)(MC-DS-CDMA、MT-CDMA、MC-CDMA)的原理和系統(tǒng)模型;接著,介紹了目前影響移動通信的主要衰落以及Rake接收機基本原理及其作用。多徑信號的每路信號都可能含有可以利用的信息,Rake接收機就是通過多個相關(guān)接收器接收多徑信號中各路信號,通過信道估計和信道補償消去信道因子的附加相位,并把他們合并在一起,以此來改善信號的信噪比和系統(tǒng)的可靠性;在此基礎(chǔ)上,論文提出了一種多載波擴頻通信系統(tǒng)的實現(xiàn)方案,并詳細介紹了其Rake接收機實現(xiàn)原理,給出了最大比合并時各種分徑數(shù)目下系統(tǒng)誤碼率的仿真圖;最后介紹了此方案中Rake接收機的FPGA硬件實現(xiàn)設(shè)計方案及其系統(tǒng) 測試結(jié)果。@@ 仿真結(jié)果顯示出隨著分集徑數(shù)的增加,系統(tǒng)的誤碼率顯著降低。表明Rake接收機抗多徑衰落效果顯著,且在多載波CDMA系統(tǒng)中其分集效果更好,實現(xiàn)相對簡單。最終Rake接收機的FPGA實現(xiàn)結(jié)果同理論仿真一致,時序通過,資源耗費不大,具有較大的實用價值。 @@關(guān)鍵詞:多載波擴頻通信,CDMA,Rake接收機,F(xiàn)PGA
上傳時間: 2013-07-25
上傳用戶:axxsa
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1