390 likes | 693 Views
單晶片 MCS-51 C 語言入門實習. 第 1 章 微電腦與單晶片 MCS-51 架構. 1-1 微電腦結構介紹. 圖 1-1 微電腦基本結構. 主記憶體. 名 稱. 編 號. 特 性. ROM. Mask ROM. 27XX. 工廠大量生產. PROM. 27XX. 保險絲組成,僅能燒錄一次. EPROM. 27XX. 用紫外線清除. 並列 EEPROM. 28CXX. 用高電壓清除. 串列 EEPROM. 93C46. 用高電壓清除,串列存取資料. FLASH ROM. 28FXX. 用高電壓清除,分段寫入. RAM.
E N D
單晶片MCS-51C語言入門實習 第1章微電腦與單晶片MCS-51架構 作者:董勝源
1-1微電腦結構介紹 圖1-1 微電腦基本結構 1-2頁
主記憶體 名 稱 編 號 特 性 ROM Mask ROM 27XX 工廠大量生產 PROM 27XX 保險絲組成,僅能燒錄一次 EPROM 27XX 用紫外線清除 並列EEPROM 28CXX 用高電壓清除 串列EEPROM 93C46 用高電壓清除,串列存取資料 FLASH ROM 28FXX 用高電壓清除,分段寫入 RAM SRAM 61XX 62XX 正反器組成、速度快 DRAM 41XX 44XX 電容組成,須更新 1-1.3記憶單元(Memory Unit) 表1-1 主記憶體分類表 1-3頁
位元數 編 號 8 8085、Z80、6502、6800 16 8086、8088、68000、80286、Z8000 32 80386、80486、68030、68040 64 Pentium,6X86、K6、Power PC 1-1.4中央處理單元(CPU) 表1-2(a)CPU的種類 1-5頁
位元數 編 號 8 MCS-48、MCS-51、6811、Z8、6805、PIC、EM78 16 MCS-96、80186、80188、DSP320C2x 32 80386/EX、DSP320C60 1-1.4中央處理單元(CPU) 表1-2(b) 單晶片微電腦種類 1-6頁
1-1.5匯流排(BUS)種類 圖1-2 三種匯流排結構 1-6頁
位址匯流排 計 算 記憶容量 說 明 10條 210=1024 1K byte K=1024 M=1024K G=1024M 11條 211=2048 2K byte 16條 216=65536 64K byte 20條 220=1024K 1M byte 24條 224=16384K 16K byte 30條 230=1024M 1G byte 32條 232=4096M 4G byte 1-1.5匯流排(BUS)種類 表1-3 位址匯流排與記憶容量的關係表 1-7頁
CPU 資料匯流排 位址匯流排 最大定址能力 Z80 8 bit 16 bit 64K byte 8085/6502 8 bit 16 bit 64K byte 8088 8 bit 20 bit 1M byte 8086 16 bit 20 bit 1M byte 80286 16 bit 24 bit 16M byte 80386/DX 32 bit 32 bit 4G byte 80486 32 bit 32 bit 4G byte Pentium/P2 64 bit 32/36 bit 4G/64G byte 單晶片微電腦 PIC16C5X 12 bit 11 bit 2K word (12 bit) PIC16C84 14 bit 10 bit 1K word (14 bit) EM78156 13 bit 10 bit 2K word (13 bit) EM78447 13 bit 13 bit 8K word (13 bit) MCS-48 8 bit 11 bit 2K byte MCS-51 8 bit 16 bit 64K byte MCS-96 16 bit 16 bit 64K byte 1-1.5匯流排(BUS)種類 表1-4 各CPU的匯流排比較表 1-7頁
1-1.5匯流排(BUS)種類 圖1-3 記憶體的控制 1-9頁
記 憶 體 編 號 記 憶 容 量 並列式ROM及靜態RAMDATA BUS為8 bit XX64 64K bit/8=8K byte XX256 256K bit/8=32K byte XX010 1M bit/8=128K byte XX020 2M bit/8=256K byte XX040 4M bit/8=512K byte 3232 快取記憶體32K * 32 bit 3264 快取記憶體64K * 32 bit 串列式EEPROM (Data BUS=1bit) 93C46 64 * 16 bit=128 byte 93C56 128 * 16 bit=512 byte 93C66 256 * 16 bit=1024 byte DRAM 4164 64K * 1 bit 41256 256K * 1 bit 41100 1M * 1 bit 44256 256K * 4 bit 44100 1M * 4 bit 1-1.5匯流排(BUS)種類 表1-5 記憶體容量的計算 1-10頁
1-2.1個人電腦整體結構 (1) (2) (3) (2) (3) (4) (4) (3) (3) (6) (6) (7) (5) (8) (5) (9) 圖1-4 個人電腦的整體結構 1-12頁
1-2.2個人電腦內部硬體 圖1-5 個人電腦主機內部結構圖 1-14頁
特性 Pentium K6-3 P2 P3 Celeron K7雷鳥 K7杜龍 內頻Hz 200M 500M 450M 1.13 G 900 M 1.4GHZ 900M 資料線 64 位址線 32 36 電壓 3.3V 2.2V 2.0V 1.8V 1.6V 1.75V 1.6V 包裝 PGA321 LPGA SECC FC-PGA PGA PGA 插座 Socket7 Slot 1 Socket370 Slot A L1快取 16k 64K 32K 32K 32K 128K 128K L2快取 0 256K 512K 512K 128K 256K 64K 1-2.2個人電腦內部硬體 表1-6 常用CPU分類表 1-15頁
DRAM Pin數 工作電壓 頻率(MHZ) 資料寬度 FPM DRAM 72 5 V 66 32 bit EDO DRAM 72 5 V 66 32 bit SDRAM 168 3.3 V 100~133 64 bit DDR SDRAM 184 3.3V 200~333 64 bit RDRAM 184 1.8 or 2.5 V 600以上 16 bit 1-2.2個人電腦內部硬體 表1-7 DRAM分類表 1-16頁
內部硬體中斷電路 中斷要求 外部界面中斷 中斷要求 時間計時(8254) IRQ0 RS-232 COM2 IRQ3 鍵盤控制器(8042) IRQ1 RS-232 COM1 IRQ4 內部2個8259串接 IRQ2 列表機(LPT2) IRQ5 CMOS(MC146818) IRQ8 磁碟控制器(DISK) IRQ6 PS2鍵盤及滑鼠 IRQ12 列表機(LPT1) IRQ7 NPU IRQ13 硬碟(Hard Disk) IRQ14 保留給其他界面卡 IRQ9、10、11、15 1-2.2個人電腦內部硬體 表1-8 硬體中斷電路 1-18頁
顏 色 名 稱 用 途 橙色ORANGE +3.3V 主電源:提供CPU、RAM及其它電路 紅色RED +5V I/O電路及週邊電路的電源 黑色BLACK 0V 所有電路的電源地線 黃色YELLOW +12V 磁碟機馬達電源及RS232傳輸線+V邏輯準位 藍色BLUE -12V RS232傳輸線-V邏輯準位 白色WHITE -5V 輔助電源,目前很少用。 紫色PURPLY +5VSB 週邊設備軟體開機信號線,可用滑鼠、鍵盤、數據機及網路卡開機 綠色GREEN PS-ON 面板按鈕軟體開機信號線 灰色GREY PG 大地線 1-2.2個人電腦內部硬體 表1-9ATX電源供給器 1-18頁
1-2.3單晶片微電腦的整體結構 圖1-6 單晶片微電腦內部方塊圖 1-19頁
特 性 個 人 電 腦 單晶片微電腦 用途 一般運算工作 特定的控制及民生用產品 硬體電路 複雜多晶片電路組成 單純一個晶片 程式語言 以高階語言及套裝軟體為主 以組合語言為主,也可用高階語言 ROM記憶體 存放監督程式(BIOS) 存放應用控制程式 RAM記憶體 存放應用程式及暫時性資料 僅存放暫時性的資料 製作規格 多量統一規格 快速製作,少量多樣化 訴求功能 高速、大量運算能力 適當的達到功能即可 製作成本 價格昂貴 價格便宜 1-2.4個人電腦與單晶片微電腦比較 表1-10 個人電腦與單晶片微電腦比較表 1-22頁
型號 內部ROM 容量(byte) 內部RAM 容量(byte) 外部中斷 計時器 串列埠 IC 腳數 輸出入腳 8031 無 128 2 2 有 40 32 8032 無 256 2 3 有 40 32 8051 OTP PROM 4k 128 2 2 有 40 32 8052 OTP PROM 8k 256 2 3 有 40 32 8751 EPROM 4k 128 2 2 有 40 32 8752 EPROM 8k 256 2 3 有 40 32 89C51 FLASH ROM 4k 128 2 2 有 40 32 89C52 FLASH PROM 8k 256 2 3 有 40 32 89C1051 FLASH PROM 1k 128 2 2 無 20 15 89C2051 FLASH PROM 2k 128 2 2 有 20 15 1-3 MCS-51單晶片微電腦的結構 表1-11MCS-51系列的單晶片微電腦產品 1-23頁
功能 說明 89C51/52 89C2051 工作電壓 以CMOS製作 VCC=5V VCC=2.7~6V 振盪器的型式 可選擇兩種 石英晶體振盪器及外部振盪源 工作頻率 內部工作週期= 振盪頻率/12 0~24MHz 0~24MHz 內部資料記憶體 內部RAM 128或256byte(52) 128byte 外部資料記憶體 可再擴充RAM 64K byte 不能擴充 內部程式記憶體 可寫入1000次 4K或8K(52) byte 2K byte 外部程式記憶體 可再擴充ROM 64K byte 不能擴充 I/O埠 不須設定I/O 雙向32條 雙向15條 計時/計數器 16 bit 計數 兩組或三組(52) 兩組 串列埠 全雙工界面 1組 省電功能 可用軟體設定 閒置及電源下降模式 中斷源 週邊設備工作 5個或6個(52) 6個 類比電路比較器 類比電壓比較 無 1組 輸出驅動電流 直接驅動LED 不可以 可以 1-3 MCS-51單晶片微電腦的結構 表1-1289C51/52及80C2051功能特色 1-24頁
1-3.1單晶片微電腦MCS-51內部的結構 圖1-7MCS-51的內部結構 1-25頁
1-3.2 8051接腳電路 圖1-88051的接腳圖 1-28頁
接腳名稱 51腳位 2051腳位 功 能 VCC 40 20 系統電源腳,51為5V±0.5V,2051為2.7~6V VSS 20 10 系統電源地線 X1 19 5 振盪信號輸入腳,可輸入0-24MHz X2 18 4 振盪信號輸出入腳 RESET 9 9 主系統重置信號輸入端,輸入“1”重新啟動 P00-7 39-32 無 雙向I/O腳,作為輸出時是開洩極特性,兼作外部記憶體的位址/資料線AD0-AD7。 P10-7 1-8 1-8 雙向I/O腳,其中P10-1於8052兼作T2輸入 P20-7 21-28 無 雙向I/O腳,兼作外部記憶體的位址線A8-A15 P30 P34 P31 P35 P32 P36 P33 P37 10 14 11 15 12 16 13 17 2 8 3 9 6 無 7 11 雙向I/O腳,同時兼作各種功能,如下: P30=RXD為UART串列接收腳P34=T0為外部計數信號T0輸入腳 P31=TXD為UART串列發射腳 P3=T1為外部計數信號T1輸入腳 P32=/INT0為外部中斷輸入腳P36=/WR為外部RAM的寫入控制輸入腳 P33=/INT1為外部中斷輸入腳P37=/RD為外部RAM的讀取控制輸入腳 /PSEN 29 無 外部ROM程式記憶體的致能控制,低態動作 ALE 30 無 位址栓鎖致能,ALE=0時,AD0-AD7送出資料,ALE=1時,AD0-AD7送出位址 EA 31 無 外部存取控制,0=外部ROM,1=內部ROM 1-3.2 8051接腳電路 表1-1389C51及89C2051各接腳 1-29頁
1-3.2 8051接腳電路 圖1-9 石英晶體和陶瓷振盪電路 1-30頁
1-3.2 8051接腳電路 圖1-10 重置電路圖 1-31頁
1-3.2 8051接腳電路 圖1-11I/O埠接腳 1-31頁
1-3.2 8051接腳電路 圖1-1289C2051內部的類比電壓比較器 1-32頁
1-3.2 8051接腳電路 圖1-13 外部的記憶體電路圖 1-33頁
1-3.3 記憶體介紹 圖1-148051程式記憶體位址圖 1-35頁
中斷源 向量位址 說 明 INT0 03h 外部中斷腳0 Timer0 0Bh 計時/計數0溢位中斷 INT1 13h 外部中斷腳1 Timer1 1Bh 計時/計數1溢位中斷 UART 23h 串列中斷 Timer2 2Bh 計時/計數2溢位中斷(僅52) 1-3.3 記憶體介紹 表1-14 各中斷源的向量位址 1-36頁
1-3.3 記憶體介紹 圖1-16MCS-51資料記憶體分怖圖 1-37頁
1-3.3 記憶體介紹 圖1-17 暫存器及RAM 1-38頁
1-3.3 記憶體介紹 圖1-18 位元定址區 1-39頁
位址 D7 D6 D5 D4 D3 D2 D1 D0 暫存器 F0h 7 6 5 4 3 2 1 0 B累積器 E0h 7 6 5 4 3 2 1 0 ACC累積器 D0h CY AC F0 RS1 RS0 OV - P PSW程式狀態字語 CDh 15 14 13 12 11 10 9 8 TH2計時/計數2高位元組 CCh 7 6 5 4 3 2 1 0 TL2計時/計數2低位元組 CBh 15 14 13 12 11 10 9 8 RCAP2H載入/捕捉高位元組 CAh 7 6 5 4 3 2 1 0 RCAP2L載入/捕捉低位元組 C8h TF2 EXF2 RCLK TCLK EXEN2 TR2 C_T2 CP_RL2 T2CON計時2控制 B8h - - - PS PT1 PX1 PT0 PX0 IP中斷優先 B0h P37 P36 P35 P34 P33 P32 P31 P30 P3 I/O埠3 A8h EA - - ES ET1 EX1 ET0 EX0 IE中斷致能 P27 P26 P25 P24 P23 P22 P21 P20 P2 I/O埠2 1-3.3 記憶體介紹 表1-15 特殊功能暫存器 1-41頁
99h 7 6 5 4 3 2 1 0 SBUF串列緩衝 98h SM0 SM1 SM2 REN TB8 RB8 TI RI SCON串列控制 90h P17 P16 P15 P14 P13 P12 P11 P10 P1 I/O埠1 8Dh 15 14 13 12 11 10 9 8 TH1計時/計數1高位元組 8Ch 15 14 13 12 11 10 9 8 TH0計時/計數0高位元組 8Bh 7 6 5 4 3 2 1 0 TL1計時/計數1低位元組 8Ah 7 6 5 4 3 2 1 0 TL0計時/計數0低位元組 89h GATE C/T M1 M0 GATE C/T M1 M0 TMOD計時模式 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TMOD計時控制 87h SMOD - - - GF1 GF0 PD IDL PCON電源控制 83h 15 14 13 12 11 10 9 8 DPH資料指標高位元組 82h 7 6 5 4 3 2 1 0 DPL資料指標低位元組 81h 7 6 5 4 3 2 1 0 SP堆疊指標 80h P07 P06 P05 P04 P03 P02 P01 P00 P0 I/O埠0 1-3.3 記憶體介紹 表1-15 特殊功能暫存器 1-41頁
D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV - P 1-3.3 記憶體介紹 表1-16(a) 程式狀態字語(位址D0h) 1-42頁
位元 名 稱 功 能 D7 CY:進位旗標或借位旗標 (Carry Flag)進位旗標,用來表示算術指令運算後的結果,其資料的bit 7是否有進位或借位。 加法運算時(ADD)的結果:有進位C=1,沒有進位C=0。 減法運算時(SUB)的結果:有借位C=1,沒有借位C=0。 D6 AC:半進位旗標或半借位旗標 (Aux Carry Flag)半進位旗標,用來表示運算後資料的bit 3是否有向bit 4進位或借位。 加法運算時(ADD)的結果:有進位AC=1,沒有進位AC=0。 減法運算時(SUB)的結果:有借位AC=1,沒有借位AC=0。 D5 F0:通用位元 可作為一般的讀/寫位元。 D4 RS1:暫存器庫選擇位元1 暫存器庫選擇(Regiser Bank Select)位元1及位元0。 RS1 RS0 暫存器庫選擇 0 0 RB0(位址00h-07h) 0 1 RB1(位址08h-0Fh) 1 0 RB2(位址10h-17h) 1 1 RB3(位址18h-1Fh) D3 RS0:暫存器庫選擇位元0 D2 OV:溢位旗標 (Over)溢位旗標,表示程式經算術或邏輯運算後的結果是否有溢位,若是OV=1,若不是OV=0。 D1 - 空位元 D0 P:同位元旗標 (Parity)同位元旗標,表示累積器的內容為奇數個“1”則P=0,偶數個“1”則P=1。 1-3.3 記憶體介紹 表1-16(b) 程式狀態字語各位元的名稱與功能 1-43頁
位元 D7 D6 D5 D4 D3 D2 D1 D0 P0接腳 P07 P06 P05 P04 P03 P02 P01 P00 位址80h 87h 86h 85h 84h 83h 82h 81h 80h P1接腳 P17 P16 P15 P14 P13 P12 P11 P10 位址90h 97h 96h 95h 94h 93h 92h 91h 90h P2接腳 P27 P2 P25 P24 P23 P22 P21 P20 位址A0h A7h A6h A5h A4h A3h A2h A1h A0h P3接腳 P37 P36 P35 P34 P33 P32 P31 P30 位址B0h B7h B6h B5h B4h B3h B2h B1h B0h 1-3.3 記憶體介紹 表1-17I/O埠及I/O腳的位址 1-44頁