MCS-51功能單元
一、定時(shí)器&計(jì)數(shù)器
數(shù)量:兩個(gè)可編程的16位的定時(shí)器/計(jì)數(shù)器T0和T1;都是16位加法計(jì)數(shù)結(jié)構(gòu);分為高8位和低8位;TH0、TL0,TH1、TL1;
定時(shí)器/計(jì)數(shù)器T0、T1是80C51的中斷源之一,當(dāng)數(shù)據(jù)寄存器溢出,則向CPU申請(qǐng)中斷。數(shù)據(jù)寄存器的復(fù)位狀態(tài)為0。為使計(jì)數(shù)值或定時(shí)值滿足自己的要求,需預(yù)先將數(shù)據(jù)寄存器賦值,稱為初值設(shè)定,中斷中也要重新設(shè)定初值。定時(shí)器和計(jì)數(shù)器本質(zhì):都是計(jì)數(shù)器,對(duì)下降沿進(jìn)行計(jì)數(shù),計(jì)數(shù)達(dá)到溢出后置為標(biāo)志位或者進(jìn)入中斷;
兩者的區(qū)別:
定時(shí)器是對(duì)內(nèi)部的機(jī)械周期脈沖進(jìn)行計(jì)數(shù),每個(gè)脈沖都是一個(gè)機(jī)械周期;定時(shí)時(shí)間=機(jī)器周期*(2^L-初值) (L=13,16,8)
計(jì)數(shù)器則是通過外部IO口進(jìn)行脈沖計(jì)數(shù),一個(gè)脈沖加一個(gè)數(shù);對(duì)應(yīng)IO口:T0-P3.4,T1-P3.5;
計(jì)數(shù)長(zhǎng)度:計(jì)數(shù)長(zhǎng)度=(2^L-初值) (L=13,16,8)
兩者的模式切換通過TMOD控制
TMOD結(jié)構(gòu)圖:
TMOD詳解
GATE:門控位
GATE =1,由中斷引腳INT0(P3.2)、INT1(P3.3)和TCON中的位TR0、TR1共同控制來啟動(dòng)定時(shí)器/計(jì)數(shù)器
GATE =0,由TR0和TR1置位來啟動(dòng)定時(shí)器/計(jì)數(shù)器**(一般為0)**
C/!T:模式選擇位:
1時(shí),計(jì)數(shù)器模式;
0時(shí),定時(shí)器模式;
M0 & M1共同控制工作方式:
項(xiàng)目開發(fā)一般用01,考試大概率考00;
啟動(dòng)停止與中斷控制寄存器TCON
TFx:定時(shí)器或者計(jì)數(shù)器溢出時(shí)置位1,請(qǐng)求中斷,中斷程序進(jìn)入后自動(dòng)清零;
TRx:定時(shí)器啟動(dòng)控制位,當(dāng)其等于1時(shí)定時(shí)器/計(jì)數(shù)器啟動(dòng);
中斷允許控制寄存器:IE
ETx:定時(shí)器/計(jì)數(shù)器的中斷允許位
EA:CPU總中斷的允許位定時(shí)器/計(jì)數(shù)器使用:(重點(diǎn))
工作方式的設(shè)置:
偽代碼:
//設(shè)置定時(shí)器0工作在16位模式//C語(yǔ)言 TMOD=0x01; //定時(shí)器//匯編 MOV TMOD, #01H;
計(jì)數(shù)初值的計(jì)算+裝載:
偽代碼:
//機(jī)械周期1us,設(shè)置500us中斷一次為FE0C//C語(yǔ)言 TH0=0xFE; TL0=0x0C;//匯編 MOV TH0, #0FEH ; MOV TL0, #0cH ;
中斷允許位的設(shè)置:
偽代碼://C EA=1; ET0=1;//assembly SETB EA ;turn on all interrupt SETB ET0 ;turn on 0 interrupt
開啟定時(shí)器:
偽代碼://c TR0=1;//assembly SETB TR0 ;turn on CLR TR0 ;turn off !
使用實(shí)例:
定時(shí)器使用方式(中斷方式):
ORG 0000H; AJMP MAIN; ORG 001BH; AJMP IRQ1; MAIN: MOV TMOD, #00H ;工作模式0,高8+低5 MOV TH1, #0FCH MOV TL1, #03H SETB TR1; SETB ET1; SETB EA; AJMP $; IRQ1: MOV TMOD, #00H MOV TH1, #0FCH CPL P1.0 RETI ;中斷返回一定要加!
計(jì)數(shù)器使用方式(中斷方式):
ORG 0000H; AJMP MAIN; ORG 001BH; AJMP IRQ1; MAIN: MOV TMOD, #04H ;計(jì)數(shù)器模式 MOV TH1, #0FCH ;一千個(gè)下降沿中斷一次 MOV TL1, #03H SETB TR1; SETB ET1; SETB EA; AJMP $; IRQ1: MOV TMOD, #00H MOV TH1, #0FCH CPL P1.0 RETI ;中斷返回一定要加!
查詢方式則是判斷TF溢出標(biāo)志,變高后進(jìn)入自定義韓式處理數(shù)據(jù),清空標(biāo)志;
二、并行口&串行口
并行口:并行傳輸數(shù)據(jù)(不常用)
占據(jù)資源大,錯(cuò)誤率高,但快
串行口:(重要)
穩(wěn)定,占據(jù)IO口小,準(zhǔn)確,稍微慢
串行口控制寄存器SCON:
SM0和SM1:串行口方式選擇位;
00-移位寄存器方式
01-8位UART,波特率可變
10-9位UART,波特率為fosc/64或fosc/32(PCON決定)
11-9位UART,波特率可變
方式1為常用通信方式;方式2、3為多機(jī)通信,方式0為移位寄存器,不常用;重要標(biāo)志位: TI:發(fā)送完成標(biāo)志 RI:接收完成標(biāo)志
串口波特率與定時(shí)器1關(guān)聯(lián),公式如下:
波特率=2^SMOD * fosc / [32 * 12(2^K-初值)];(fosc系統(tǒng)主頻)
波特率翻倍寄存器:PCON
只有最高位(SMOD)有效:為1時(shí)波特率翻倍,為0時(shí)不翻倍
方式1串口通信接收代碼:
ORG 0000H LJMP MAIN ORG 0023H LJMP RX_TI MAIN: MOV SCON, #50H MOV PCON, #00H MOV TMOD, #02H MOV TH1, #0FDH MOV TL1, #0FDH SETB TR1 SETB EA SETB ES RX_TI: PUSH ACC MOV TH1, #0FDH MOV TL1, #0FDH MOV A, SBUF ;處理 POP ACC RETI
發(fā)送套用代碼:
MOV SBUF, A JNB TI, $ CLR TI RET
三、中斷系統(tǒng)
所有中斷控制位:
TCON:
TF1、TF0:定時(shí)器溢出標(biāo)志、請(qǐng)求中斷:
IE1、IE0:外部中斷溢出請(qǐng)求:
IT1、IT0:外部中斷觸發(fā)方式選擇-1下降沿觸發(fā)、0低電平觸發(fā)
SCON:
內(nèi)部TI、RI觸發(fā)接收發(fā)送中斷。
所有中斷允許位:
中斷處理跳轉(zhuǎn)地址:
中斷源 | 矢量單元 |
---|---|
外部中斷0 | 0003H |
定時(shí)器0溢出中斷 | 000BH |
外部中斷1 | 0013H |
定時(shí)器1溢出中斷 | 001BH |
串行口 | 0023H |
定時(shí)器2溢出中斷 | 002BH |
注:進(jìn)入中斷后一般需要對(duì)現(xiàn)場(chǎng)進(jìn)行保護(hù):
使用PUSH和POP做現(xiàn)場(chǎng)保護(hù)
;對(duì)A和PSW壓棧保護(hù) PUSH ACC PUSH PSW ;對(duì)A和PSW出棧保護(hù) POP PSW POP ACC
上一篇:80C51學(xué)習(xí) 閃爍燈
下一篇:手動(dòng)實(shí)現(xiàn)51單片機(jī)函數(shù)切換
推薦閱讀最新更新時(shí)間:2025-06-08 09:29


