深入了解STC單片機(jī)_第1頁(yè)
深入了解STC單片機(jī)_第2頁(yè)
深入了解STC單片機(jī)_第3頁(yè)
深入了解STC單片機(jī)_第4頁(yè)
深入了解STC單片機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、STC單片機(jī)· STC單片機(jī)是以51內(nèi)核為主的系列單片機(jī),STC單片機(jī)是宏晶生產(chǎn)的單時(shí)鐘/機(jī)器周期的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快812倍,內(nèi)部集成MAX810專用復(fù)位電路。4路PWM 8路高速10位A、D轉(zhuǎn)換,針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。目錄· STC單片機(jī)主要性能· STC單片機(jī)特點(diǎn)· STC單片機(jī)AD和EEPROM的驅(qū)動(dòng)C程序· 基于STC單片機(jī)的經(jīng)濟(jì)型步進(jìn)電機(jī)控制系統(tǒng)STC單片機(jī)主要性能高速:1 個(gè)時(shí)鐘/ 機(jī)器周期,增強(qiáng)型8051 內(nèi)核,速度比普通8051 快812 倍寬電

2、壓:5.53.8V,2.43.8V(STC12LE5410AD 系列)低功耗設(shè)計(jì):空閑模式,掉電模式(可由外部中斷喚醒)工作頻率:035MHz,相當(dāng)于普通8051:0420MHz- 實(shí)際可到48MHz,相當(dāng)于8051: 0576MHz時(shí)鐘:外部晶體或內(nèi)部RC 振蕩器可選,在ISP 下載編程用戶程序時(shí)設(shè)置 12K/10K/8K/6K/4K/2K 字節(jié)片內(nèi)Flash 程序存儲(chǔ)器,擦寫(xiě)次數(shù)10 萬(wàn)次以上 512 字節(jié)片內(nèi)RAM 數(shù)據(jù)存儲(chǔ)器芯片內(nèi)EEPROM 功能 ISP / IAP,在系統(tǒng)可編程/ 在應(yīng)用可編程,無(wú)需編程器/ 仿真器 10 位ADC,8 通道,STC12C2052AD 系列為8 位A

3、DC。4 路PWM 還可當(dāng)4 路D/A 使用 4 通道捕獲/ 比較單元(PWM/PCA/CCU),STC12C2052AD 系列為2 通道- 也可用來(lái)再實(shí)現(xiàn)4 個(gè)定時(shí)器或4 個(gè)外部中斷(支持上升沿/ 下降沿中斷) 2 個(gè)硬件16 位定時(shí)器,兼容普通8051 的定時(shí)器。4 路PCA 還可再實(shí)現(xiàn)4 個(gè)定時(shí)器硬件看門狗(WDT)高速SPI 通信端口全雙工異步串行口(UART),兼容普通8051 的串口先進(jìn)的指令集結(jié)構(gòu),兼容普通8051指令集4 組8 個(gè)8 位通用工作寄存器(共32 個(gè)通用寄存器)有硬件乘法/ 除法指令通用I/O 口(27/23/15 個(gè)),復(fù)位后為: 準(zhǔn)雙向口/ 弱上拉(普通8051

4、 傳統(tǒng)I/O 口)可設(shè)置成四種模式:準(zhǔn)雙向口/ 弱上拉,推挽/ 強(qiáng)上拉,僅為輸入/ 高阻,開(kāi)漏每個(gè)I/O 口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不得超過(guò)55mASTC單片機(jī)特點(diǎn)· 1 、I / O 口經(jīng)過(guò)特殊處理2 、輕松過(guò)2KV/4KV 快速脈沖干擾(EFT 測(cè)試)3 、寬電壓, 不怕電源抖動(dòng)4 、寬溫度范圍, - 4 0 8 5 5 、高抗靜電(E S D 保護(hù))6 、單片機(jī)內(nèi)部的時(shí)鐘電路經(jīng)過(guò)特殊處理7 、單片機(jī)內(nèi)部的電源供電系統(tǒng)經(jīng)過(guò)特殊處理8 、單片機(jī)內(nèi)部的看門狗電路經(jīng)過(guò)特殊處理9 、單片機(jī)內(nèi)部的復(fù)位電路經(jīng)過(guò)特殊處理STC單片機(jī)AD和EEPROM的驅(qū)動(dòng)C程序· S

