找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5463|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STC15開發(fā)板部分例程總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:163711 發(fā)表于 2017-2-7 09:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STC15系列例程總結(jié)
1、利用軟件實(shí)現(xiàn)精確延時(shí)方法:利用循環(huán)指令輸出方波,用示波器測(cè)量方波周期
2、子函數(shù)中定義static類型變量,可以使得變量保存住變量值
3、LED_PORT=~(0x01<<i);在i=0時(shí)等價(jià)于:LED_PORT=~0x01;i=1、2、3...的分析類似
4、宏定義
//端口操作定義
#define               SET                    1                      //高電平
#define               CLR                    0                      //低電平
//端口操作
#define         HC595_DAT_Clr()      {HC595_DAT=CLR;}
#define         HC595_DAT_Set()     {HC595_DAT=SET;}
5、temp=dis; temp=temp<<8| dig; temp為int類型,該語(yǔ)句實(shí)現(xiàn)將兩個(gè)8位變量合并成一個(gè)16字節(jié)變量
6、芯片工作之初應(yīng)加幾ms的延時(shí),等待芯片上電穩(wěn)定
7、DispTemp[4]=Low_Dat/1000;           //低四位千位
       DispTemp[5]=Low_Dat%1000/100;      //低四位百位
       DispTemp[6]=Low_Dat%100/10;         //低四位十位
       DispTemp[7]=Low_Dat%10;                //低四位個(gè)位
8、P3=P3|0x1c;要讀入P3.2、P3.3、P3.4三個(gè)端口先置高,51單片機(jī)端口做輸入必須先置高
9、IAP_CONTR=0x60;        //啟動(dòng)下載
當(dāng)STC單片機(jī)上電啟動(dòng)后,會(huì)先運(yùn)行內(nèi)部的ISP監(jiān)控程序,判斷是否有下載命令,如果有,則下載程序。否則運(yùn)行用戶程序。當(dāng)上位機(jī)發(fā)送下載命令時(shí)P30引腳會(huì)出現(xiàn)下降沿低電平。所以在程序中檢測(cè)P30腳是否有低電平,如果有低電平,就通過(guò)軟件向單片機(jī)的IAP_CONTR控制寄存器中寫入60H即可啟動(dòng)ISP監(jiān)控程序。
10、IAP_CONTR =0x20;    //軟件復(fù)位,并且從用戶程序開始執(zhí)行。
11、WDT_CONTR =0x3e;
    // 0011,1110 EN_WDT =1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 1,PS0 = 0
    // EN_WDT = 1:啟動(dòng)看門狗定時(shí)器
    // CLR_WDT = 1:看門狗將重新計(jì)數(shù)
    // IDLE_WDT = 1:,看門狗定時(shí)器在“空閑模式”計(jì)數(shù)
// PS2 = 1,PS1 = 1,PS0 = 0:定時(shí)4.5511 S    @f=11.0592MHz
WDT_CONTR |= 0x10;
// CLR_WDT = 1:看門狗將重新計(jì)數(shù)
12、STC15系列單片機(jī)有四種端口模式:準(zhǔn)雙向口、強(qiáng)推挽輸出、僅為輸入和開漏結(jié)構(gòu),復(fù)位后默認(rèn)為準(zhǔn)雙向口。
       P0M1=0xf0;     //1111 0000
       P0M0=0xcc;     //1100 1100
       端口設(shè)置結(jié)果:
       P0.0和P0.1為準(zhǔn)雙向口,P0.2和P0.3為強(qiáng)推挽輸出,P0.4和P0.5僅為輸入,P0.6和P0.7開漏
       結(jié)果現(xiàn)象分析:準(zhǔn)雙向口吸收電流能力強(qiáng),輸出電流能力差;強(qiáng)推挽輸出吸收電流和輸出電流能力強(qiáng);僅為輸入為高阻,無(wú)法吸收電流;開漏吸收電流能力強(qiáng)。由于開發(fā)板的電路結(jié)構(gòu)吸收電流的端口接的LED才亮,故接在P0.4和P0.5的端口的LED不亮,其他的都亮。