設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫(kù)的一些基本介紹
- AM1DR-2403SH30Z 3.3V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- 使用 Analog Devices 的 LTC3728LIGN 的參考設(shè)計(jì)
- 用于開/關(guān)控制應(yīng)用的 AM2G-4818SZ 18V 2 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- ToubanPCB
- 使用 Infineon Technologies AG 的 TDA 16846-2 的參考設(shè)計(jì)
- ADA4610-2ARZ-R7 正峰值檢波器運(yùn)算放大器的典型應(yīng)用電路
- LT6656ACS6-2.5、2.5V 精密電流和升壓電壓基準(zhǔn)的典型應(yīng)用
- 使用 Omron 的 S8VS-09024BS 的參考設(shè)計(jì)
- 使用具有 PowerPath 和 2A 輸入限制的 LTC4162EUFD-L41 9V 至 35V、2 節(jié)、3.2A 充電器的典型應(yīng)用
- VL53L0X測(cè)距模塊
- STM32CubeMX配置硬件CRC
- S3c2440ARM異常與中斷體系詳解1---概念引入與處理流程
- ZDS2022示波器百集實(shí)操視頻之75:波形擴(kuò)展
- 清華 AIR 研究院發(fā)布全球首個(gè)車路協(xié)同數(shù)據(jù)集 DAIR-V2X
- 51單片機(jī)C51程序
- 初學(xué)stm32-寄存器開發(fā)點(diǎn)燈、流水燈、蜂鳴器
- R8100電臺(tái)綜合測(cè)試儀的功能及應(yīng)用特點(diǎn)
- 從sys/power/state分析并實(shí)現(xiàn)S3C2416的睡眠和喚醒
- Cirrus Logic為PC市場(chǎng)帶來沉浸式音頻體驗(yàn)
- 芯原超低能耗NPU可為移動(dòng)端大語(yǔ)言模型推理提供超40 TOPS算力
- 芯原AI-ISP芯片定制方案助力客戶智能手機(jī)量產(chǎn)出貨
- AI加持,安森美一站式服務(wù)推動(dòng)助聽器市場(chǎng)持續(xù)進(jìn)步
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- 如何為您的應(yīng)用選擇光傳感器
- Samtec新型農(nóng)業(yè)漫談系列二 | 垂直農(nóng)業(yè)案列分享
- Samtec應(yīng)用科普 | C-V2X技術(shù)在汽車領(lǐng)域的應(yīng)用
- 尼得科運(yùn)動(dòng)&能源事業(yè)本部在印度卡納塔克邦胡布利舉行新工廠竣工儀式
- 貿(mào)澤開售Qorvo適用于5G和mMIMO應(yīng)用的新型QPA9822線性5G高增益/高驅(qū)動(dòng)放大器
- 邊緣計(jì)算網(wǎng)關(guān)工業(yè)物聯(lián)網(wǎng)應(yīng)用:空壓機(jī)遠(yuǎn)程運(yùn)維監(jiān)控管理
- 智能汽車何時(shí)才能實(shí)現(xiàn)“軟硬兼收”?
- 商用服務(wù)機(jī)器人優(yōu)地科技再獲數(shù)億元融資
- LightWare新推全球最小最輕激光雷達(dá),可應(yīng)用于自動(dòng)駕駛汽車
- R-Car Virtual Platform加速下一代車載系統(tǒng)軟件開發(fā)
- TI高效助力電動(dòng)汽車實(shí)現(xiàn)全面的動(dòng)力總成集成
- 至純科技:股東擬減持公司不超過1.064%股份
- 長(zhǎng)陽(yáng)科技擬18億建光學(xué)級(jí)聚酯基膜項(xiàng)目和鋰離子電池隔膜項(xiàng)目
- 力通通信完成2億元融資,致力于研發(fā)5G射頻高性能芯片
- 聯(lián)合光電:公司掌握了有光波導(dǎo)鏡片技術(shù)
- 美墨共享半導(dǎo)體供應(yīng)鏈,墨西哥將于南部州建造芯片工廠
- IAR_msp430 自帶的延時(shí)函數(shù)
- R7F0C802x Easy Start 計(jì)步器的實(shí)現(xiàn)(1)---加速度模塊
- 小米手機(jī)為何印度被禁及影響
- DM6437 啟動(dòng)模式簡(jiǎn)介
- 請(qǐng)教關(guān)于從NAND啟動(dòng),復(fù)制到SDRAM問題
- wince攝像頭問題,重新開帖,之前發(fā)錯(cuò)地方了
- mspace on parameter ignored
- 邀你參加2018年論壇體驗(yàn)問卷調(diào)查——一切為了更好的服務(wù)
- Attenuator Design Tutorial
- 關(guān)于 EK-lm3s811-ND rev2 求助