5、TC單片機(jī)具有在應(yīng)用編程,調(diào)試起來(lái)比較方便;帶有10位AD;內(nèi)部eeprom;可在1T/機(jī)器周期下工作,速度是傳統(tǒng)51單片機(jī)的12倍;下面是我寫(xiě)的AD和EEPROM的驅(qū)動(dòng)C代碼: /*- *File Name: stc_AD.c - *Description: A/D 轉(zhuǎn)換程序 *Project: - *MCU type: STC12C5410AD - - *Company: WY - *Compiler: KEIL C51 - *DESINER: 郭準(zhǔn) 06.2.7 - -*/ #include <global.h> /定義的 系統(tǒng)頭文件和全局變量 /*A/D SFR*/ sfr

6、 ADC_LOW2 = 0xBE; sfr ADC_CONTR = 0xC5; sfr ADC_DATA = 0xC6; sfr CLK_DIV = 0xC7; / /定義變量 uchar code display_AD_channel_ID2 = 0x00,0x01; uchar data AD_channel_result25; /各通道A/D轉(zhuǎn)換結(jié)果。前是通道號(hào);后是轉(zhuǎn)換的值 /定義引用外部 extern void Delay(uint number);/晶振=11059200,機(jī)器周期=1.085069444us,"加"的機(jī)器周期=1 extern void sen

7、d_char_com(uchar ch); extern void send_string_com(uchar *str,uchar strlen); void Ad_Change(uchar channel); /- /功能:A/D轉(zhuǎn)換 /入口:channel = 通道號(hào) .0:0通道;1:1通道。 /出口:AD_channel_1_result: 10位的數(shù)據(jù),16進(jìn)制。 /設(shè)計(jì):郭準(zhǔn),偉業(yè),2006/2/7 /- void Ad_Change(uchar channel) uint AD_Result_Temp = 0 ; /-將P1.0-P1.1設(shè)置成適合AD轉(zhuǎn)換的模式 / P1 =

8、0xff; /將P1口置高,為A/D轉(zhuǎn)換作準(zhǔn)備 ADC_CONTR = ADC_CONTR|0x80; /1000,0000打開(kāi)A/D轉(zhuǎn)換電源 P1M0 = 0x03; /0000,0011用于A/D轉(zhuǎn)換的P1.x口,先設(shè)為開(kāi)漏 P1M1 = 0x03; /0000,0011P1.0-P1.1先設(shè)為開(kāi)漏。斷開(kāi)內(nèi)部上拉電阻 Delay(20); /20 ADC_CONTR = ADC_CONTR&0xE0; /1110,0000 清ADC_FLAG,ADC_START位和低3位 ADC_CONTR = ADC_CONTR|(display_AD_channel_IDchannel&

9、;0x07); /設(shè)置當(dāng)前通道號(hào) Delay(1); /延時(shí)使輸入電壓達(dá)到穩(wěn)定 ADC_DATA = 0; /清A/D轉(zhuǎn)換結(jié)果寄存器 ADC_LOW2 = 0; ADC_CONTR = ADC_CONTR|0x08; /0000,1000ADCS 1,啟動(dòng)轉(zhuǎn)換 do ; while(ADC_CONTR & 0x10)=0); /0001,0000等待A/D轉(zhuǎn)換結(jié)束 ADC_CONTR = ADC_CONTR&0xE7; /1110,0111清ADC_FLAG位,停止A/D轉(zhuǎn)換 AD_Result_Temp = (AD_Result_Temp|ADC_DATA)<<2

