Phần mô tả

Một phần của tài liệu Các họ vi điều khiển thế hệ mới (Trang 34 - 47)

c. Nhóm lệnh logic:

1.2.2. Phần mô tả

AT89C55WD là một vi điều khiển 8bit CMOS có công suất nguồn tiêu thụ thấp, hiệu suất cao Với 20K byte Flash ROM lập trình được và 256 byte RAM. Thiết bị được sản xuất sử dụng công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmel và tương thích với tập lệnh và các chân ra của tiêu chuẩn công nghiệp 80C51 và 80C52. Flast trên chíp này cho phép bộ nhớ chương trình được người dùng chương trình hóa bằng lập trình bộ nhớ không mất nội dung quy ước. Bằng việc kết hợp một CPU linh hoạt 8- bít với Flash trên một chíp đơn thể, Atmel AT89C55WD là một máy vi tính mạnh cung cấp một giải pháp có hiệu quả về chi phí và rất linh hoạt dối với nhiều ứng dụng diều khiển nhúng.

AT89C55WD có các đặc trưng chuẩn sau đây: 20 K byte Flash, 256 byte RAM, 32 đường nhập/xuất, ba bộ định thời/bộ đếm 16-bit, sáu vectơ, cấu trúc ngắt hai mức, một cổng nối tiếp song công hoàn toàn (full-duplex serial), mạch dao động và tạo xung clock trên chíp. Ngoài ra, AT89C55WD được thiết kế với lôgic anh cho hoạt đông có tần số giảm xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các thiết bị định thời/đếm, cổng nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao động cung cấp xung clock nhằm vô hiệu hóa các hoạt động khác của chíp cho đến khi có Reset cứng tiếp theo.

Hình 1.18. Sơ đồ chân AT89C55WD

Mô tả các chân Port 1

Port 1 là một port nhập/xuất 8- bit hai chiều có các điện trở kẻo lên bên trong. Khi các logic 1 được ghi lên các chân của port 1, các chân này được kéo lên mức cao bởi điện trở kéo lên bên trong và có thể được sử dụng như là các ngõ vào. Khi làm nhiệm vụ phu nhập các chân của port 1 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng cho các điện trở kéo lên bên trong.

Ngoài ra, P1. 0 và P1. 1 có thể được định cấu hình để là đầu vào đếm ngoài (P1.0/ T2) là của bộ định thời/đếm 2 và đâu vào trigger ( P1.1/T2EX) của bộ định thời/đếm 2, theo thứ tự cho trong bảng sau:

Part Pin Alternate Functions

P1.0 T2 (external count input to Timer/Counter 2), clock-out

P1.1 T2EX (Timer/Counter 2 capture/reload trigger and direction control) Porl 1 cũng nhận byte địa chỉ thấp trong thời gian lập trình cho Flash và kiểm tra chương trình.

RST: Ngõ vào reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ dao động hoạt động sẽ reset AT89C55WD. Chân này điều khiển mức cao cho 98 chu kỳ dao động sau khi Watchdog hết giờ. Bit DISRTO trong SFR AUXR (địa chỉ 8 EH) có thể được dùng để vô hiệu hóa đặc tính này. Trong trạng thái mặc định của bit DISRTO, RESET HIGHT ở ngoài đặc tính được cho phép.

XTAL1: Ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõ vào đến mạch tạo xung clock bên trong chíp.

Những thanh ghi chức năng đặc biệt

Chú ý răng không phải tất ca địa chỉ đang được sử dụng, và những địa chỉ nhàn rỗi có thể không được thực hiện trên chíp. Những truy nhập đọc tới các địa chỉ này sẽ nói chung trả lại dữ liệu ngẫu nhiên, và những truy nhập ghi không hiệu quả. Phần mềm người dùng không nên ghi mức logic 1 tới những vùng này, chúng có thể được dùng cho những sản phẩm trong tương lai xuất hiện các đặc tính mới. Trong trường hợp đó, các giá trị reset hay không hoạt động luôn = 0.

