STC單片機(jī)C語言通用萬能編程_第1頁
STC單片機(jī)C語言通用萬能編程_第2頁
STC單片機(jī)C語言通用萬能編程_第3頁
STC單片機(jī)C語言通用萬能編程_第4頁
STC單片機(jī)C語言通用萬能編程_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余70頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、8051 單片機(jī) C 語言編程模板1. 函數(shù)頭文件 錯誤! 未指定書簽2. 毫秒級CPU延時(shí)函數(shù) 錯誤!未指定書簽3. 定時(shí)/計(jì)數(shù)器初始化函數(shù) 錯誤! 未指定書簽4. 定時(shí)/計(jì)數(shù)器 1中斷處理函數(shù) 錯誤! 未指定書簽5. 定時(shí)/計(jì)數(shù)器 0中斷處理函數(shù) 錯誤! 未指定書簽6. PWM初始化函數(shù) 錯誤!未指定書簽7. PWM0占空比設(shè)置函數(shù) 錯誤!未指定書簽8. UART串口初始化函數(shù) 錯誤!未指定書簽9. UART串口接收中斷處理函數(shù) 錯誤!未指定書簽10. UART串口發(fā)送函數(shù) 錯誤!未指定書簽11. UART串口發(fā)送字符串函數(shù) 錯誤!未指定書簽12. 外部中斷INT初始化函數(shù) 錯誤!未指定書

2、簽13. 外部中斷 INT1 中斷處理程序 錯誤! 未指定書簽14. 外部中斷INTO中斷處理程序 錯誤!未指定書簽15. 普通I/O 口模擬PWMk成程序 錯誤!未指定書簽16. LCD驅(qū)動 錯誤!未指定書簽17. DS18B20溫度傳感器驅(qū)動 錯誤!未指定書簽18. LCM2402( 1602也適用)驅(qū)動程序 錯誤!未指定書簽19. 主函數(shù) 錯誤! 未指定書簽20.8 個(gè)獨(dú)立式鍵盤驅(qū)動程序 錯誤! 未指定書簽21.16 個(gè)陣列式鍵盤驅(qū)動程序 錯誤! 未指定書簽1. 函數(shù)頭文件/*程序名:編寫人:#include/ 文件輸入輸出編寫時(shí)間:硬件支持:接口說明:修改日志:NO.1-20 年月日/

3、*說明:/* #include/通用89C51頭文件(只留下實(shí)際使用的單片機(jī)所對應(yīng)的頭文件)#include/ 設(shè)定插入點(diǎn)#include/字符處理#include/定義錯誤碼#include/浮點(diǎn)數(shù)處理#include / 參數(shù)化輸入輸出#include / 數(shù)據(jù)流輸入輸出#include / 定義各種數(shù)據(jù)類型最值常量#include / 定義本地化函數(shù)#include / 定義數(shù)學(xué)函數(shù)#include / 定義輸入輸出函數(shù)#include/ 定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù)#include/ 字符串處理#include / 基于數(shù)組的輸入輸出#include / 定義關(guān)于時(shí)間的函數(shù)#includ

4、e / 寬字符處理及輸入輸出#include / 寬字符分類#include/51 基本運(yùn)算(包括 _nop_空函數(shù))sfrP1=0x90;SbitAdd_Key=P31;sfr自定義名=SFR地址;/按字節(jié)定義SFR中的存儲器名。例: sbit自定義名=系統(tǒng)位名;/按位定義SFR中的存儲器名。例: bit 自定義名 ; / 定義一個(gè)位(位的值只能是 0或 1)例: bitLED;#define 代替名 原名/ 用代替名代替原名。例: #defineLEDP1/#defineTA0x25 #defineKEYP1/ 鍵盤所連接的 I/O 接口組定義 sbitSPEAKER=P37/;/ 揚(yáng)聲器

5、連接定義sbitDQ=P25; /ds18B20 sbitRS=P10; / 模式位,為 0 輸入指令,為 1 輸入數(shù)據(jù) sbitRW=P11; / 讀寫位,為 0 讀,為 1 寫sbitE=P12; / 使能位#defineLcd_BusP0 / 數(shù)據(jù)總線 unsignedchar 自定義名 ; / 定義一個(gè) 0255 的整數(shù)變量。unsignedint 自定義名 ; / 定義一個(gè) 065535 的整數(shù)變量。data 字節(jié)尋址片內(nèi) RAM片內(nèi)RAMl勺128字節(jié)(例:dataunsignedchara;) bdata 可位尋址片內(nèi) RAM 16 字節(jié),從 0x20 到 0x2F (例:bda

6、taunsignedchara;) idata 所有片內(nèi) RAM 256 字節(jié),從 0x00 到 0xFF (例:idataunsignedchara;) Pdata 片外 RAM 256 字節(jié),從 0x00 到 0xFF (例:PdataUnsignedchara;)Xdata 片外 RAM 64K字節(jié),從 0x00 到 OXFFFF (例:XdataUnsignedchara;) code ROM存儲器,64K字節(jié),從 0x00 到 OXFFFF (例:codeUnSignedchara;)2. 毫秒級 CPU 延時(shí)函數(shù)/*函數(shù)名:毫秒級CPI延時(shí)函數(shù)調(diào)用: DELAY_MS();參數(shù):

7、165535(參數(shù)不可為 0)返回值:無結(jié)果:占用CPL方式延時(shí)與參數(shù)數(shù)值相同的毫秒時(shí)間備注:應(yīng)用于1T單片機(jī)時(shí)i600,應(yīng)用于12T單片機(jī)時(shí)i125 (在此預(yù)為 仃單片機(jī)數(shù)值)/*/ voidDELAY_MS(unsignedinta)unsignedinti;while(-a!=0)for(i=0;i600;i+);*M1 M0 方式 說明OOO 13位T/C,由TL低5位和TH的8位組成13位計(jì)數(shù)器01116位T/C, TL和TH共16位計(jì)數(shù)器10 2 8位T/C, TL用于計(jì)數(shù),當(dāng)TL溢出時(shí)將TH中的值自動寫入TL113 兩組 8 位 T/C3. 定時(shí) /計(jì)數(shù)器初始化函數(shù)/*函數(shù)名:定

8、時(shí) /計(jì)數(shù)器初始化函數(shù)調(diào)用: T_C_init();參數(shù):無 返回值:無 *結(jié)果:設(shè)置SFR中T/C1和(或)T/CO相關(guān)參數(shù)備注:本函數(shù)控制T/C1和T/C0,不需要使用的部分可用/屏蔽/*/ voidT_C_init(void)TMOD=0x11/; 高 4 位控制 T/C1GATE, C/T, M1, M0, GATE, C/T, M1, M0EA=1; / 中斷總開關(guān)TH1=0xFF;/16 位計(jì)數(shù)寄存器 T1 高 8位(寫入初值)TL1=0xFF;/16 位計(jì)數(shù)寄存器 T1 低 8位ET1=1;/T/C1 中斷開關(guān)TR1=1;/T/C1 啟動開關(guān)TH0=0x3C;16 位計(jì)數(shù)寄存器