10、)|(ADC_LOW2&0x03); /保存返回AD轉(zhuǎn)換的 結(jié)果 /-轉(zhuǎn)換成可由串口顯示的字符 AD_channel_resultchannel0 = AD_Result_Temp/1000+0x30; AD_channel_resultchannel1 = (AD_Result_Temp%1000)/100+0x30; AD_channel_resultchannel2 = (AD_Result_Temp%100)/10+0x30; AD_channel_resultchannel3 = AD_Result_Temp%10+0x30; /-串口監(jiān)視 / send_char_com(A

11、DC_DATA); /發(fā)送轉(zhuǎn)換 的 到的 值,這里只是 高8位,值的轉(zhuǎn)換需要考慮 / send_char_com(ADC_LOW2); /發(fā)送轉(zhuǎn)換 的 到的 值,這里只是 低2位,值的轉(zhuǎn)換需要考慮 send_string_com(AD_channel_resultchannel,4); Delay(1); / /*- *File Name: STC_EEPROM.c - *Description: IAP/ISP 功能 - *Project: - *MCU type: STC12C5410AD - - *Company: WY - *Compiler: KEIL C51 - *DESINER:

12、 郭準(zhǔn) 06.2.7 - -*/ #include <global.h> /定義的 系統(tǒng)頭文件和全局變量 /*IAP有關(guān)功能寄存器*/ sfr ISP_DATA = 0xE2; sfr ISP_ADDRH = 0xE3; sfr ISP_ADDRL = 0xE4; sfr ISP_CMD = 0xE5; sfr ISP_TRIG = 0xE6; sfr ISP_CONTR = 0xE7; /-定義常量 #define ENABLE_ISP 0x82 /<20MHz /#define ENABLE_ISP 0x83 /<12MHz #define DEBUG_DATA 0

13、x5A /-flash 存儲(chǔ)的起始地址 #define DATA_FLASH_START_ADDRESS 0x2800 /stc12c2052ad /? uchar tx_buf3 = 0,0,0; extern void Delay(uint number);/晶振=11059200,機(jī)器周期=1.085069444us,"加"的機(jī)器周期=1 extern void send_char_com(uchar ch); extern void send_string_com(uchar *str,uchar strlen); uchar Byte_Read(uint addr

14、ess); void Sector_Erase(uint address); void Byte_Program(uint address,uchar ch); /* void Eeprom_Start(void) P1 = 0xf0; /開(kāi)始工作 Delay(2); /22us.原13us / SP = 0xE0; /堆棧指針指向0E0H單元 */ /- /功能:讀一字節(jié);調(diào)用前需打開(kāi)IAP功能 /入口:uint address頁(yè)地址0512,為了提高處理速度,最好用0256的范圍 /出口: /設(shè)計(jì):郭準(zhǔn),偉業(yè),2006/2/7 /- uchar Byte_Read(uint address

15、) uchar data ch; ISP_CONTR = ENABLE_ISP; /打開(kāi)IAP功能,設(shè)置Flash操作等待時(shí)間 ISP_CMD = 0x01; /選擇讀AP模式 /- address = DATA_FLASH_START_ADDRESS+address; ISP_ADDRH = (uchar)(address>>8); /填頁(yè)地址 ISP_ADDRL = (uchar)(address); /填頁(yè)地址 EA = 0; ISP_TRIG = 0x46; /出發(fā)ISP處理器 ISP_TRIG = 0xB9; nop(); ch = ISP_DATA; /保存數(shù)據(jù) EA

16、= 1; /-在處理器完成之前,CUP將暫停 /-關(guān)閉IAP功能,清與ISP有關(guān)的特殊功能寄存器 ISP_CONTR = 0; ISP_CMD = 0; ISP_TRIG = 0; / send_char_com(ch + 0x30); return ch; /- /功能:擦除扇區(qū) /入口:uint address頁(yè)地址0512,為了提高處理速度,最好用0256的范圍 /出口: /設(shè)計(jì):郭準(zhǔn),偉業(yè),2006/2/7 /- void Sector_Erase(uint address) ISP_CONTR = ENABLE_ISP; /打開(kāi)IAP功能,設(shè)置Flash操作等待時(shí)間 ISP_CMD

17、= 0x03; /選擇頁(yè)擦除模式 /- address = DATA_FLASH_START_ADDRESS+address; ISP_ADDRH = (uchar)(address>>8); /填頁(yè)地址 ISP_ADDRL = (uchar)(address); /填頁(yè)地址 EA = 0; ISP_TRIG = 0x46; /出發(fā)ISP處理器 ISP_TRIG = 0xB9; nop(); EA = 1; /-關(guān)閉IAP功能,清與ISP有關(guān)的特殊功能寄存器 ISP_CONTR = 0; ISP_CMD = 0; ISP_TRIG = 0; /- /功能:字節(jié)編程,寫(xiě) /入口:ui