Thanh ghi định thời 2: Các bộ điều khiển và trạng thái cho bộ định thời 2 được chứa đựng trong các thanh ghi T2CON và T2MOD. Cặp thanh ghi (RCAP2H, RCAP2L) là các thanh ghi Thu nhận/Nạp lại cho bộ định thời 2 trong chế độ Thu nhận 16- bít hay chế độ Nạp lại tự động 16- bít.

Biểu tượng Chức năng

TF2 Cờ tràn của bộ định thời 2. Cờ này được sét băng phân cứng và được xóa băng phần mềm. TF2 không thể được sét khi RCLK=l hoặc ICLK=1

EXF2 Cờ ngoài của bộ định thời 2. Cờ này được sét khi có sự nạp lại hoặc thu nhận tạo ra bởi chuyển trạng thái trên chân T2EX và EXEN2=l. Khi ngắt do bộ định thời 2 được phép, EXF2-1 sẽ làm cho CPU trỏ tới trình phục vụ ngắt định thời. EXF2 phải được xóa bằng phần mềm.

RCLK Clock thu. Khi được set.port sử dụng các xung tràn của bộ định thời 2 làm clock thu trong các chế độ 1 và 3. RCLK=1 gây ra tràn bộ định thời 1 để được sử dụng làm clock thu.

TCLK Clock phát. Khi được set port nối tiếp sử dụng các xung tràn của bộ định thời 2 làm clock phát trong các chế độ 1 và 3. TCLK=0 gây ra tràn bộ định thời 1 để được sử dụng làm clock phát.

EXEN2 Cờ cho phép ngoài của bộ định thời 2. Khi được sét cờ này cho phép thu nhận hoặc nạp lại khi có sự chuyên trạng thái trên chân T2EX nếu bộ định thời 2 hiện không được dùng làm xung clock cho port nối tiếp.

TR2 Bit cho phép hoặc không cho phép bộ định thời 2 hoạt động. Bit này diều khiển START/STOP bộ định thời 2. Logic 1 của bit này khởi động bộ định thời.

C/T2 Chọn chế độ định thời hay đêm cho bộ định thời 2. C/T2=0 cho định thời bên trong, CT2=1 cho đếm sự kiện bên ngoài.

CP/RL2 Cờ thu nhận/nạp lại. Khi cờ này được set việc thu nhận xảy ra khi có chuyển trạng thái âm trên chân T2EX nếu EXEN2=1. Khi được xóa việc tự nạp sẽ lại say ra khi tràn bộ nhớ định thời 2 hoặc có chuyển 1 trạng thái trên chân T2EX khi EXEN2=1. Khi RCLK hoặc TCLK=1, bit này được bỏ qua và bộ định thời phải tự nạp lại khi tràn.

Biểu tượng Chức năng

-- Không được cấp, dành cho tương lai T2OE Bit cho phép đầu ra bộ định thời 2

DCEN Khi thiết lập, bit này cho phứp bộ định thời 2 được định cấu hình như một bộ đếm Tiến/ Lùi

Các thanh ghi ngắt: Thanh ghi cho phép ngắt IE (Interrupt Enable) làm cho các bit có thể ngắt riêng rẽ. Trong thanh ghi ưu tiên ngắt IP (Interrupt Priority) có 2 mức ưu tiên có thể thiết lập cho mỗi trong 6 nguồn ngắt.

Thanh ghi con trỏ dữ liệu kép (Dual Data Pointer Registers): Để tạo điều kiện thuận lợi cho truy nhập cả bộ dữ liệu trong và ngoài 2 dãy thanh ghi con trỏ dữ liệu được cung cấp: DP0 ở vùng địa chỉ 82H-83H và DP1 ở 84H-85H. Bit DPS=0 trong SFR AUXR1 chọn DP0 và DPS=1 chọn DP1. Người sử dụng cần phải luôn luôn khởi tạo bit DPS tới giá trị thích hợp trước khi truy cập thanh ghi con trỏ dữ liệu tương ứng.

