Vi điều khiển - Chương 1: Cấu trúc phần cứng
Các không gian nhớ chương trình và dữ liệu gối đầu nhau
Một RAM có thể chiếm không gian nhớ chương trình và dữ liệu bằng cách nối chân
Mạch trên cho phép RAM được ghi như là bộ nhớ dữ liệu và được đọc như là bộ nhớ chương trình hoặc dữ liệu. Vậy 1 chương trình có thể được nạp vào RAM (bằng cách vào RAM như là bộ nhớ dữ liệu) và được thực thi ( bằng cách truy xuất như bộ nhớ chương trình)
27 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 993 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Vi điều khiển - Chương 1: Cấu trúc phần cứng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MÔN HỌC VI ĐIỀU KHIỂN MỤC TIÊU Nắm được cấu trúc phần cứng VI Điều Khiển AT89C51 Tập lệnh hợp ngữ Khung chương trình hợp ngữ viết cho AT89C51 Viết chương trình ứng dụngNỘI DUNG MÔN HỌCDẫn nhậpChương 1 : Cấu trúc phần cứng của AT89C51Chương 2 : Tập lệnh AT89c51Chương 3 : lập trình hợp ngữ Chương 4 : Bộ định thời (timer)Chương 5 : Ngắt (Interrupt)Chương 6 : Port nối tiếp (serial port)Chương 7 : Giao tiếp TỔNG QUAN - Sơ lược quá trình hình thành quá phát triển của VĐK Từ Vi xử lý đến Vi đĐiều khiển Cấu trúc chung của một Vi đĐiều khiển Chương 1: CẤU TRÚC PHẦN CỨNG CPUinterrupt controloscillatiorbus control I/O portserial portother register128 byte RAMROM0K-8031/80324K-80518K-8052128 byte RAM8032/8052Time 1Time 0Time 28032/8052 EA RSTALEPSENP0 P1 P2 P3address/dataTXD* RXD*INT 1.INT0.Timer 2(8052/8032)Timer1Timer0serial portHình 1.9 Cấu trúc bên trong 89C51ĐẶC ĐIỂM PHẦN CỨNG- 4 KB ROM nội.- 128 Byte RAM nội.- 4 Port xuất /nhập I/O 8 bit.- 1 bộ giao tiếp Giao tiếp nối tiếp.- 2 bộ định thời 16 bit- 64 KB bộ nhớ chương trình ngoài ( bộ nhớ chương trình = program = code memory) - 64 KB bộ nhớ dữ liệu ngoàiRAM ngoài ( Bộ nhớ dữ liệu = Data)- 210 vị trí nhớ có thể định địa chỉ bit.I. CPUGồm ALU và Control unit được đóng gói. Đây là CPU 8 bit. Chúng ta chỉ nắm các chế độ địa chỉ mà CPU cung cấp (phần tập lệnh)II. I/O (INPUT/OUTPUT)1. Chức năng các chân+ Port 0 : P0.0 – P0.7: Port I/O 8 bit có 2 chức năng 8 đường dữ liệu: D0 – D7 8 đường địa chỉ thấp: A0 – A7 ( khi dùng với bộ nhớ mở rộng bên ngoài )+ Port 1 : 8 chân : P1.0 – P1.7 : Port I/O 8 bit : dùng để giao tiếp với các thiết bị bên ngoài.+ Port 2 : 8 chân P2.0 – P2.7 : Port I/O 8 bit: có 2 chức năng 8 đường dữ liệu: D0 – D7 8 đường địa chỉ cao: A8 – A15 ( khi dùng với bộ nhớ mở rộng bên ngoài )+ Port 3 : P3.O – P3.7 : Port I / O 8 bit: có 2 chức năng Port I / O 8 bit Các chân điều khiển : T0, T1, WR,RD, INT0, INT1, TxD, RxDReset : Dùng để khởi động lại hệ thốngHình 1.2 Maïch resetXTAL1 và XATL2 : dùng để ghép với thạch anh bên ngòai. Tần số danh định của thạch anh là 12Mhz (đôi lúc dùng 11.059 Mhz)ALE (Cho phép chốt địa chỉ Address Latch Enable) : Chân này xuất tín hiệu cho phép chốt địa chỉ (byte thấp) của địa chỉ ngoài vào 1 thanh ghi ngoài(bộ đệm). Chân này được nối với chân cho phép của vi mạch chốt bên ngoài. P0 ALE P2 D0-D7A0-A7A8-A1589C5174CH373D QGMemmoryHình 1.3 Kết nối bộ nhớ ngòai- ALE = 1 : Port 0 trở thành Address. P0.0 – P0.7 = A0 - A7 ( byte đ/c thấp )- ALE = 0 : Port 0 trở thành Port data.P0.0 – P0.7 = D0 - D7- Nếu ta không dùng bộ nhớ ngoài thì chân ALE nối đất. : (cho phép truy xuất ngòai External Access) dùng cho cả ROM và RAM: = 0: Cho phép truy xuất bộ nhớ ngoài P2.0 – P2.7 = A8 – A15 ( byte địa chỉ cao) = 1 : sử dụng 4KROM + 128 byte RAM nội = 21 V : Ghi chương trình vào ROM nội (lập trình) (cho phép bộ nhớ chương trình Program Store Enable) Dùng cho ROM: Cho phép bộ nhớ chương trình ngoài. Nối với Chân của Eprom = 0: Cho phép bộ nhớ chương trình ngoài. = 1 : Khi thực thi chương trình ở Rom nội. EAEAEAEAPSEN PSEN PSEN Lưu ý : Các PIN của 89C51 là 2 hướng. Để truy xuất ta phải : Trước khi xuất 1 bit ta phải xóa bit đó = 0. Trước khi nhập ta phải set bit đó = 1.III. BỘ NHỚ (MEMORY) 89C51 có 2 loại bộ nhớ : bộ nhớ trong (ON-CHIP Memmory) và bộ nhớ ngoài (External Memmory)Bộ nhớ nội : Ở bên trong chip (On-Chip Memory) ROM nội và RAM nội. ROM nội (4K) dùng để chứa chương trình khi ta nạp chương trình. RAM nội (128 byte) dùng để chứa dữ liệu. Vùng stack thường trú trong RAM trên chip (Ram nội).Bộ nhớ ngoài : ROM ngoài và RAM ngoài.ROM ngoài : Nằm bên ngoài chip, thường dùng EPROM (64 K)RAM ngoài : Nằm bên ngoài chip, thường dùng RAM tĩnh (64K). Khi dùng RAM ngoài thì việc truy xuất không được linh hoạt, và tốc tộ truy xuất thấp.Tuy nhiên nó cho ta khả năng là tăng dung lượng RAM, ROM.1. Bộ nhớ nội ROM: 4K chứa chương trình RAM: có128 byte bao gồm Các dãy thanh ghi, vùng RAM định địa chỉ bit, vùng RAM đa chức năng, các thanh ghi có chức năng đặt biệt (SFR) 00H7FH20H1FH30H2FHVùng Ram Đa dụngVùng Ram Định địa chỉ bitCác bank Ram80HFFHCác thanh ghi có chức năng đặc biệtTóm tắt bộ nhớ dữ liệu trên chipCác bank RAM : Có địa chỉ từ 00 – 1FH. 32 byte được chia làm 4 bank. Bank 0, bank 1, bank 2 và bank 38051 hổ trợ 8 thanh ghi R0, R1, ,R7. 1 thanh ghi là 1 byte nhớ RAM. Được xem như 1 số thanh ghi phụ. Mặc định 8 thanh ghi phụ thuộc bank 08 thanh ghi R0 - R7 thuộc bank nào được thể hiện qua 2 bit RS1 RS0 trong thanh ghi PSWRS1RS0Bank ñöôïc choïn00Bank 0011102113RS1 = 1RS0 = 1 chọn bank 3Các lệnh sử dụng các thanh ghi R0 – R7 thực hiện nhanh hơn những lệnh tương đương dùng sự định địa chỉ trực tiếpVùng RAM đ/c hoá bit ( Bit Addresable Location )Có 210 vị trí . Trong đó ( 20h – 2Fh ) = 16 byte* 8 bit = 128 bit. Phần còn lại chứa trong các thanh ghi chức năng đặc biệt. Trong vùng nhớ này ta có thể tác động đến từng bit. Đây là 1 đặt trưng mạnh của các bộ vi điều khiển. Các địa chỉ trong vùng nhớ này có thể truy xuất từng byte hay từng bit tùy theo từng lệnh cụ thể.Ví dụ : SETB 00h ; bit có đ/c bit 00h thuộc địa chỉ byte 20h được set = 1RAM đa dụng: 80 byte có địa chỉ từ 30h – 7Fh : dùng để truy xuất thường xuyên với tần số cao, làm stack.Bất kỳ vị trí nào trong vùng RAM này đều có thể truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp qua 2 thanh ghi R0 và R1. Các thanh ghi chức năng đặc biệt SFR (Special Function Register): Thanh ghi là 1 byte nhớ hay 1 từ nhớ. Có một địa chỉ, thường được gán cho 1 cái tên gắn liền với 1 hoặc vài chức năng cụ thể. Các thanh ghi nội là 1 phần của RAM nội . Do đó mỗi thanh ghi có 1 địa chỉ. Có 21 thanh ghi có chức năng đặc biệt. Trong đó có 1 số thanh ghi có khả năng định địa chỉ bit. Hầu hết các thanh ghi chức năng đặc biệt được truy xuất bằng cách sử dụng sự định địa chỉ địa chỉ trực tiếp. + 4 thanh ghi port P0, P1, P2, P3 : dùng cho các port xuất nhập P0, P1, P2 và P3 + 6 thanh ghi cho time TMOD, TCON, TH0, TL0, TH1, TL1: dùng cho timer0 và timer 1 + 2 thanh ghi cho port nối tiếp SBUF, SCON : dùng cho port nối tiếp) + 2 Thanh ghi dùng cho ngắt IE, IP : dùng cho ngắt + 1 thanh ghi con trỏ dữ liệu ngòai DPTR: là thanh ghi 2 buyte DPH + DPL dùng truy xuất bộ nhớ ngòai + 1 thanh ghi tích lũy A : là thanh ghi được dùng nhiều nhất. Chứa kết quả các phép tóan. + 1 Thanh ghi phụ B : Dùng chung với thanh chứa A trong các lệnh nhân và chia. Ngoài ra thanh ghi B được dùng như thanh ghi phụ R + 1thanh ghi bộ đếm chương trình PC (Program Counter) : Là thanh ghi 2 byte, chỉ ra địa chỉ của lệnh tiếp theo được thực hiện. Đối với 89c51, khi bắt đầu thì địa chỉ của lện đầu tiên là 0000h. Ta không thể thay đổi giá trị trong bộ đếm chương trình. + 1 thanh ghi điều khiển nguồn PCON (Power Control) : dùng cho việc tăng đôi tốc độ baud port nối tiếp và thiết lập chế độ giảm nguồn (power down) + 1 thanh ghi con trỏ ngăn xếp SP (Stack Pointer): Nội dung của thanh ghi SP chính là đỉnh hiện hành của Stack ( vùng stack có 32 byte. Nếu ta không khởi tạo stack thì nó mặc định là 07h). Tốt nhất là ta khai báo vùng stack lớn hơn 2FH. + 1 thanh ghi từ trạng thái chương trình PSW (Program Status Word) Địa chỉ byte – địa chỉ bit A8: Đ/c byte của thanh ghi IE = đ/c bit bo ( bit LSB ) của IE MOV A, 26H; chuyển 1 byte dữ liệu từ địa chỉ byte ( of Ram ) 26H vào thanh ghi tích lũy A SETB 26H; lập bit có đ/c bit là 26, ( tức bit b6 của đ/c byte 24 lên 1 Ta có 3 cách để xác định địa chỉ bit trong 1 câu lệnh: - địa chỉ đã biết trước SETB 0E7H - Sử dụng toán tử dot (.) giữa địa chỉ byte và vị trí bit SETB ACC.7 - Sử dụng ký hiệu tiền định nghĩa JNB TI,$2. Bộ nhớ ngòai Memory cycleA8-A15AD0-AD7AddressAddressData 89C51 cho phép mở rộng bộ nhớ chương trình ngoài 64K ROM, bộ nhớ dữ liệu ngoài RAM 64K. ROM và RAM ngoài được thêm vào khi cần. Khi dùng bộ nhớ ngoài, bộ nhớ trong bị vô hiệu hoá. Khi bộ nhớ ngòai được sử dụng, port 0 không làm nhiệm vụ của port xuất nhập mà trở thành byte địac chỉ thấp A0-A7 và byte dữ liệu D0-D7 đa hợp. Port 2 được dùng làm byte địa chỉ cao Trong ½ chu kỳ đầu của chu kỳ bộ nhớ, byte thấp của địa chỉ được cung cấp bởi P0 và được chốt nhờ tín hiệu ALE. Mạch chốt 74CH373 giữ cho byte thấp của địa chỉ ổn định trong cả chu kỳ bộ nhớ. trong ½ chu kỳ sau của bộ nhớ, P0 được sử dụng làm bus dữ liệu và dữ liệu được đọc hay ghi. Các IC giao tiếp ngọai vi cũng có thể được thêm vào để mở rộng khả năng xuất nhập. Chúng trở thành 1 phần của không gian bộ nhớ dữ liệu ngòai.TRUY XUẤT BỘ NHỚ NGÒAITruy xuất bộ nhớ chương trình ngòai P0 ALE P2 D0-D7A0-A7A8-A1589C5174CH373D QGEPROMHình 1.4 Kết nối bộ nhớ chương trình ngòaiBộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu PSEN, khi PSEN = 0 cho phép thực thi chương trình chứa ở bộ nhớn ROM ngòai , Truy xuất bộ nhớ dữ liệu ngòai Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho phép bởi các tín hiệu RD và WR ở các chân P3.7 và P3.6. Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX, sử dụng con trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm thanh ghi chứa địa chỉ. vaø P0 ALE P2 D0-D7A0-A7A8-A1589C5174CH373D QGRAM50A34h12h89c51DPLDPHRAMRAM1234hVí dụ : Gửi giá trị 50 ra vùng RAM bên ngoài có đ/c 16 bit là 1234hNạp giá trị 50 vào thanh ghi AMOV A, # 50Cho thanh ghi DPTR chứa địa chỉ 1234h MOV DPTR , # 1234hGửi ra : MOVX @ DPTR, ADữ liệu phải để trong thanh ghi A; Địa chỉ ngoài phải để trong thanh ghi DPTR.Giải mã địa chỉ Việc giải mã địa chỉ được thực hiện khi có nhiều Eprom, Ram hoặc cả Rom và Ram ngịai được kết nối với 89c51. Việc giải mã được thực hiện bởi vi mạch 74138 Các không gian nhớ chương trình và dữ liệu gối đầu nhau Một RAM có thể chiếm không gian nhớ chương trình và dữ liệu bằng cách nối chân tới ngõ ra cổng AND có các ngõ vào là vaø Hình 1.7 Không gian nhớ chương trình và dữ liệu gối nhau Mạch trên cho phép RAM được ghi như là bộ nhớ dữ liệu và được đọc như là bộ nhớ chương trình hoặc dữ liệu. Vậy 1 chương trình có thể được nạp vào RAM (bằng cách vào RAM như là bộ nhớ dữ liệu) và được thực thi ( bằng cách truy xuất như bộ nhớ chương trình)
Các file đính kèm theo tài liệu này:
- chuong_01_cau_truc_phan_cung_6612.ppt