9、T0高8位TL0=0xB0;16 位計(jì)數(shù)寄存器 T0低8位(0x3CB0=50m延時(shí))/ET0=1;/T/C0 中斷開關(guān)/TR0=1;/T/C0 啟動開關(guān)4. 定時(shí)/計(jì)數(shù)器 1 中斷處理函數(shù) /* 函數(shù)名:定時(shí) / 計(jì)數(shù)器 1 中斷處理函數(shù)調(diào)用: T/C1 溢出后中斷處理 參數(shù):無返回值:無結(jié)果:重新寫入 16 位計(jì)數(shù)寄存器初始值,處理用戶程序 備注:必須允許中斷并啟動 T/C 本函數(shù)方可有效,重新寫入初值需和 T_C_init 函數(shù)一致 /*/ voidT_C1(void)interrupt3using3 / 切換寄存器組到 3TH1=0x3C;/16 位計(jì)數(shù)寄存器 T1 高 8 位(重新寫

10、入初值)TLI=OXB0;/16位計(jì)數(shù)寄存器T1低8位(0x3CB0=50m延時(shí))/ 函數(shù)內(nèi)容/*/5. 定時(shí)/計(jì)數(shù)器 0 中斷處理函數(shù) /* 函數(shù)名:定時(shí) /計(jì)數(shù)器 0 中斷處理函數(shù)調(diào)用: T/C0 溢出后中斷處理 參數(shù):無返回值:無結(jié)果:重新寫入 16 位計(jì)數(shù)寄存器初始值,處理用戶程序備注:必須允許中斷并啟動 T/C 本函數(shù)方可有效,重新寫入初值需和 T_C_init 函數(shù)一致 /*/ voidT_C0(void)interrupt1using1/ 切換寄存器組到 1THo=OX3C/16位計(jì)數(shù)寄存器To高8位(重新寫入初值)TLo=OXB0;/16 位計(jì)數(shù)寄存器 TO 低 8 位(0x3

11、CB0=50m延時(shí))/函數(shù)內(nèi)容/*6. PWM初始化函數(shù)/* 函數(shù)名:PWIJ始化函數(shù)調(diào)用:PWMnit();參數(shù):無返回值:無結(jié)果:將PCAW始化為PW嗾式,初始占空比為O備注:需要更多路PWI出直接插入CCAPnffi CCAPnIf卩可/*VOidPW Mnit(void)CMOD=OX00;設(shè)置PC雄時(shí)器*IlBWOd g =UO 0 WBMd /J000=-d99/ 芒購Md 華芒R*ZB0d MIIMdt7X0=ld99/O WBMd /JOOO=-I3cl99/ 芒購MdMIIMdt7X0=3IId99/O 華聞畀 IAIMdMOOXO=H 歸VOO/ B0d99 Wd/JOO=

12、H,d99/(/ 潮HM 宙剌)芒購Md 華芒R助ROd MM IIMdl7X0= HId99/ O Wfd Z)OXO=-0d99 (Hooo(Ho)芒購Md 華芒R*ZB0d Ml/IMd)Kt7XO=OI/ldV99 SOXO=HOSOXO=IO*7. PWM0 占空比設(shè)置函數(shù)/* 函數(shù)名:PWM占空比設(shè)置函數(shù)調(diào)用: PWM0_set();參數(shù):OxOOOxFF(亦可用 0255)返回值:無結(jié)果:設(shè)置PWM模式占空比,為0時(shí)全部高電平,為1時(shí)全部低電平備注:如果需要PWM的設(shè)置函數(shù),只要把 CCAPO和CCAPO中的0改為1即可 /*/ voidPWM0_set(unsignedchar

13、a)CCAP0L=a/;/ 設(shè)置值直接寫入 CCAP0LCCAP0H=a/; 設(shè)置值直接寫入 CCAP0H8. UART 串口初始化函數(shù)/*函數(shù)名:UART串口初始化函數(shù)調(diào)用: UART_init();參數(shù):無返回值:無結(jié)果:啟動UART串 口接收中斷,允許串口接收,啟動 T/C1產(chǎn)生波特率(占用)備注:振蕩晶體為12MHz PC串口端設(shè)置4800, 8,無,1,無/*/ voidUART_init(void)EA=1;/ 允許總中斷(如不使用中斷,可用 / 屏蔽)ES=I;/允許UART串口的中斷/TMOD=0x20;/ 定時(shí)器 T/C1 工作方式 2SCoN=OX50; Zz串口工作方式1

