版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、v1.0可編輯可修改 8051 單片機(jī) C 語(yǔ)言編程模板1. 函數(shù)頭文件 .1秒級(jí) CPU延時(shí)函數(shù) .23. 定時(shí) / 計(jì)數(shù)器初始化函數(shù).4備 注:本函數(shù)控制 T/C1 和 T/C0,不需要使用的部分可用時(shí)/ 計(jì)數(shù)器 1 中斷處理函數(shù) .4void T_C1 (void) interrupt 3using 3時(shí)/ 計(jì)數(shù)器 0 中斷處理函數(shù) .5void T_C0 (void) interrupt 1using 1部中斷 INT 初始化函數(shù) .5EA=1;部中斷 INT1 中斷處理程序 .6void INT_1 (void) interrupt 2using 2部中斷 INT0 中斷處理程序 .
2、6void INT_0 (void) interrupt 0using 2通 I/O 口模擬 PWM生成程序 .7void display (unsigned int a)函數(shù) .764021,64103,64260,64400,8 個(gè)獨(dú)立式鍵盤驅(qū)動(dòng)程序 .8unsigned char Key ( )16個(gè)陣列式鍵盤驅(qū)動(dòng)程序 .91. 函數(shù)頭文件/*程序名:編寫人:編寫時(shí)間:20年月日1v1.0可編輯可修改硬件支持:接口說明:修改日志:/*說明:/*/#include <>秒級(jí) CPU延時(shí)函數(shù)/*函數(shù)名:毫秒級(jí)CPU延時(shí)函數(shù)調(diào)用: DELAY_MS ();參數(shù): 165535(參數(shù)
3、不可為0)返回值:無(wú)結(jié)果:占用 CPU方式延時(shí)與參數(shù)數(shù)值相同的毫秒時(shí)間備注:應(yīng)用于1T 單片機(jī)時(shí)i<600 ,應(yīng)用于12T 單片機(jī)時(shí)i<125 (在此預(yù)為1T 單片機(jī)數(shù)值)/*/2v1.0可編輯可修改void DELAY_MS ( unsigned int a )unsigned int i;while ( -a != 0)for(i = 0; i < 600; i+);/*/-M1M0方式說明00013位 T/C,由 TL 低 5 位和 TH的 8 位組成 13 位計(jì)數(shù)器01116位 T/C, TL 和 TH共 16 位計(jì)數(shù)器1028 位 T/C, TL 用于計(jì)數(shù),當(dāng) TL
4、 溢出時(shí)將 TH 中的值自動(dòng)寫入 TL113兩組 8位 T/C-3v1.0可編輯可修改3. 定時(shí) / 計(jì)數(shù)器初始化函數(shù)/*函數(shù)名:定時(shí) / 計(jì)數(shù)器初始化函數(shù)調(diào)用: T_C_init();參數(shù):無(wú)返回值:無(wú)結(jié)果:設(shè)置 SFR中 T/C1 和(或) T/C0 相關(guān)參數(shù)備注:本函數(shù)控制T/C1 和 T/C0,不需要使用的部分可用時(shí)/ 計(jì)數(shù)器 1 中斷處理函數(shù)/*函數(shù)名:定時(shí) / 計(jì)數(shù)器 1 中斷處理函數(shù)調(diào)用: T/C1 溢出后中斷處理參數(shù):無(wú)返回值:無(wú)結(jié)果:重新寫入16 位計(jì)數(shù)寄存器初始值,處理用戶程序備注:必須允許中斷并啟動(dòng)T/C 本函數(shù)方可有效,重新寫入初值需和T_C_init函數(shù)一致/*/4v
5、1.0可編輯可修改void T_C1 (void) interrupt 3 using 3時(shí)/ 計(jì)數(shù)器 0 中斷處理函數(shù)/*函數(shù)名:定時(shí) / 計(jì)數(shù)器 0 中斷處理函數(shù)調(diào)用: T/C0 溢出后中斷處理參數(shù):無(wú)返回值:無(wú)結(jié)果:重新寫入16 位計(jì)數(shù)寄存器初始值,處理用戶程序備注:必須允許中斷并啟動(dòng)T/C 本函數(shù)方可有效,重新寫入初值需和T_C_init函數(shù)一致/*/void T_C0 (void) interrupt 1 using 1部中斷 INT 初始化函數(shù)/*函數(shù)名:外部中斷INT 初始化函數(shù)調(diào)用: INT_init();參數(shù):無(wú)返回值:無(wú)結(jié)果:?jiǎn)?dòng)外部中斷INT1、 INT0 中斷,設(shè)置中斷
6、方式備注:5v1.0可編輯可修改/*/void INT_init (void)EA = 1;部中斷 INT1 中斷處理程序/*函數(shù)名:外部中斷INT1 中斷處理程序調(diào)用: 外部引腳INT1 中斷處理 參數(shù):無(wú)返回值:無(wú)結(jié)果:用戶處理外部中斷信號(hào)備注:/*/void INT_1 (void) interrupt 2 using 2部中斷 INT0 中斷處理程序/*函數(shù)名:外部中斷INT0 中斷處理程序調(diào)用: 外部引腳INT0 中斷處理 參數(shù):無(wú)6v1.0可編輯可修改返回值:無(wú)結(jié)果:用戶處理外部中斷信號(hào)備注:/*/void INT_0 (void) interrupt 0 using 2通 I/O
7、 口模擬 PWM生成程序/*函數(shù)名:普通I/O 口模擬 PWM生成程序調(diào)用: display ()備注:/*/void display (unsigned int a)函數(shù)/*函數(shù)名:主函數(shù)調(diào)用:無(wú)參數(shù):無(wú)返回值:無(wú)結(jié)果:程序開始處,無(wú)限循環(huán)7v1.0可編輯可修改備注:/*/void main (void)/*函數(shù)名:揚(yáng)聲器驅(qū)動(dòng)備注:/*/unsigned char MUSIC;unsigned char STH0;unsigned char STL0;unsigned int code tab=64021,64103,64260,64400,8個(gè)獨(dú)立式鍵盤驅(qū)動(dòng)程序/*函數(shù)名: 8 個(gè)獨(dú)立式鍵
8、盤驅(qū)動(dòng)程序調(diào)用: = Key ();參數(shù):無(wú)返回值: unsigned char鍵值 088v1.0可編輯可修改結(jié)果:有鍵按下時(shí)返回值為鍵值18,無(wú)鍵按下時(shí)返回值為0備注:在主函數(shù)中不斷調(diào)用/*/unsigned char Key ( )16 個(gè)陣列式鍵盤驅(qū)動(dòng)程序/*函數(shù)名: 16 個(gè)陣列式鍵盤驅(qū)動(dòng)程序調(diào)用: = Key ();參數(shù):無(wú)返回值: unsigned char鍵值 016結(jié)果:有鍵按下時(shí)返回值為鍵值116,無(wú)鍵按下時(shí)返回值為0備注:在主函數(shù)中不斷調(diào)用/*/unsigned char Key (void)/4*4陣列鍵盤處理程序unsigned char a,b,c;KEY = 0x
9、0f;/ 設(shè)定鍵盤初始電平狀態(tài)if (KEY != 0x0f)/ 讀取鍵盤狀態(tài)是否改變9v1.0可編輯可修改Delay (20);/ 延時(shí) 20ms 去抖動(dòng)if (KEY != 0x0f)/ 重新讀取a = KEY;/ 寄存狀態(tài)值到aKEY = 0xf0;/設(shè)定鍵盤反向電平狀態(tài)c = KEY;/ 讀取反向電平狀態(tài)值到ca = a|c;/a與 c 相或switch(a)/ 鍵盤狀態(tài)查表case 0xee: b = 1; break;case 0xed: b = 2; break;case 0xeb: b = 3; break;case 0xe7: b = 4; break;case 0xde:
10、b = 5; break;case 0xdd: b = 6; break;case 0xdb: b = 7; break;case 0xd7: b = 8; break;10v1.0可編輯可修改case 0xbe: b = 9; break;case 0xbd: b = 10; break;case 0xbb: b = 11; break;case 0xb7: b = 12; break;case 0x7e: b = 13; break;case 0x7d: b = 14; break;case 0x7b: b = 15; break;case 0x77: b = 16; break;default:b = 0 ; break;return (b);/ 將 b 中的鍵值代號(hào)送入函數(shù)返回值/*/T_C_init();UART_init();INT_init();11v1.0可編
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 訂餐采購(gòu)合同范例
- 公寓車位出售合同范例
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 陽(yáng)澄湖大閘蟹銷售合同范例
- 二年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)
- 窗簾股東合作合同范例
- 酒店上游合同范例
- 家具寄存?zhèn)}庫(kù)出租合同范例
- 2024至2030年亮膚按摩素項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年P(guān)S禮品盒項(xiàng)目投資價(jià)值分析報(bào)告
- 無(wú)人機(jī)培訓(xùn)教材
- 穿脫隔離衣及注意事項(xiàng)培訓(xùn)課件穿脫隔離衣的注意事項(xiàng)有哪些
- 機(jī)械加工工藝過程卡片+工序卡
- 家長(zhǎng)會(huì)課件:小學(xué)二年級(jí)家長(zhǎng)會(huì)課件主題
- 子癇應(yīng)急預(yù)案
- 土石方工程挖掘機(jī)人員車輛信息登記表
- 崗位價(jià)值評(píng)估表
- 漢語(yǔ)教程(講課)-第二冊(cè)第01課
- 尋貓啟事標(biāo)準(zhǔn)范文
- 高中音樂-《錦雞出山》教學(xué)課件設(shè)計(jì)
- DB51T3062-2023四川省高標(biāo)準(zhǔn)農(nóng)田建設(shè)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論