Cờ tắt nguồn điện (Power Off Flag ): Cờ tắt nguồn điện (POF) được định vị lại bổ 4 (PCON.4) trong PCON SFR. POF được thiết lập tới "l" trong thời gian nguồn năng. Nó có thề được thiết lập và thiết lập lại dưới điều khiển phần mềm và không bị anh hương bởi Reset.

AUXR: Thanh ghi hỗ trợ (Auxilliary Register)

AUXR Địa chỉ = 8EH Giá trị khởi tạo=XXX00XX0B Not Bit Addressable

- - - WDIDLE DISRTO - - DISALE

Bit 7 6 5 4 3 2 1 0

- Dành riêng cho sự mở rộng trong tương lai DISALE Cho phép/không cho phép ALE

0 ALE được phát hiện ra tại tần số = 1/6 tần số của mạch dao động 1 ALE được hoạt động trong 1 lệnh MOVX hoặc MOVC

DISRTO Cho phép/không cho phép Reset đầu ra DISRTO Chế độ họat động

0 chân Reset được đặt tới mức cao sau đầu ra định thời WDT 1 Chân Reset chỉ là đầu vào

WDIDLE Cho phép/không cho phép WDT trong chế độ IDLE WDIDLE Chế độ hoạt động

0 WDT tiếp tục đếm trong chế độ IDLE 1 WDT tạm dừng đếm trong chế độ IDLE

Tổ chức bộ nhớ

Thiết bị MCS-51có không gian bộ nhớ riêng dành cho chương trình và dữ liệu.

Tối da 64 Kbytes cua bộ nhớ chương trình và dữ liệu ngoài có thể được định địa chỉ.

B nh chương trình

Nếu chân EA được kết nối với GND, tất cả các chương trình định sẵn được hướng tới bộ nhớ ngoài. Trong AT89C55WD, nếu EA được kết nối tới VCC, các chương trình tìm nạp từ địa chỉ 0000H đến 4FFFH được hướng tới bộ nhớ trong và tìm nộp từ địa chỉ 5000H tới FFFFH hướng tới bộ nhớ ngoài.

B nh d liu

AT89C55 bổ sung -56 bytes RAM trên chíp, 128 byte cao chiếm giữ 1 không gian địa chi song song tới các thanh ghi chức năng đặc biệt. Có nghĩa là 128 bytes cao có không gian địa chỉ của SFR nhưng không gian vật lý thì tồn tại riêng so đi không gian SFR.

Khi 1 lệnh truy cập tới 1 vùng nhớ ngoài vượt quá địa chỉ 7FH, chế độ địa chỉ là được sử dụng trong 1 lệnh chỉ rõ CPU truy cập tới 128 byte cao của không gian RAM hay SFR. Những lệnh đó sử dụng địa chỉ trực tiếp truy cập không gian SFR. Ví dụ lệnh định địa chỉ trực tiếp sau truy cập không gian SFR tai vùng nhớ 0A0H.

Những lệnh đó sử dụng địa chỉ gián tiếp để truy cập tới 128 byte cao của RAM. Ví dụ, lệnh định địa chỉ gián tiếp sau: tại R0o chứa 0A0H, truy cập tới byte dữ liệu tai địa chỉ 0A0H, đúng hơn P2 (của địa chỉ 0A0H)

MOV @R0, ≠data

Chú ý rằng các thao tác ngăn xếp là ví dụ của định địa chỉ gián tiếp, vì thế 128 byte cao của RAM dữ liệu có thể dùng như không gian ngăn xếp.

Định thời bảo vệ phần cứng (One-time Enabled with Reset-out)

WDT được mong đợi như 1 phương pháp phục hồi tại vị trí mà CPU quản lý các upset phần mềm. WDT gồm có 1 bộ đếm 13 bit và WatchDog Timer Reset (WDTRST) SFR. The WDT được mặc định để vô hiệu hoá từ exiting reset. Để có WDT, 1 người dùng phải ghi 01EH và 0E1H đúng trình tự tới thanh ghi WDTRST (vùng 0A6H của SFR). Khi WDT được cho phép, nó sẽ gia tăng từ số mọi chu trình máy trong khi máy tạo dao động đang chạy. WDT time-out period phụ thuộc tần số clock ngoài. Không có cách nào để vô hiệu hóa WDT trừ khi reset hoàn toàn (reset phần cứng hoặc reset tràn WDT) Khi WDT tràn bộ nhớ, nó sẽ điều khiển một xung ra RESET HIGH tại chân RST.