14、,允許串口接收(SCoN=OX4時(shí)禁止串口接收)/TH1=0xF3; /定時(shí)器初值高 8 位設(shè)置ZZTL1=0XF3; ZZ 定時(shí)器初值低 8 位設(shè)置PCoN=0X80; ZZ 波特率倍頻(屏蔽本句波特率為 2400)ZZTR1=1; ZZ 定時(shí)器啟動Z*Z9. UART 串口接收中斷處理函數(shù)Z*函數(shù)名:UARl串口接收中斷處理函數(shù)調(diào)用:SBUF收到數(shù)據(jù)后中斷處理參數(shù):無返回值:無結(jié)果:UART串 口接收到數(shù)據(jù)時(shí)產(chǎn)生中斷,用戶對數(shù)據(jù)進(jìn)行處理(并發(fā)送回去)備注:過長的處理程序會影響后面數(shù)據(jù)的接收voidUART_R(void)interrupt4using1 / 切換寄存器組到 1 unsign

15、edcharUART_data; / 定義串口接收數(shù)據(jù)變量 (需要對接受到的數(shù)據(jù)進(jìn)行處理時(shí),可將其定義為全局變量 ) RI=0; / 令接收中斷標(biāo)志位為 0(軟件清零)UART_data=SBUF; / 將接收到的數(shù)據(jù)送入變量 UART_dataZz用戶函數(shù)內(nèi)容(用戶可使用UART_data做數(shù)據(jù)處理)/SBUF=UART_data; /將接收的數(shù)據(jù)發(fā)送回去(刪除 /即生效)ZZwhile(TI=0); ZZ 檢查發(fā)送中斷標(biāo)志位ZZTI=0; ZZ 令發(fā)送中斷標(biāo)志位為 0 (軟件清零) Z*Z10. UART 串口發(fā)送函數(shù)Z*函數(shù)名:UART串 口發(fā)送函數(shù)調(diào)用: UART_T();參數(shù):需要U