13、所謂有源和無(wú)源是指蜂鳴器內(nèi)部是否有自帶的振蕩電路。無(wú)源蜂鳴器內(nèi)部沒有振蕩電路,通過(guò)端口給它施加一定的頻率驅(qū)動(dòng),不同的頻率可以發(fā)出不同的音調(diào)。而有源蜂鳴器內(nèi)部自帶頻率固定的振蕩電路,一加電就會(huì)發(fā)出固定音調(diào)的聲音,無(wú)法發(fā)出各種不同的音調(diào)。
14、PCON|=0x02;     //單片機(jī)進(jìn)入休眠掉電模式,可由外部中斷喚醒
15、CCON=0x80;         //初始化PCA控制寄存器
                                     //停止PCA計(jì)數(shù)器
                                     //清除CF標(biāo)記
                                     //清除PCA各個(gè)模塊中斷標(biāo)記
       CCAPM0=0x49;       //初始化PCA的比較/捕獲寄存器0
                                     //允許比較功能
                                     //比較匹配時(shí)CCF0中斷
       CL=0;                     //清除PCA計(jì)數(shù)器
       CH=0;
       CCAP0L=0x00;        //定時(shí)初值50ms        11.0592MHz
       CCAP0H=0xb4;
       CMOD=0x80;         //設(shè)置PCA計(jì)數(shù)器時(shí)鐘源為Fosc/12
                                     //PCA計(jì)數(shù)器空閑模式停止計(jì)數(shù)
                                     //禁止PCA計(jì)數(shù)溢出中斷
16、定時(shí)器不可屏蔽的16位自動(dòng)重裝方式為stc15系列單片機(jī)特有,移植到其他類型單片機(jī)可能不適用。該不可屏蔽中斷的自動(dòng)重裝定時(shí)功能很有用。當(dāng)單片機(jī)使用操作系統(tǒng)的時(shí)候可作為系統(tǒng)的時(shí)基。
TMOD |=0x03;    //T0工作于不可屏蔽的十六位自動(dòng)重裝定時(shí)方式,/使用位操作,避免對(duì)其他定時(shí)器產(chǎn)生影響
17、P54端口可以輸出時(shí)鐘信號(hào),輸出分頻多少由CLK_DIV中的MKCO_S1、MKCO_S0控制,輸出的時(shí)鐘不超過(guò)13.5MHz,這是由于STC單片機(jī)端口的性能決定的。CLK_DIV中的CLKS2、CLKS1、CLKS0控制單片機(jī)內(nèi)部工作時(shí)鐘的頻率。
18、單片機(jī)串口1可以選擇定時(shí)器T1或T2為波特率發(fā)生器。單片機(jī)串口2單片機(jī)的第二個(gè)串口。通過(guò)DB9插頭輸出。該第二串口只能選擇定時(shí)器2作為波特率發(fā)生器,不能使用定時(shí)器1做為波特率發(fā)生器。
19、該RS485接口使用的是單片機(jī)的串口2使用定時(shí)器2做為串口2的波特率發(fā)生器選擇波特率9600,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)。詳細(xì)操作見左側(cè)Doc目錄下的readme文件,單片機(jī)串口為TTL電平,RS485只是硬件上將TTL    轉(zhuǎn)換成RS485電平,程序上與串口程序大體相同。
20、PCA用到以下特殊功能寄存器:CMOD、CCON、CCAPMn、PCA_PWMn、CH、CL、CCAPnH、CCAPnL、AUXR1
21、PWM產(chǎn)生一定占空比波形
CCON=0;     //初始化PCA控制寄存器,停止PCA計(jì)數(shù)器,清除CF標(biāo)記,清除PCA各個(gè)模塊中斷,
CL=0;           //清除PCA計(jì)數(shù)器
CH=0;
CMOD=0x82; //設(shè)置PCA計(jì)數(shù)器時(shí)鐘源為Fosc/2,PCA計(jì)數(shù)器空閑模式停止計(jì)數(shù),禁止PCA計(jì)數(shù)溢出中斷
CCAP1H=CCAP1L=0x80;//PWM0端口輸出50%占空比方波,8位PWM模式最大為256,一半為128,即0x80
CCAPM1=0x42;//PCA模塊0工作于8位PWM模式,允許比較器功能,允許PWM輸出,禁止CCF0中斷
22、

STC15開發(fā)板部分例程總結(jié).doc

32 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:295805 發(fā)表于 2018-7-24 13:46 | 只看該作者
謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:476348 發(fā)表于 2019-3-14 16:11 | 只看該作者
樓主有沒有15單片機(jī)的無(wú)線串口收發(fā)的例程啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表