MỤC LỤC
MỤC LỤC................................................................................................................................2
...............................................................................................................................................2
LỜI NÓI ĐẦU..................................................................................................................2
Chương I...................................................................................................................................4
CƠ SỞ LÝ THUYẾT...............................................................................................................4
I.1 HỌ VI ĐIỀU KHIỂN AVR............................................................................................4
I.1.1 GIỚI THIỆU CHUNG............................................................................................4
I.1.1.1 Giới thiệu AT90S8535...................................................................................4
I.1.1.2 Tính năng của AT90S8535..............................................................................5
I.1.3 SƠ ĐỒ KHỐI VÀ SƠ ĐỒ CHÂN TÍN HIỆU CỦA AVR....................................7
I.1.3.1 Sơ đồ chân tín hiệu:......................................................................................7
I.1.3.2 Sơ đồ khối chức năng......................................................................................8
I.1.4 BỘ NHỚ CỦA AVR :..........................................................................................12
II.1.5 CẤU TRÚC NGẮT :..........................................................................................14
I.1.5.1 Chức năng điều khiển ngắt :.........................................................................14
I.1.5.2 Tổ chức ngăn xếp trong AVR:......................................................................15
I.1.6 GHÉP NỐI NỐI TIẾP :........................................................................................15
I.1.7 MỘT SỐ LỆNH CƠ BẢN...................................................................................17
I.1.8 CẤU TRÚC 1 CHƯƠNG TRÌNH ĐIỀU KHỂN AVR......................................18
I.2 VI MẠCH VÀO RA ĐA NĂNG PPI – 8255A..........................................................19
I.2.1 GIỚI THIỆU PPI – 8255 .....................................................................................19
I.2.2 SƠ ĐỒ KHỐI VÀ SƠ ĐỒ CHÂN TÍN HIỆU PPI-8255....................................19
I.2.2.1 Sơ đồ khối :( hình 3) ..................................................................................19
I.2.2.2 Sơ đồ chân tín hiệu :( hình 4)........................................................................20
I.2.3 NGUYÊN LÝ HOẠT ĐỘNG CỦA 8255A.........................................................21
I.2.3.1 Chức năng điều khiển ngắt :.........................................................................22
I.2.3.2 Các chế độ hoạt động :.................................................................................22
I.2.4 CÁC BƯỚC VIẾT CHƯƠNG TRÌNH...............................................................23
Chương II...............................................................................................................................24
THỰC NGHIỆM - GHÉP NỐI AVR VÀ 8255....................................................................24
I.1.1 GIỚI THIỆU CHUNG
Ngày nay những ứng dụng của vi điều khiển đã đi xâu vào trong đời sống
sinh hoạt và sản xuất của con người. Có một thực tế là hầu hết các thiết bị điều
khiển, thiết bị tự động, thiết bị điện dân dụng bây giờ đều có sự góp mặt của các vi
điều khiển và vi xử lý. Ứng dụng của vi điều khiển đã làm cho các thiết bị trở lên ổn
định hơn hoạt động tốt hơn, ổn định hơn.
Trên thị trường có rất nhiều họ vi điều khiển: họ 8051 của Intel, 68HC11 của
Motorola, Z80 của hãng Eilog, PIC của hãng Microchip, H8 của Hitachi, vv.. và
cuối cùng là AVR của hãng Atmel. AVR là họ Vi điều khiển khá mới trên thị
trường cũng như đối với người sử dụng. Ðây là họ VÐK được chế tạo theo kiến trúc
RISC ( Reduced Intruction Set Computer) có cấu trúc khá phức tạp. Ngoài các tính
năng như các họ VÐK khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho
người thiết kế và lập trình. Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu
hết khi cần lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc
cao HLL ( Hight Level Language) để lâp trình ngay cả với loại chip xử lí 8 bit trong
dó ngôn ngữ C là ngôn ngữ phổ biến nhất. Tuy nhiên khi biên dịch thì kích thước
đoạn mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly. Hãng Atmel nhận thấy rằng
cần phải phát triển một cấu trúc đặc biệt cho ngôn ngữ C để giảm thiểu sự chênh
lệch kích thước mã đã nói trên. Và kết quả là họ vi điều khiển AVR ra đời với việc
làm giảm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng
trong 1 chu kỳ máy với 32 thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi điều
khiển khác từ 4 đến 12 lần. Vì thế nghiên cứu AVR là một đề tài khá lý thú và giúp
cho sinh viên biết thêm một họ vi điều khiển vào loại mạnh nhất hiện nay
I.1.1.1 Giới thiệu AT90S8535
AT 90S8535 là bộ vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa trên
kiến trúc RISC. Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì
nhịp xung, vì thế tốc độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số 1
Mhz. Vi điều khiển này cho phép người thiết kế có thể tối ưu hoá mức độ tiêu thụ
năng lượng mà vẫn đảm bảo tốc độ xử lý. Phần cốt lõi của AVR kết hợp tập lệnh
phong phú và số lượng với 32 thanh ghi làm việc đa năng. Toàn bộ 32 thanh ghi đều
một trong những chíp trong họ AVR nhưng đời cũ hơn.
Bảng 1 :
Ðặc tính AT90S8535 AT89C51
Flash ROM 8K Byte có thể lập trình trên
hệ thống
- 4 KB
EEPROM - 512 byte - Không
RAM nội - 512 byte SRAM - 128 byte ram
Bộ Timer - 2 bộ timer 8 bit
- 1 bộ timer 16 bit
- 1 bộ watchdog timer
- 2 bộ timer 16 bit
: Bộ ADC - 1 bộ ADC 8 kênh 10 bit - Không
Giao thức truyền nối
tiếp chủ/ tớ
- Có - Không
Bộ PWM – Bộ điều chế PWN 8-, 9- và
10- bit
- Không
Bộ truyền nối tiếp
UART
- Có 2 chế độ - Có 4 chế độ
Bộ so sánh tương tự - Có - Không
Nguồn ngắt - Có 17 nguồn ngắt - Có 6 nguồn ngắt
Tần sô hoạt động - 0 ÷ 8 Mhz - ( 0 ÷ 24 Mhz)/ 12
Ðiện áp tiêu thụ Thạch anh 4 Mhz , VCC=
3V:
- Trạng thái tích cực : 6.4mA
– Trạng thái rỗi : 1.9mA
– Trạng thái Power Down : <
14. PD4 (OC1B)
15. PD5 (OC1A)
16. PD6 (ICP)
40. VCC
39. PA 0
38. PA 1
37. PA 2
17. PD7 (OC2)
18. XTAL1
19. XTAL2
20. GND
28. PC7
27. PC6
26. PC5
25. PC4
24. PC3
23. PC2
22. PC1
21. PC0
36. PA 3
35. PA 4
34.. PA 5
33. PA6
32. PA7
31. AREF
30. AGND
29. AVCC
PB0: đưa vào time/counter0 từ bộ đếm bên ngoài
PB1: đưa vào time/counter1 từ bộ đếm bên ngoài
PB 2 (AIN0) : đưa vào bộ so sánh tương tự gtrị rõ
ghi đó bao gồm: SREG thanh ghi trạng thái, SP thanh ghi con trỏ ngăn xếp, thanh
ghi che ngắt GIMSK, thanh ghi cờ ngắt GIFR, thanh ghi điều khiển MCUCR,
thanh ghi trạng thái bộ xử lý MCUSR, thanh ghi TIMER/COUNTER0 TCNT0,
thanh ghi điều khiển TIMER/COUNTER1A TCCR1A, thanh ghi điều khiển
TIMER/ COUNTER1B TCCR1B, thanh ghi TIMER/COUNTER1, các thanh ghi
so sánh lối ra bộ OCR1AH, OCR1AL, các thanh ghi so sánh lối vào OCR1BH,
OCR1BL, ICR1H, ICR1L, thanh ghi bộ định thời Watchdog WDTCR, thanh ghi
địa chỉ bộ nhớ EEPROM EEAR, thanh ghi dữ liệu bộ nhớ EEDR, mỗi cổng A, B,
C, D có 3 thanh ghi: hướng dữ liệu, dữ liệu, chân dữ liệu PIN, thanh ghi dữ liệu,
trạng thái, điều khiển cổng truyền dữ liệu nối tiếp SPI, và của cổng song song
UART , thanh ghi tốc độ của UART, thanh ghi trạng thái, điều khiển của bộ so sánh
tương tự ACSR.
ANALOG MUX
ADC
TIME/
COUNTER 8
GENERAL
PUSPOSE
REGISTER
+
-
RESET
8 BIT DATA BUS
PORT A DRIVERS
PORT A DRIVERS
DATA DIR REG PORT ADATA REGISTER PORT
A
PORT C DRIVERS
PORT C DRIVERS
DATA DIR REG PORT
Y
Z
ALU
STATUS REGISTER
UARTPROGRAMMING LOGIC SPI
PORT B DRIVERS
PORT B DRIVERS
DATA DIR REG
PORT B
DATA REGISTER
PORT B
PB0 - PB7
PORT D DRIVERS
PORT D DRIVERS
DATA DIR REG
PORT D
DATA REGISTER
PORT D
PDO-PD7
XTAL2
XTAL1
8 BIT DATA BUS
8 BIT DATA BUS
Avcc
AGND
AREF
Gnd
Vcc
PA0 - PA7 PC0 - PC7
− Các thanh ghi X, Y, Z là các thanh ghi được thêm vào các chức năng cho các
o Bit 3: Interupt enable khi bit I trên Sreg và bit EERIE trên thanh ghi điều
khiển có giá trị 1 thì EEPROM cho phép ngắt.
o Bit 2: Master write enable: khi bit này có gia trị 1 thì nó thiết đặt EEWE sẽ
viết dữ liệu vào EEPROM tại địa chỉ được chọn. Nếu EEMWE có giá trị 0
thì việc thiết lập EEWR sẽ không có hiệu lực.
o Bit 1: EEPROM Write Enable: là tín hiệu EEPROM cho phép ghi vào
EEPROM khi địa chỉ và dữ liệu được thiết lập chính xác. Bit EEWE cần
thiết lập để viết giá trị tới EEPROM. Bit EEMWE cần phải đặt ở mức logic 1
khi viết tới EEWE, nếu không sẽ không viết được tới EEPROM. Thủ tục khi
viết tới EEPROM qua các bước sau:
1. Đợi đến khi EEWE có giá trị 0.
2. Viết địa chỉ mới tới EEPROM tại thanh ghi EEARL và EEARH (theo
tuỳ chọn).
3. Viết dữ liệu mới vào thanh ghi EEDR cho EEPROM .
4. Đặt mức logic 1 tại bit EEMWE trong thanh ghi control EECR.
5. Trong 4 chu kỳ đồng hồ sau khi thiết đặt EEMWE, nó viết mức logic
1 tới EEWE.
Nếu có 1 ngắt giữa bước 4 và 5 sẽ làm thất bại quá trình viết tới EEPROM
do vậy nên làm sạch các cờ ngắt trong thời gian 4 bước cuối để tránh các vấn
đề này. Thời gian truy cập khi viết tiêu biểu là 2.5 ms tại VCC = 5v hoặc
4ms tại VCC = 2.77 V.
o Bit 0: EERE: EEPROM Read Enable: EEPROM báo cho phép đọc khi địa
chỉ được thiết lập đúng bên trong thanh ghi địa chỉ EEAR.
− Time/Couter: AT90S8535 cung cấp 3 bộ Time 2 bộ 8 bit và 1 bộ 16 bit. Có thể
tuỳ chọn đồng hồ không đồng bộ từ bộ tạo dao động ở bên ngoài. Bộ tạo dao
động đó có thể dễ dàng tạo dao động ở tần số 32768 Khz. Bộ Time/counter 0: là
1 bộ định thời đơn gian dùng để đếm tiến từ giá trị đếm đã được nạp vào. Bộ
đếm được tăng thêm 1 giá trị mỗi khi có thêm 1 tín hiệu đồng hồ ở lối vào của
nó.
− UART: AT90S8535 có thể truyền song công thu phát không đồng bộ với
khi 1 byte mới được ghi tới.
Thanh ghi điều khiển UART:
o Bit 7: Mức 1 sinh ra 1 ngắt Receive Complete Interupt. Khi bit RxC trong
USR là 1 thì cho phép các ngắt toàn cục.
o Bit 6: Mức 1 sinh ra ngắt Transmint Complete Interupt. Khi bit TxC trong
USR là 1 thì cho phép các ngắt toàn cục.
o Bit 5: Khi bit này là 1 và bit UDRE trong USR là 1 thì cho phép các ngắt
toàn cục.
o Bit 4: Mức 1 cho phép bộ nhận của UART nhận dữ liệu.
o Bit 3: Mức 1 cho phép bộ truyền dữ liệu được truyền dữ liệu.
o Bit 2: Mức 1 thông báo ký tụe truyền sẽ có 9 bit.
o Bit 1: Mức 1 thông báo bit thứ 9 đã được nhận.
o Bit 0: Mức 1 thông báo bit thứ 9 đã được truyền.
− Các cổng I/O: có 4 cổng I/O là các cổng 8 bit.
Port A: có 3 vùng nhớ địa chỉ được cấp phát cho port A. một cho thanh ghi dữ
liệu từ $ 1B -$3B, một cho thanh ghi hướng dữ liệu DDRA ($1A- $3A.) và chân
pin input của cổng A PINA ($19-$39). Có thể đặt giá trị riêng biệt cho tất cả các
chân của Port A. Mức điện áp 20mA cho output và thấp hơn cho input. Port A
có chức năng tuần tự giống như tín hiệu tương tự nhập cho bộ biến đổi ADC.
o Thanh ghi dữ liệu: Port A7- Port A0.
o Thanh ghi hướng dữ liệu DDA7 – DDA0
o Thanh ghi chân pin input Pin A7- Pin A0.
o Các chân của cổng A sẽ có chức năng in hoặc out khi các chân trên thang ghi
hướng dữ liệu và thanh ghi dữ liệu được thiết đặt khác nhau.
Tất cả các cổng vào/ra đều có 3 địa chỉ vào ra đi kèm với chúng. Ba địa chỉ cần để
đặt cấu hình cho các bit riêng biệt là lối vào hay ra ; địa chỉ khác được cần đến để
xuất ra dữ liệu tới các bit đó, địa chỉ thứ 3 được cần đến để đọc dữ liệu từ các chân
đó( hoặc tất cả) được cấu hình thành lối vào.
Bảng thiết đặt các bit DDAn và PortAn để có thể thiết đặt từng châncủa cổng
A là các cổng vào hặc ra: