- Analog Comparator : Khối quản lý về đọc và so sánh Analog.
- /O Module 1- n : Khối quản lý về các giao tiếp vào ra với các thiết bị ngoại vi.
- General Purpose Register : Khối các thanh ghỉ đa mục đích. - Program Counter : Bộ đếm chương trình.
2.1.2.3 Các thanh shi chính trong AVR: > Thanh phí STATUS : > Thanh phí STATUS :
Thanh ghi trạng thái SREG (status register) có chứa 8 bịt cờ, đóng vai trò báo hiệu trạng thái hiện tại của bộ vi xử lý. Tất cả các bít đó được xóa (nghĩa là ở mức logic 0) khi reset và có thể được đọc hoặc ghi vào bởi chương trình. Các địa
chỉ I/O của trạng thái là $3F (địa chỉ bộ nhớ là $ŠF).
5 Š 4 3 £ Ì
7 ö
b đo Ho n À VN À ÁAI I VẤc SEO
BI Hư HIN Bì NW bTy BẠN ưW
_ LUẬN ÁN TÓT NGHIỆP
=—_——
Bít 7 —1I : Cho phép ngắt toàn cục (Global Interrupt Enable). Việc thiết lập bit này cho phép. tất cả các ngắt. Việc đặt bit này sẽ câm tất cả các ngắt, bit này được xoá bởi phần cứng và được set lại bởi lệnh RETI hoặc được set và xoá bởi phân mềm qua lệnh S EI và CHI.
| Bit 6 — T : Bit copy Storage. Được sử dụng với lệnh nạp b BLD ( bít load)
| và lưu trữ bit BST (bit store) để nạp và lưu trữ các bít từ một thanh ghi vào một
thanh ghi khác.
| Bit 5 —- H : Haft Carry Flag. Chỉ báo cho thấy sự mang sang (nhớ) một nửa | trong một sô lệnh sô học.
Bit 4— S : Cờ dấu (Sign Flag). Bít này là kết quả EX-OR (hoặc loại trừ) giửa cờ phủ định N và cờ tràn (Overflow Flag).
Bit 3 — V : Cờ tràn lấy bù nhị phân.
Bit 2 —N : Cờ phủ định (Negative Flag).
Bit 1 — Z : Cờ số không (Zero Flag). Chỉ báo một kết quả bằng 0 sau khi thực
hiện một sô phép tính số học hoặc logic.
Bit 0 - C : Cờ mang sang (Carry Flag), báo cáo sự mang sang trong phép
tính sô học hoặc logic.
* Trong C, để cho pháp/cấm ngắt toàn cục dùng lệnh sau : fasm (“seï”) : cho phép ngất toàn cục.
#asm (“eli") : cấm ngắt toàn cục.
Tổ chức bộ nhớ data SRAM trong AVR : 32 thanh ghi đa mục đích, 64 thanh
ghi J/O và 1024 bytes data Sram nội.
> Thanh ghi con trồ ngăn sếp SP (Stack Pointer) :
độ l4 1 1] _đÓ 5
| SP | SPI4 | S13 | SPI | SPIi | SƯIO | S29 cÔ S5 cj SH seL
#
Thanh ghi này có độ rộng bằng một byte đối với các vi xử lý có đến 256 byte
bộ nhớ SRAM và bằng 2 byte (được goi là SPH và SPL) đối với các bộ vi xử lý có bộ nhớ SRAM nhiều hơn 256 byte. Thanh ghi này được sử dụng để chỉ đến vùng bộ nhớ SRAM ở đỉnh của ngăn xếp. Ngăn xếp được sử dụng để lưu trử địa
chỉ mà bộ vi xử lý trả trở lại trong thời gian một ngắt và gọi thủ tục (subroutine). Bởi vì SP được khởi tạo về $00 (hoặc $0000 đối với SP 2 byte) khi reset, nên
chương trình người dùng cần khởi tạo SP cho thích hợp, bởi vì địa chỉ bắt đầu của bi65 nhớ SRAM không phải là $00 mà $60. Ngăn xêp sắp xếp theo một trình tự từ trên xuống (grows down) trong địa chỉ bộ nhớ, nghĩa là, việc đây một giá
Ị
|
BH GEN NH-Ọ-H--ỊẸỌ-Ọ-Ọ-Ọ-Ọ-Ọ-GGGG-ỚGGTGGTGGTGTTTTẸTẸTỌ-ỌỌỚỌGỌỌỌỌAABBBRDAABaAaAaannnnnnnnuunơnnggggggợn
.SVTH: Thịnh Văn Minh — Lê Minh Hiển Trang 68
LUẬN ÁN TÓT NGHIỆP CBHD: Th.S Trần Đình Huy
¡ Tmm=——————
| trị lên trên ngăn xếp sẽ làm cho SP giảm đi một giá trị. Khi kéo một giả trị ra khỏi ngăn xêp thì SP sẽ tăng thêm một giá trị.
> Thanh ghi che ngặt chunø GIMSK :
| Thanh ghi GIMSK {Gencral Interrupt maskregister) được sử dụng để cho | phép hoặc cấm các ngắt ngoài riêng biệt, cụ thể bằng cách đặt và đặt lại bit tương ứng có liên quan. Tuy nhiên, ngắt cần được phục vụ, bít I trên thanh ghi
trạng thái (SERG), cũng cần phải được đặt thành “1”.
> Thanh ghi cờ ngắt chung GIFR :
7 8 5 4 3 2 1 0
NGNIE-IORNIZN NEENE NGON BEENE REEN EEINN
TW BAN, TW R ñ ít
Các bịt trong thanh ghỉí GIEFR (General Interrupt Flag Register) chỉ báo cho thấy nếu một cờ ngắt đã xuất hiện. Nếu một cờ ngắt xuất hiện thì cờ INT tương ứng trong GIFR được đặt thành mức “1”. Nếu như ngắt được phục vụ (điều đó
xây ra nêu bit I và bit INT tương ứng trong thanh ghi GIMSK là “1”) thì cờ được đặt lại. Cờ cũng có thê đặt lại (Reset) băng cách ghi giá trị logic “I” vào nó.
> Thanh ghi điều khiển toàn bộ vị điều khiến MCUCR :
Thanh ghi MCUCR : bao gồm các bit điều khiển nguồn.
| 7 8 kả 4 3 # } 6
NHI NGIEIRLUIIIRELORNGIRNLIOENGCIRNG.NE, NW THẬN RFWN Hy BẠN FW BẠN RửM
Bits 7, 5, 4 - SM2..0: chọn Sleep Mode
Bảng 2.1 : Chọn chế độ cho AVR
SM2 §M1 SMũ Sleep Mode
| 9 ldle
9 ADC Noise Reducbon | Power-down | Power-down Power-save 1 9 Reserved Ị ‡ Reserved 1 9 Siandtyit † 1 1 Extended Siandbyt?
Bit 6 —- SE: Sleep Enable.
LUẬN ÁN TÓT NGHIỆP
Các bịt trong thanh ghi điều khiển toàn bộ vi điều khiển thường được viết tắt là MCUCR (MCU Control Register) cho phép. điều khiển toàn bộ vi điều khiển. Chức năng ghi này bao gồm việc điều khiển để cho phép/ cắm truy nhập bộ nhớ SRAM ngoài, chế độ ngủ, và điều khiển độ nhạy cảm (sense) ngắt ngoài.
> Thanh ghi trang thái bộ vỉ xử lý MCUCSR :
7 8 5 kj S 2 1 &
Ï JTĩ0 Ị G2 † ~ Ị jTRƑ T MDRT RE T EXITHE ] TH ] mcucsn
R/W ñAw R NW Ra TW Tựw Rới
Bịt 7 - JTD (TTAOG Interface Disable) : khi bit này bằng 0 thì giao điện JTAG được cho phép nêu JTAGEN Fuse được lập trình.
Bit 4— JTRF (TTAG Reset Flag) : bít này được set nếu AVR được Reset bởi JTAG.
Thanh ghi trạng thái MCU (MCU status register) cung cấp thông tin về nguồn của tín hiệu reset. Thanh ghi MCUSR có chứa 2 bit, bít này chỉ cho thấy nguôn của tín hiệu reset như được chỉ ra trong bảng :
Bảng 2.2 - Chọn chế độ cho WatchdogTimer CS02 CS01 Mô tả
0 0 Reset khi cấp điện áp nguồn nuôi.
0 1 Dự trữ
1 0 Reset ngoài
1 1 Reset Watchdog
> Thanh ghi dữ liệu vào/ra UART :
Các thanh ghi đữ liệu vàora UART trên thực tế là 2 thanh ghi tách biệt nhau,
nhưng dùng chung một địa chỉ vật lý. Khi dữ liệu được ghi vào địa chỉ này, nó ghi vào thanh ghi truyền đữ liệu, và khi đọc từ địa chỉ này nó đọc từ thanh ghi nhận đữ liệu
- Thanh ghỉ trụng thái UART (UCSR4):
7 8 § 4 3 2 1 ọ
EREE_-TOTC | u6n TT TE [ĐH | TẾ | UX | MCM | UCSHA R Tư " R R n TY TW R Tư " R R n TY TW
9 0 ‡ 9 ũ Đ 2 8
Thanh phi trạng thái UART được sử dụng để giám sát trạng thái của UART.
Các bit có ý nghĩa của thanh ghi trạng thái UART là:
l
Í LUẬN ÁN TÓT NGHIỆP CBHD: Th.S Trần Đình Huy
—=—ằỀề$ẼƑ—————
Bit 7 — RXC : UART Receive Complete. Khi bit này được đặt thành “lL” có nghĩa là UART đã nhận một byte dữ liệu từ thanh ghi dịch bộ nhận. RXC được xóa băng việc đọc UDR.
Bịt 6 - TXC : UART Transmit Complete. Bịt này được đặt thành “I” khi
một byte dữ liệu đầy đủ bao gồm bit stop được dịch chuyê ến ra từ thanh ghi dịch bộ truyền và không có đữ liệu mới ghi vào UDR. TXC bị xóa thanh “0” bằng phần cứng bằng cách thực thi trình xử lý (handler) ngắt tương ứng hoặc bằng phần mềm bằng cách ghi giá trị “1” vào bit TXD.
Bit 5 — UDRE : UART Data Register Empty, bit này được đặt. thành “1”, khi dữ liệu đã ghi vào _UDR được truyền đến thanh ghi dịch bộ truyền. Bít này chỉ cho thấy UDR đã sẵn sang để nhận một byte mới.
Bit 4 - FE : Framing Error (lỗi khung truyền). Bit này được đặt thành “l”, khi bít stop được đưa đến có giá trị bằng “0”. Bit lỗi FE bị xóa khi bịt stop được
đưa đến có giá trị băng “I””.
Bit 3 — OR : Overrun Error (lỗi tràn). Bit này được đặt thành “1”, khi một đữ liệu trong UDR không được đọc trướckhi một dữ liệu mới được dịch chuyển vào UDR từ thanh ghi dịch bộ phận UART.