18、nt address頁(yè)地址0512,為了提高處理速度, / 最好用0256的范圍;uchar ch=要寫(xiě)的數(shù)據(jù) /出口: /設(shè)計(jì):郭準(zhǔn),偉業(yè),2006/2/7 /- void Byte_Program(uint address,uchar ch) / Sector_Erase(address); ISP_CONTR = ENABLE_ISP; /打開(kāi)IAP功能,設(shè)置Flash操作等待時(shí)間 ISP_CMD = 0x02; /選擇字節(jié)編程模式 /- address = DATA_FLASH_START_ADDRESS+address; ISP_ADDRH = (uchar)(address>

19、>8); /填頁(yè)地址 ISP_ADDRL = (uchar)(address); /填頁(yè)地址 ISP_DATA = ch; EA = 0; ISP_TRIG = 0x46; /出發(fā)ISP處理器 ISP_TRIG = 0xB9; nop(); EA = 1; /-關(guān)閉IAP功能,清與ISP有關(guān)的特殊功能寄存器 ISP_CONTR = 0; ISP_CMD = 0; ISP_TRIG = 0; /- /功能:字節(jié)編程,寫(xiě)字符串 /入口:uint address頁(yè)地址0512,為了提高處理速度, / 最好用0256的范圍;uchar ch=要寫(xiě)的數(shù)據(jù) / len=字符串的長(zhǎng)度 /出口: /設(shè)計(jì)