16、ART串口發(fā)送的數(shù)據(jù)(8位/1字節(jié))返回值:無結(jié)果:將參數(shù)中的數(shù)據(jù)發(fā)送給 UART串 口,確認(rèn)發(fā)送完成后退出備注:/*voidUART_T(unsignedcharUART_data)/ 定義串口發(fā)送數(shù)據(jù)變量SBUF=UART_data; / 將接收的數(shù)據(jù)發(fā)送回去while(TI=0); / 檢查發(fā)送中斷標(biāo)志位TI=0;/ 令發(fā)送中斷標(biāo)志位為 0 (軟件清零)/*11. UART 串口發(fā)送字符串函數(shù) 函數(shù)名:UART串口發(fā)送字符串函數(shù)調(diào)用: UART_TC();參數(shù):需要UART串 口發(fā)送的數(shù)據(jù)(8位/1字節(jié))返回值:無結(jié)果:向串口發(fā)送一個(gè)字符串 ,長度不限。頭文件支持備注:例:UART_TC

17、(d9887321);此函數(shù)需要 #inCIudeVString.h /* voidUART_TC(unSignedChar*Str)whiIe(*Str!=0)UART_T(*Str);*Str+;*Str=0;*中斷入口說明 中斷入口說明 interrupt 外部中斷 0 (RoMK口地址:0x03)interrupt1定時(shí)/計(jì)數(shù)器中斷0 (ROM入 口地址:OxOB)in terrupt2 外部中斷 1 (ROMK 口地址:0x13)in terrupt3 定時(shí)/計(jì)數(shù)器中斷1 (ROM入 口地址:0x1B)interrupt4UART 串口中斷(ROM入口地址:0x23)(更多的中斷依單

18、片機(jī)型號而定,ROM中斷入口均相差8個(gè)字節(jié))using0 使用寄存器組 0using1 使用寄存器組 1using2 使用寄存器組 2using3 使用寄存器組 312. 外部中斷 INT 初始化函數(shù)*函數(shù)名:外部中斷INT初始化函數(shù)調(diào)用:INTJnit();參數(shù):無返回值:無結(jié)果:啟動外部中斷INT1 INT0中斷,設(shè)置中斷方式備注:/*VOidlNTJnit(VOid)EA= 1; /中斷總開關(guān)EX1 = 1/允許外部中斷1中斷EX0=1/允許外部中斷0中斷IT仁餐/門:下沿觸發(fā)0:低電平觸發(fā)T0=1; /1 :下沿觸發(fā)0:低電平觸發(fā)*13. 外部中斷INTI中斷處理程序/*函數(shù)名:外部中

19、斷INTl中斷處理程序調(diào)用:外部引腳INTI中斷處理參數(shù):無返回值:無結(jié)果:用戶處理外部中斷信號備注:/*VOidlNT_1 (VOid)interrupt2using2/ 切換寄存器組到 2/用戶函數(shù)內(nèi)容/*14. 外部中斷INTO中斷處理程序*函數(shù)名:外部中斷 INT0 中斷處理程序調(diào)用: 外部引腳 INT0 中斷處理 參數(shù):無 返回值:無 結(jié)果:用戶處理外部中斷信號 備注: /* voidINT_0(void)interrupt0using2 / 切換寄存器組到 2 / 用戶函數(shù)內(nèi)容/*15. 普通 I/O 口模擬 PWM 生成程序*函數(shù)名:普通I/O 口模擬PW佐成程序 調(diào)用:CliS

20、PlayO備注:/*VOiddiSPlay(UnSignedinta) / 顯示程序(50ms的 PvV噬度) DY-PORT=OXOeyj-ED 小燈亮delay(a);/延時(shí)a的長度DY-PORT=OXff/LED 小燈滅 delay(DY_PWM-a);/ 延時(shí)總 PW脈度減 a/*16丄CD驅(qū)動/*/LCD驅(qū)動(DY12864CB晶顯示屏并口驅(qū)動程序)*voidchk_busy() / 檢查忙位(底層)RS=0;RW=1;E=1;Lcd_Bus=0xff;while(Lcd_Bus&0x80)=0x80);E=0;/*VoidWrite_com(UnSignedcharcmdcode)

21、 / 寫命令至U LCD(底層)chk_buSy();RS=0;RW=0;E=1;Lcd_Bus=cmdcode;E=0; /*VoidWrite_data(unsignedcharDispdata)/ 寫數(shù)據(jù)到 LCD(底層)chk_busy();RS=1;RW=0;E=1;Lcd_Bus=Dispdata;E=0;/*voidlcmnit()/初始化LCD屏 (被調(diào)用層)write_com(0x30); / 選擇 8bit 數(shù)據(jù)流 write_com(0x0c); / 開顯示 ( 無游標(biāo)、不反白 )write_com(0x01); / 清除顯示,并且設(shè)定地址指針為 00H /*/VoidI

