單片機(jī)c語(yǔ)言程序_第1頁(yè)
單片機(jī)c語(yǔ)言程序_第2頁(yè)
單片機(jī)c語(yǔ)言程序_第3頁(yè)
單片機(jī)c語(yǔ)言程序_第4頁(yè)
單片機(jī)c語(yǔ)言程序_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一講如何開關(guān)控制發(fā)光管閃爍(無(wú)開關(guān))如何開關(guān)控制發(fā)光管閃爍(有開關(guān))第二講模擬交通燈驅(qū)動(dòng)數(shù)碼管按鍵控制 LED移位說明: 按下 K1 時(shí),P0口 LED左移一位。   按下 K2 時(shí),P0 口 LED右移一位。    按下 K3 時(shí),P2 口 LED右移一位。      按下 K4 時(shí),P2 口 LED左移一位。數(shù)碼管滾動(dòng)顯示單個(gè)數(shù)字說明:數(shù)碼管從左到右依次滾動(dòng)顯示1-6播放生日快樂歌說明:程序運(yùn)行時(shí)播放生日快樂歌,未使用定時(shí)器中斷,所有頻率完全用延時(shí)實(shí)現(xiàn)。第三講1、 片內(nèi)RAM:00H0FFH2、80H0FFH:128b

2、ytes直接尋址:SFR,共22個(gè)寄存器,其中21個(gè)可字節(jié)尋址,PC不可尋址,11個(gè)可位尋址。3、 簡(jiǎn)介尋址:User RAM總結(jié):在51C語(yǔ)言中,DATA:直接尋址的00H0FFH。IDATA:間接尋址的00H0FFH。lDATA的00H-7FH區(qū)間與IDATA 的00H-7FH區(qū)間是重疊的,即該區(qū)域既可直接尋址,也可間接尋址。l80H以上的存儲(chǔ)器實(shí)際是兩個(gè)各自獨(dú)立的存儲(chǔ)區(qū),要用不同的尋址方式進(jìn)行訪問。l80H以上的存儲(chǔ)區(qū)是否可用取決于芯片的選擇。4、片外數(shù)據(jù)存儲(chǔ)器l通過總線端口和其他I/O口擴(kuò)展外部數(shù)據(jù)RAM,其最大容量可達(dá)64K字節(jié)。l在片外數(shù)據(jù)存儲(chǔ)器中,數(shù)據(jù)區(qū)和擴(kuò)展的I/O口是統(tǒng)一編址

3、的。在51的C語(yǔ)言中,XDATA :指外部數(shù)據(jù)存儲(chǔ)空間(0000H-0FFFFH)。5、 在51的C語(yǔ)言中,CODE :指程序地址空間0000H-0FFFFH。第五講(考)1、定時(shí)器方式0、定時(shí)模式的使用說明:?jiǎn)纹瑱C(jī)的晶振頻率為12MHz,利用T0方式0產(chǎn)生1ms的定時(shí),在P1.0引腳上輸出周期為2ms的方波。定時(shí)初值: TC=M-T/ T計(jì)數(shù) T = 1*10-3 ,T計(jì)數(shù) = 12/(12x106) = 1*10-6 TC = 213 1*10-3/1*10-6 = 213 1000 = 7192 = 1C18H TH0 = 1CH , TL0 =18H用c語(yǔ)言直接計(jì)算:#define f

4、osc 12 /晶振頻率#define time0 1000 /定時(shí)1ms,這里的最小單位是us(微秒)unsigned int idata time0_times;/使用間接尋址的片內(nèi)RAMunsigned char data time0_h,time0_l; /使用直接尋址的片內(nèi)RAM main()time0_times = 8192 time0 * fosc / 12;/213=8192time0_h = time0_times / 256;time0_l = time0_times % 256;/運(yùn)行結(jié)果:在示波器上產(chǎn)生方波2、定時(shí)器方式2、計(jì)數(shù)模式的使用說明:?jiǎn)纹瑱C(jī)的晶振頻率為12M