Sử dụngWDT

Để cho phép WDT, người sử dụng phải ghi 01EH và OE1H trong trình tự tới thanh ghi WDTRST (SFR vùng 0A6H). Khi WDT được cho phép, người sử dụng cần phục vụ nó băng cách ghi 01EH và 0E1H tới WDTRST để tránh 1 WDT tràn bộ nhớ. Bộ đếm 13 -bit tràn khi nó tới 8191 (1FFFH), và khi đó sẽ Reset thiết bị. Khi WDT được cho phép nó sẽ gia tăng mọi chu kì máy trong khi bộ dao động đang chạy. Điều đó có nghĩa là người sử dụng phải khởi chạy lại WDT tại tối thiểu mọi 8191 chu kì máy Để khởi chạy lại WDT người sử dụng phải phải ghi 01EH và 0E1H tới WDTRST. WDTRST là 1 thanh ghi chỉ đọc. Bộ đếm WDT không thể được đọc hay ghi. Khi WDT tràn bộ nhớ, nó sẽ tạo ra 1 xung RESET đầu ra ở chân RST. Thời hiệu xung Reset là 98xTOSC, tại đó TOSC=1/FOSC. Để sử dụng WDT tốt nhất, nên phục vụ nó trong những đoạn mã mà sẽ định kì thực hiện trong khoảng thời gian cần để ngăn 1 Reset WDT.

WDT trong lúc Nguồn giảm và Nghỉ

Trong chế độ nguồn giảm, mạch dao động ngừng, có nghĩa là WDT cũng ngừng. Khi nguồn giảm người dùng không cần phục vụ WDT. Có 2 cách để thoát khỏi chế độ nguồn giám: bằng Reset phần cứng hoặc theo 1 mức kích hoạt ngắt ngoài mà nó làm cho có thể đi vào chế độ nguồn giảm. Khi thoát chế độ nguồn giảm bằng Reset phần cứng, sự phục vụ WDT cần diễn ra bình thường

giống như khi Reset AT89C55WD. Thoát chế độ Nguồn giảm bằng ngắt là 1 cách khác. Ngắt được giữ ở mức thấp đủ dài để mạch dao động ổn định. Khi ngắt được đẩy lên mức cao, ngắt được phuc vụ. Để ngăn WDT từ Reset thiết bị trong khi chân ngắt dược giữ ở mức thấp, WDT không được bắt đầu đến tận khi ngắt được đẩy lên mức cao. Nó được đưa ra để WDT được Reset trong quá trình phục vụ ngắt cho ngắt được dùng để thoát khỏi chế độ nguồn giảm.

Để đảm bảo WDT không tràn bộ nhớ trong trạng thái thoát chế độ nguồn giảm, tốt nhất là Resct WDT ngay trước khi vào chế độ nguồn giảm.

Trước khi vào chế độ IDLE, bit WDIDLE trong SFR AUXR được sử dụng để quyết định WDT có tiếp tục đếm hay không nếu có thể. WDT giữ đếm trong IDLE (bit WDIDLE =0) giống như trạng thái mặc định. Để ngăn AT89C55WD khởi động lại WDT trong chế độ IDLE, người sử dụng phải luôn cài đặt một bộ định thời để định kì thoát khỏi IDLE: phục vụ WDT, và vào lại chế độ IDLE.

Với bit WDIDLE đã cho phép. WDT sẽ dừng đếm trong chế độ IDLE và phục hôi lại đếm trên kết thúc từ IDLE.

UART: UART trong AT89C55WD vận hành cùng cách với UART trong AT89C51 và AT89C52.