22、Cm_w_Word(Unsignedchar*s) Il向LCM發(fā)送一個(gè)字符串,長度64字符之內(nèi)。(被調(diào)用層) whiIe(*s0)II 應(yīng)用: I c m_w_w o rd (您好! );write_data(*s);s+;/*/VoidIcm_w_test(biti,unsignedcharword) II 寫指令或數(shù)據(jù)(被調(diào)用層)if(i=0)write_com(word); / 寫指令或數(shù)據(jù)( 0,指令)elsewrite_data(word); / 寫指令或數(shù)據(jù)( 1,數(shù)據(jù))/*voidlcm_clr(void) / 清屏函數(shù)lcm_w_test(0,0x01);*17.DS18B2

23、0溫度傳感器驅(qū)動 *M/DS18B20溫度傳感器驅(qū)動(顯示 0至60度)*MvoidDelay(intnum) / 延時(shí)函數(shù)while(num-);*MVOidlniLDSl8B20(void) / 初始化 ds1820UnSign edcharx=O;DQ=1/DQ 復(fù)位Delay(8); /稍做延時(shí)DQ=O/單片機(jī)將DO低Delay(80); /精確延時(shí)大于480USf*f*f*DQ=1;/ 拉高總線Delay(14);x=DQ;/ 稍做延時(shí)后如果 x=0 則初始化成功 x=1 則初始化失敗Delay(20);/*unsignedcharReadOneChar(void) / 讀一個(gè)字節(jié)u

24、nsignedchari=0;unsignedchardat=0;for(i=8;i0;i-)DQ=0;/ 給脈沖信號dat=1;DQ=1;/ 給脈沖信號if(DQ)dat=0x80;Delay (4);return(dat);/*,VOidWriteOneChar(UnSignedChardat) / 寫一個(gè)字節(jié)UnSign edchari=O;for(i=8;i0;i-)DQ=O;DQ=dat&OxO1;Delay(5);DQ=1;dat=1;*/*UnSignedintReadTemperature(void) / 讀取溫度UnSign edchara=0;UnSign edcharb=