5、Hz,利用T0方式2進(jìn)行計(jì)數(shù),T0引腳(P3.4)的3個(gè)下降沿使得P1.0引腳上電平翻轉(zhuǎn)一次。方式字:TMOD=06H計(jì)數(shù)初值: TC=M-C C是三個(gè)下降沿 TC = 28 3 = 253 = 0FDH TH0 = TL0 =0FDH用程序觀察中斷號(hào)與地址的對(duì)應(yīng)關(guān)系/中斷程序入口認(rèn)識(shí) #include <reg51.h>char i;void main(void) /主程序 i=0; while(1);void int0(void) interrupt 0 /INT0中斷服務(wù)程序 i = 1; void time0_int(void) interrupt 1 /T0中斷服務(wù)程序

6、i = 2; void int1(void) interrupt 2 /INT1中斷服務(wù)程序 i = 3; void time1_int(void) interrupt 3 /T1中斷服務(wù)程序 i = 4; void serial_int(void) interrupt 4 /串口中斷服務(wù)程序 i = 5; 第八講51串口的三種功能: 串并轉(zhuǎn)換; 插入或?yàn)V除格式信息(起始位、校驗(yàn)位和停止位); 波特率的控制。串口使用的兩個(gè)要點(diǎn): 1、確定工作方式; 2、確定傳輸速率(波特率)51串口的四種工作方式方式0:串行移位輸入/輸出方式 RXD-數(shù)據(jù)輸入輸出,TXD-移位時(shí)鐘脈沖,傳輸波特率為fosc/

7、12。方式1:10位為一幀的異步串行通信方式。(考、圖)/ 串行口方式1的輸出波形觀察#include <reg51.h>void main(void) SCON = 0x40; /串口方式1 TMOD = 0x20; /定時(shí)器方式字,T1方式2 TL1 = 0xf3; /定時(shí)初值,0xf3對(duì)應(yīng)2400波特 TH1 = 0xf3; TR1 = 1; /啟動(dòng)T1 SBUF = 0x55; while(1);方式2:11位為一幀的異步串行通信方式 。/ 串行口方式2的輸出波形觀察#include <reg51.h>void main(void) SCON = 0x80;/串

8、口方式2 TB8 = 0; SBUF = 0x55; while(1);方式3:除波特率外,與方式2完全相同,方式2固定波特率,方式3可變波特率。/ 串行口方式3的輸出波形觀察#include <reg51.h>void main(void) SCON = 0xc0; /串口方式3 TMOD = 0x20; /定時(shí)器方式字,T1方式2 TL1 = 0xf3; /0xf3對(duì)應(yīng)2400波特 TH1 = 0xf3; TR1 = 1;/啟動(dòng)T1 TB8 = 0; SBUF = 0x55; while(1);方式1連續(xù)發(fā)送數(shù)據(jù)0x55:/ 串行口方式1的輸出波形觀察#include <

9、reg51.h>void main(void) SCON = 0x40;/串口方式1 TMOD = 0x20; /定時(shí)器方式字,T1方式2 TL1 = 0xf3; /定時(shí)初值,0xf3對(duì)應(yīng)2400波特 TH1 = 0xf3; TR1 = 1;/啟動(dòng)T1 EA = 1; /總中斷允許 ES = 1; /允許串口中斷 SBUF = 0x55; while(1);void serial_int(void) interrupt 4 /串口中斷服務(wù)程序 SBUF = 0x55; TI = 0;/清串口發(fā)送中斷標(biāo)志 方式0的應(yīng)用:用串行口方式0實(shí)現(xiàn)串并轉(zhuǎn)換/ 串行口方式0的使用#include &l

10、t;reg52.h>#define uchar unsigned char#define uint unsigned int sbit shift = P10;/延時(shí) void DelayMS(uint x) uchar t; while(x-) for(t=0;t<120;t+); void main(void) uchar sdata;SCON = 0x03;/置工作方式0并標(biāo)志位shift = 0;while(1)RI = 0;/清接收標(biāo)志,準(zhǔn)備接收 REN = 1;/允許串口接收shift = 1; while(RI = 0);/接收結(jié)束,RI=1REN = 0;/禁止串口接收 sdata = SBUF;SBUF = sdata; TI = 0;/清發(fā)送標(biāo)志,準(zhǔn)備發(fā)送while(TI = 0);/接收結(jié)束,TI=1shift = 0;DelayMS(300); / 串行口方式1的使用#include <reg52.h>#include <stdio.h>void main(void) SCON = 0x52;/串口方式1、允許接收 TMOD =

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論