Bộ định thời 0 và Bộ định thời 1

Bộ định thời 0 và bộ định thời 1 trong AT89C55WD hoạt động giống như bộ định thời 0 và bộ định thời 1 trong AT89C51 và AT89C52.

Bộ Định Thời 2

Bộ định thời 2 là một bộ Đếm/định thời có thể hoạt động định thời hoặc đếm một sự kiện. Kiểu hoạt động được chọn bằng bit C/T2 trong SFR T2CON. Bộ định thời 2 có 3 các độ hoạt động: thu nhận: tự nạp lại, tạo ra tốc độ baud, tốc độ đếm bằng 1/12 tần số của mạch dao động.

Các chế độ hoạt động của bộ định thời 2

RCLK+TCL CP/RL2 TR2 Chế Độ

0 0 1 Nạp tự động 16-bit

0 1 1 Thu nhân 16-bit

1 X 1 Tạo tốc độ Baud

X X 0 Tắt

Trong chức năng đếm. thanh ghi được tăng một trị số trong đáp ứng chuyển 1 thành 0 trong chân đầu vào bên ngoài hoạt động đúng của nó, T2. Trong chức năng này đầu vào bên ngoài lấy mẫu trong quá trình S5P2 của mọi chu kì máy.

Khi mẫu được đưa lên mức cao ở một chu kì và đạt mức thấp trong chu kì tiếp theo thì đếm được tăng 1 giá trị. Giá trị đếm mới xuất hiện trong thanh ghi trong S3P1 của chu kì sau chu kì mà sự chuyển tiếp được phát hiện. Từ 2 chu kì máy (24 chu kì mạch dao động) được yêu cầu để thừa nhận chuyển tiếp 1 thành 0, tốc độ đếm tối đa là 1/24 tần số mạch dao động. Đế đảm bảo 1 mức độ nhất định được lấy mẫu tối thiểu 1 lần trước khi thay đổi, mức độ đó nên được giữ trong tối thiểu 1 chu kì máy trọn vẹn.

Chếđộ Thu nhn (Capture)

Trong chế độ thul nhận, 2 tùy chọn được chọn bởi EXEN2 trong T2CON. Nếu EXEN2=0 bộ định thời 2 là 1 bộ đếm hay định thời 16-bit thiết lập bit TF2 trong T2CON khi tràn bộ nhớ. Bit đó có thể được dùng để tạo ra 1 ngắt. Nếu EXEN2=I, bộ định thời 2 thực thi cùng hoạt động ,nhưng chuyển đổi 1 ´ 0 tại đầu vào ngoài T2EX cũng gây ra giá trị hiện tại TH2 và TL2 để được thu nhận lần lượt trong RCAP2H và RCAP2L. Ngoài ra, sự chuyển đổi tại T2EX cũng là nguyên nhân khiến bit EXF2 trongT2CON được thiết lập. Bit EXF2 cũng như TF2 có thể tạo ra 1 ngắt.

Hình vẽ minh họa:

Chếđộ T np li (Bđếm tiến hoc lùi )

Bộ định thời 2 có thể được lập trình để đếm tiến hoặc lùi khi đã định cấu hình trong chế độ tự nạp lại 16-bit.Tính năng này được gọi tới bằng bit DCEN (Down Cunter Enable) được định vị trong SFR T2MOD. Trong lúc Reset, bit DCEN được sét tới 0 vì thế bộ định thời 2 sẽ mặc định đếm tiến. Khi DCEN được set, bộ định thời 2 có thể đếm tiến hoặc lùi, phụ thuộc giá trị của chân T2EX.

Hình vẽ minh họa: DCEN=0

Trên hình vẽ trên ta thấy bộ định thời 2 tự động đếm tiến khi DCEN=0. Trong chế độ này, 2 tùy chọn được chọn bởi bit EXEN2 trong T2CON. Nếu

Một phần của tài liệu Các họ vi điều khiển thế hệ mới (Trang 34 - 47)

Tải bản đầy đủ (PDF)

(105 trang)