20、:郭準(zhǔn),偉業(yè),2006/2/7 /- void Morebyte_Program(uint address,uchar *ch,uchar len) uchar k = 0; Sector_Erase(address); do Byte_Program(address,*(ch + k); address+; k+; while(k < len); /- /功能:讀多字節(jié);調(diào)用前需打開(kāi)IAP功能 /入口:uint address頁(yè)地址0512,為了提高處理速度,最好用0256的范圍 /出口: /設(shè)計(jì):郭準(zhǔn),偉業(yè),2006/2/7 /- void Moreyte_Read(uint add

21、ress) uchar k = 0; do tx_bufk = Byte_Read(address); address+; k+; while(k < 3); 基于STC單片機(jī)的經(jīng)濟(jì)型步進(jìn)電機(jī)控制系統(tǒng)· 步進(jìn)電機(jī)是工業(yè)控制中應(yīng)用十分廣泛的一種電動(dòng)機(jī),它能將數(shù)字信號(hào)直接轉(zhuǎn)換成角位移或線位移,驅(qū)動(dòng)速度和指令脈沖能嚴(yán)格同步,具有較高的定位精度,控制系統(tǒng)成本低廉,在經(jīng)濟(jì)型數(shù)控機(jī)床等領(lǐng)域應(yīng)用廣泛。這里針對(duì)電磁干擾較強(qiáng)以及要求低成本應(yīng)用的場(chǎng)合,采用超強(qiáng)抗干擾、小巧低功耗的工業(yè)級(jí)STC12C系列單片機(jī),充分利用單片機(jī)內(nèi)部的硬件資源,設(shè)計(jì)實(shí)用的步進(jìn)電機(jī)控制和驅(qū)動(dòng)系統(tǒng)。1 控制系統(tǒng)總體方案設(shè)計(jì)系

22、統(tǒng)功能原理示意圖如圖1所示。在該系統(tǒng)中由單片機(jī)直接輸出電機(jī)的各相控制脈沖序列,光耦進(jìn)行必要的光電隔離,采用分立元件構(gòu)成功率MOSFET管驅(qū)動(dòng)電路,帶動(dòng)電機(jī)轉(zhuǎn)動(dòng)。鍵盤接口與 LED顯示功能由具有SPI串行接口功能的ZLG7289實(shí)現(xiàn)。既可使用按鍵輸入的方式精確設(shè)置電機(jī)的工作方式與轉(zhuǎn)速,也可以通過(guò)調(diào)速旋鈕實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的連續(xù)調(diào)節(jié),還能通過(guò)上位機(jī)實(shí)現(xiàn)對(duì)電機(jī)工作方式的調(diào)整與控制。2 硬件電路設(shè)計(jì)21 控制電路設(shè)計(jì)控制芯片采用STC12C4052AD,它是1個(gè)時(shí)鐘機(jī)器周期的單片機(jī),速度比普通的8051單片機(jī)快812倍,有20個(gè)引腳且為小巧封裝。該單片機(jī)具有超強(qiáng)抗干擾,抗靜電的特點(diǎn),能輕松通過(guò)4 kV快速脈

23、沖干擾,其功耗超低,正常工作模式下的典型功耗為277 mA。芯片自帶硬件看門狗,具有高速SPI通信端口,8通道8位AD轉(zhuǎn)換,2路PWM輸出,4 KB容量的FLASH存儲(chǔ)器,256 B容量的SRAM,4個(gè)定時(shí)器,1個(gè)全雙工串行通信口。由于單片機(jī)內(nèi)部的資源豐富,性價(jià)比高,能夠滿足該設(shè)計(jì)的要求,而且減少了硬件電路的設(shè)計(jì),提高了工作效率。單片機(jī)的外部引腳定義,及其在該設(shè)計(jì)中的資源分布如圖2所示。P14(ADC4)口外接47 k的可調(diào)電位器,利用單片機(jī)內(nèi)部的模數(shù)轉(zhuǎn)換功能轉(zhuǎn)換成數(shù)字量,進(jìn)而控制輸出脈沖頻率,完成步進(jìn)電機(jī)速度的“連續(xù)”調(diào)節(jié)。過(guò)流檢測(cè)的結(jié)果直接引入到外部中斷0,實(shí)現(xiàn)對(duì)電流的快速控制。22 驅(qū)動(dòng)

24、電路設(shè)計(jì)功率MOSFET管的部分驅(qū)動(dòng)電路如圖3所示。該電路的設(shè)計(jì)可改進(jìn)功率MOSFET管的快速開(kāi)通時(shí)間,提高了驅(qū)動(dòng)電流的前后沿陡度,能夠改善高頻響應(yīng)。功率MOSFET管柵源間的阻抗很高,工作于開(kāi)關(guān)狀態(tài)下漏源間電壓的突變會(huì)通過(guò)極間電容耦合到柵極,產(chǎn)生相當(dāng)幅度的VGS脈沖電壓。正方向的VGS脈沖電壓可能會(huì)導(dǎo)致器件的誤導(dǎo)通。為此,需要適當(dāng)降低柵極驅(qū)動(dòng)電路的阻抗,在柵源之間并接阻尼電阻或接一個(gè)穩(wěn)壓值小于20 V,而又接近20 V的齊納二極管,以防止柵源開(kāi)路工作。為了抑制功率管內(nèi)的快恢復(fù),二極管出現(xiàn)反向恢復(fù)效應(yīng),在電路中接入4只快恢復(fù)二極管。其中,反并聯(lián)快恢復(fù)二極管的作用是為電機(jī)相繞組提供續(xù)流通路,其余

25、2 只是為了使功率MOSFET管內(nèi)部的快恢復(fù)二極管不流過(guò)反向電流,以保證功率MOSFET管在動(dòng)態(tài)工作時(shí)能起到正常的開(kāi)關(guān)的作用。23 顯示與按鍵處理電路在單片機(jī)應(yīng)用系統(tǒng)中,典型的鍵盤顯示接口電路由基于并行擴(kuò)展技術(shù)的8155,8279構(gòu)成控制電路。現(xiàn)代單片機(jī)應(yīng)用系統(tǒng)廣泛采用串行擴(kuò)展技術(shù)。相對(duì)于并行方式,串行擴(kuò)展接線靈活,占用單片機(jī)資源少。ZLG7289A是具有SPI串行接口功能的可同時(shí)驅(qū)動(dòng)8位數(shù)碼管或64只獨(dú)立LED的智能顯示驅(qū)動(dòng)芯片,單片即可完成顯示、鍵盤接口的全部功能。采用串行方式與微處理器通信,數(shù)據(jù)從DIO引腳送入芯片,并由CLK端同步。當(dāng)選信號(hào)變?yōu)榈碗娖胶螅珼IO引腳上的數(shù)據(jù)在CLK引腳的上升沿被寫(xiě)入 ZLG7289A的緩沖寄存器。圖4是ZLG7289的典型應(yīng)用。ZLG7289A連接共陰式數(shù)碼管,應(yīng)用中不需要的數(shù)碼管與鍵盤可以不連接,省去數(shù)碼管或?qū)?shù)碼管設(shè)置消隱屬性,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論