|
STC的8腳單片機(jī)有直插和SOP兩種形式的封裝,其中有6個(gè)IO口,剩下2個(gè)是VCC和GND ,不需要帶晶振內(nèi)部自帶有時(shí)鐘發(fā)生電路,在此要說(shuō)明這種型號(hào)的單片機(jī)有專用的燒錄軟件,在宏晶官網(wǎng)都有下載。這6個(gè)IO口實(shí)際上是我們普通單片機(jī)上的P3口,實(shí)際編程時(shí)也是使用P3.X來(lái)實(shí)現(xiàn)IO口操作。唯一的不同就是沒(méi)有硬件的串口,需要用到定時(shí)器來(lái)模擬(這點(diǎn)不好),但是下載電路和STC的串口下載電路時(shí)一樣的。不做修改。這個(gè)有點(diǎn)費(fèi)解?下載時(shí)用到的是串口形式的下載電路,硬件上使用時(shí)卻沒(méi)有串口。杯具!
關(guān)于IO口的復(fù)用功能,除P3.1沒(méi)有復(fù)用功能外,其他引腳均有復(fù)用功能。分別是5個(gè)外部中斷,3個(gè)時(shí)鐘輸出,一個(gè)復(fù)位輸入 。芯片默認(rèn)是不需要復(fù)位電路的,上電自復(fù)位的。可以通過(guò)軟件來(lái)選擇引腳作為復(fù)位腳。同時(shí)在燒錄軟件上可以選擇低壓復(fù)位。手冊(cè)上說(shuō)的是8種。軟件上只顯示了6種-不解???讓人驚喜的是燒錄軟件上提供硬件開(kāi)啟看門狗功能。還可以選擇看門狗分頻級(jí)數(shù)。還是蠻方便的嘛。。。程序又少了幾句話 。最后要說(shuō)一點(diǎn)的是該種單片機(jī)以E結(jié)尾的都有EEPROM喔。例如我買的STC15F104E。
有了這種小的單片機(jī),大家以后做點(diǎn)簡(jiǎn)單的玩意也不拍浪費(fèi)了。好東西。支持一下!特附上修改過(guò)的STC15F04E頭文件
/*
STC15F104E單片機(jī)特殊功能寄存器頭文件
*/
#ifndef __REG52_H__
#define __REG52_H__
/* BYTE Registers */
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
/*
BIT5 LVDF 低壓檢測(cè)標(biāo)記位 只要VCC小于芯片門檻電壓 自動(dòng)置1 需軟件清0 同時(shí)也是低壓檢測(cè)中斷標(biāo)記位
BIT1 PD 為1進(jìn)入掉電模式 硬件清0
BIT0 IDL 為1進(jìn)入空閑模式 硬件清0
*/
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only
/* TCON */
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
/* IE */
sbit EA = IE^7;
sbit ELVD = IE^6; //低壓檢測(cè)中斷
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
/* IP */
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
/* P3 */
sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;
/*IO口的設(shè)置寄存器
四種模式
P3M0 P1M1
0 0 與普通的IO口一樣
0 1 設(shè)置為強(qiáng)推挽模式
1 0 設(shè)置為高阻輸入模式
1 1 設(shè)置為高漏輸出模式
*/
sfr P3M0=0XB2;
sfr P3M1=0XB1;
/*
AUXR寄存器
BIT7 T0X12 定時(shí)器0速度為傳統(tǒng)12倍
BIT6 T1X12 定時(shí)器1速度為傳統(tǒng)12倍
*/
sfr AUXR=0X8E;//不可以位尋址的
/*
CLK_DIV
時(shí)鐘分頻寄存器控制系統(tǒng)時(shí)鐘的分頻數(shù)。12倍速單片機(jī)上電默認(rèn)是不分頻的
0 0 0-晶振時(shí)鐘
0 0 1-晶振時(shí)鐘/2
0 1 0-晶振時(shí)鐘/4
。。。。依次類推
*/
sfr CLK_DIV=0X97;
/*
內(nèi)部時(shí)鐘輸出
IRC_CLK0 BIT7 EN_IRCO 使能時(shí)鐘輸出
BIT3 DIVIRCO 為1使能內(nèi)部2分頻
*/
sfr IRC_CLKO=0XBB;
/*
外部中斷使能和時(shí)鐘輸出寄存器
INT_CLKO
BIT6 EX4 外部中斷4使能 16 中斷向量號(hào)
BIT5 EX3 外部中斷3使能 11 中斷向量號(hào)
BIT4 EX2 外部中斷2使能 10 中斷向量號(hào)
BIT1 T1CLKO 允許P3.4管腳輸出時(shí)鐘 輸出時(shí)鐘頻率由相應(yīng)的定時(shí)器重裝值來(lái)決定
BIT0 T0CLKO 允許P3.5管腳輸出時(shí)鐘
輸出時(shí)鐘頻率=(sys_clk)/((256-TH0)*24) 工作在定時(shí)器方式28位自動(dòng)重裝模式下
*/
sfr INT_CLKO=0X8F;
/*
ISP/IAP控制寄存器
BIT7 IAPEN IAP操作使能
BIT6 SWBS 為1從ISP啟動(dòng)區(qū)啟動(dòng) 為0從用戶應(yīng)用程序區(qū)啟動(dòng)
BIT5 SWRST 為1產(chǎn)生軟件復(fù)位
BIT4 CMD/FAIL ISP不成功該位置1
BIT2/1/0
*/
sfr IAP_CONTR=0XC7;
/*
看門狗控制寄存器
WDT_CONTR
BIT7 WDT_FLAG 看門狗溢出標(biāo)記
BIT5 EN_WDT 看門狗允許位
BIT4 CLR_WDT 清看門狗 為1看門狗計(jì)數(shù)值清零
BIT3 IDLE_WDT 為1在空閑模式下看門狗仍然工作
BIT2/1/0看門狗溢出時(shí)間選擇
可硬件啟動(dòng)看門狗
*/
sfr WDT_CONTR=0XC1;
#endif
|
|