25、O;UnSignedin tt=O;Aoattt=O;IniLDSl 8B20();WriteOneChar(OxCC); /跳過讀序號列號的操作WriteOneChar(OX44); / 啟動溫度轉(zhuǎn)換IniLDSl 8B20();WriteOneChar(OxCC); /跳過讀序號列號的操作WriteOneChar(OxBE); /讀取溫度寄存器 a=ReadOneChar();/ 讀低 8 位*b=ReadOneChar();/ 讀高 8 位t=b;t=8;t=t|a;tt=t*0.0625;t=tt*10+0.5; / 放大 10 倍輸出并四舍五入return(t);/*/18.LCM2

26、402 ( 1602 也適用)驅(qū)動程序/*/ / 以下是 LCM2402(1602 也適用)驅(qū)動程序/*/* / 引腳定義 / (使用者根據(jù)實(shí)際更改)#defineCMD_clear#defineCMD_back#defineCMD_dec1#defineCMD_add1#defineCMD_diS_gb1#defineCMD_diS_gb2#defineCMD_diS_gb3#defineLCM2402_DB0_DB7 P1/ 定義 LCM242勺數(shù)據(jù)總線SbitLCM2402.RS=P32;/定義LCM2402勺RS控制線SbitLCM2402.RW=P33;/定義LCM2402勺RW空制

27、線SbitLCM2402_E=P34;/定義LCM2402勺E控制線SbitLCM2402_BUSy=P17;/定義LCM2402的測忙線(與LCM2402_DB0_DB關(guān)聯(lián))/*/定義LCM2402指令集/ (詳細(xì)請見技術(shù)手冊)/*0x01/ 清除屏幕0x02DDRAM 回零位0x04讀入后AC (指針)減1 ,向左寫0x06讀入后AC (指針)力口 1,向右寫0x0f/ 開顯示_開光標(biāo) _開光標(biāo)閃爍0x0e/ 開顯示_開光標(biāo) _關(guān)光標(biāo)閃爍0x0c/ 開顯示_關(guān)光標(biāo) _關(guān)光標(biāo)閃爍#defineCMD_OFF_dis 0x08/ 關(guān)顯示_關(guān)光標(biāo)_關(guān)光標(biāo)閃爍#defineCMDset820x38

28、/8位總線_2 行顯示#defineCMDset810x30/8位總線_1 行顯示(上邊行)#defineCMDset420x28/4位總線_2 行顯示#defineCMDset410x20/4位總線_1 行顯示(上邊行)#definelin_10x80/4 位總線_1 行顯示(上邊行)#definelin_20xc0/4 位總線_1 行顯示(上邊行)/*/讀LCM忙程序底層協(xié)議/ (所有底層協(xié)議都無需關(guān)注)ZzLCM2402測忙,若LCM2402處于忙狀態(tài),本函數(shù)將等待至非忙狀態(tài)/*/ voidLCM2402_TestBusy(void)LCM2402_DB0_DB7=0xff;/ 設(shè)備讀狀

29、態(tài)LCM2402_RS=0;LCM2402_RW=1;LCM2402_E=1;While(LCM2402_Busy);/ 等待 LClW忙LCM2402_E=0;/*/寫指令程序/向LCM240官命令本函數(shù)需要1個(gè)指令集的入口參數(shù)/*VOidLCM2402_WriteCMD(Uint8LCM2402_COmmand)LCM2402_TeStBUSy();LCM2402_DBO_DB7=LCM2402_COmmanCI;LCM2402_RS=0;LCM2402_RW=0;LCM2402_E=1;LCM2402_E=0;e*/*,/寫數(shù)據(jù)程序/向LCM240官數(shù)據(jù)/*,VOidLCM2402_Wr

30、iteData(Uint8LCM2402_data)LCM2402_TeStBUSy();LCM2402_DBO_DB7=LCM2402_data;LCM2402_RS=1;LCM2402_RW=0;LCM2402_E=1;LCM2402_E=0;/*,/打印字符串程序/ (本函數(shù)調(diào)用指針函數(shù))*/向LCM發(fā)送一個(gè)字符串,長度48字符之內(nèi)/ 第一行位置 0x000x17 第二行位置 0x400x57 / 應(yīng)用舉例: print(0x80,);/ 在第一行第一位處從左向右打印 字符串 /*/voidprint(uint8a,uint8*str)LCM2402_WriteCMD(a|0x80);w

31、hile(*str!=0)LCM2402_WriteData(*str+);*str=0;/*/ 打印單字符程序 / 第一行位置 0x000x17 第二行位置 0x400x57ZZ向LCM發(fā)送一個(gè)字符,以十六進(jìn)制(OXoo)表示/應(yīng)用舉例: print(0xc0,0x30);/ 在第二行第一位處打印字符“ 0”Z*Z voidprint2(uint8a,uint8t)LCM24o2_WriteCMD(a|oX8o);LCM24o2_WriteData(t);Z*ZZLCM24O2初始化ZZ (使用者可自定義,加*號程序行必須保留但可修改)Z*ZvoidLCM24o2_Init(void)LCM

32、24o2_WriteCMD(CMD_set82); ZZ* 顯示模式設(shè)置:顯示 2行,每個(gè)字符為 5*7 個(gè)像素LCM24o2_WriteCMD(CMD_clear); ZZ 顯示清屏LCM24o2_WriteCMD(CMD_back); ZZ* 數(shù)據(jù)指針指向第 1 行第 1個(gè)字符位置LCM2402_WriteCMD(CMD_add1); / 顯示光標(biāo)移動設(shè)置:文字不動,光標(biāo)右移LCM2402_WriteCMD(CMD_dis_gb3); / 顯示開及光標(biāo)設(shè)置:顯示開,光標(biāo)開,閃爍開 /*/19.主函數(shù)/*函數(shù)名:主函數(shù)調(diào)用:無參數(shù):無返回值:無結(jié)果:程序開始處,無限循環(huán)備注:/*/voidmain(void)*函數(shù)名:揚(yáng)聲器驅(qū)動備注:/*:UnSignedCharMUSIC;UnSign edcharSTHO;UnSign edcharSTLO;UnSignedin tcodetab=64021,64103,64260,64400, / 低音 3 開始64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,6

溫馨提示

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

評論

0/150

提交評論