Tải bản đầy đủ (.doc) (57 trang)

đồ án tốt nghiệp mạch kit thí nghiệm dùng vi điều khiển AVR

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.14 MB, 57 trang )

Đồ án tốt nghiệp
Lời nói đầu
Ngày nay kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật điện
tử. Các bộ vi điều khiển có khả năng xử lý nhiều hoạt động phức tạp mà chỉ cần một chip vi
mạch nhỏ, nó đã thay thế các tủ điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ,
dễ dàng thao tác sử dụng.
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớn
vào việc phát triển thông tin. Chính vì các lý do trên, việc tìm hiểu, khảo sát vi điều khiển là
điều mà các sinh viên chuyên ngành điện tử phải hết sức quan tâm. Đó chính là một nhu cầu
cần thiết và cấp bách đối với mỗi sinh viên, đề tài này được thực hiện chính là đáp ứng nhu
cầu đó.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng
đươc lại là một điều rất phức tạp. Phần công việc xử lý chính vẫn phụ thuộc vào con người,
đó chính là chương trình hay phần mềm. Nếu không có sự tham gia của con người thì hệ
thống vi điều khiển cũng chỉ là một vật vô tri. Do vậy khi nói đến vi điều khiển cũng giống
như máy tính bao gồm 2 phần là phần cứng và phần mềm.
Để tìm hiểu bộ vi điều khiển một cách khoa học và mang lại hiệu quả cao làm nền tản
cho việc tìm hiểu sâu hơn những hệ thống tối tân hơn. Việc trang bị những kiến thức căn
bản về vi điều khiển cho sinh viên là hết sức cần thiết. Xuất phát từ thực tiển này chúng em
đã đi đến quyết định Thiết kế mạch KIT thực hành cho vi điều khiển AVR nhằm đáp
ứng nhu cầu ham muốn học hỏi của bản thân và giúp cho các bạn sinh viên dễ tiếp cận và
tìm hiểu sâu hơn về vi điều khiển.
Trong quá trình thực hiện đề tài vẫn còn nhiều khiếm khuyết, nhóm chúng em mong
nhận được nhiều ý kiến đóng góp từ thầy cô và các bạn. Chúng em chân thành cảm ơn các
thầy cô trong Viện Điện Tử – Viễn Thông, ĐH Bách Khoa Hà Nội, đặc biệt là TS Nguyễn
Thị Kim Thoa đã giúp đỡ chúng em rất nhiều trong quá trình thực hiện đồ án và anh
Nguyễn Trường Thế đã góp ý giúp chúng em hoàn thiện sản phẩm này.
Em xin chân thành cảm ơn!
1
Đồ án tốt nghiệp
Mục lục


Lời nói đầu 1
TÓM TẮT ĐỒ ÁN 4
1. Tên đề tài: 4
2. Sinh viên thực hiện: 4
3. Giảng viên hướng dẫn: 4
4. Mục tiêu: 4
5. Nội dung chính: 4
6. Kết quả chính cần đạt được: 4
CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 6
I. GIỚI THIỆU CHUNG 6
II. GIỚI THIỆU VỀ CÁC DÒNG VI ĐIỀU KHIỂN THÔNG DỤNG 8
A : VI ĐIỀU KHIỂN AVR 8
1: GIỚI THIỆU 8
2: CẤU TẠO BÊN TRONG 11
B : VI ĐIỀU KHIỂN 8051 18
1: GIỚI THIỆU 18
2: CẤU TẠO BÊN TRONG 8051 20
C : VI ĐIỀU KHIỂN PIC 26
1: GIỚI THIỆU 26
2: CẤU TẠO BÊN TRONG 27
CHƯƠNG 2: THIẾT KẾ MẠCH 31
1. Chọn phương án thiết kế 31
2. Xây dựng sơ đồ khối của bộ KIT 32
3. Sơ đồ nguyên lý các khối trong mạch 32
Khối nguồn: 32
Khối CPU: 33
Khối ma trận phím : 33
Khối LCD : 34
Khối LED 7 thanh : 35
2

Đồ án tốt nghiệp
Khối LED đơn : 37
Khối Led ma trận: 37
Khối giao tiếp PC: 38
Khối đồng hồ thời gian thực: 39
Khối Loa: 40
Khối Rơle: 41
Khối động cơ DC 41
4 Sơ đồ nguyên lý toàn mạch 43
5. Mạch in PCB 44
6. Giới thiệu một vài linh kiện được lựa chọn 46
6.1: IC MAX-232 46
6.2: Cảm biến nhiệt độ LM35 46
6.3: Tụ điện 47
6.4: Transistor 47
6.5: Điện trở 49
6.6: Ngoài ra còn 1 số loại linh kiện khác 49
CHƯƠNG 3: MỘT SỐ BÀI THỰC HÀNH 51
Bài 1. Chương trình hiển thị led đơn 51
Bài 2. Chương trình hiển thị led 7 thanh 52
Bài 3. Chương trình hiển thị led ma trận 53
Bài 4. Chương trình hiển thị LCD 53
Bài 5. Chương trình đọc thời gian từ DS1307 hiển thị LCD 54
Bài 6 Chương trình dùng phím bấm điều khiển Led đơn 55
CHƯƠNG 4: KẾT LUẬN 57
5.1. Ưu điểm của đề tài 57
5.2. Nhược điểm của đề tài 57
5.3. Hướng giải quyết nhược điểm và phát triển đề tài 57
3
Đồ án tốt nghiệp

TÓM TẮT ĐỒ ÁN
1. Tên đề tài:
Thiết kế mạch KIT thực hành cho vi điều khiển AVR
2. Sinh viên thực hiện:
Khóa: K56
3. Giảng viên hướng dẫn:
4. Mục tiêu:
Về mặt kỹ thuật: Thiết kế hoàn chỉnh mạch phát triển thực hành cho AVR có
thể chạy các chương trình cho các dòng vi điều khiển thông dụng AVR và có thể mở
rộng để chạy một vài dòng vi điều khác 8051, PIC. Với đầy đủ các module cơ bản
như: LCD, Led đơn, Led 7 thanh, Led Ma trận, Phím bấm đơn, Phím bấm ma trận,
… để thực hành điều khiển
Về mặt thực tiễn: Sản phẩm có thể trở thành một thiết bị hỗ trợ công tác giảng
dạy và học tập trong nhà trường, giúp sinh viên có thể tiếp cận việc học tập vi điều
khiển một cách nhanh chóng và hiệu quả. Thay vì dùng phần mềm mô phỏng khi lập
trình thì có thể nạp trực tiếp vào vi điều khiển để quan sát.
5. Nội dung chính:
Tìm hiểu về các dòng vi điều khiển, cấu trúc của chúng và cách sử dụng.
Tìm hiểu các module thành phần, cách điều khiển các module, cách giao tiếp
giữa module và vi điều khiển.
Thiết kế chi tiết các module thành phần, ghép nối hệ thống vào mạch.
Lập trình phần mềm, các bài tập thực hành, chạy thử và sửa lỗi.
6. Kết quả chính cần đạt được:
+ Phần cứng: Cấu hình phần cứng phải rõ ràng, dàn trải. Kích thước của thiết
bị gọn nhẹ, dễ dàng di chuyển và bảo quản. Các thành phần của hệ vi điều khiển phải
được thể hiện rõ ràng, dễ nhận biết.
+ Các thành phần của thiết bị: Có đầy đủ các thành phần cơ bản của một hệ
vi điều khiển và các nguồn tài nguyên ngoại vi phong phú, cho phép người sử dụng
có thể tự do phát triển các ứng dụng của mình:
• Bộ vi xử lí trung tâm.

4
Đồ án tốt nghiệp
• Các cổng vào/ra tương tự, vào/ra số, các cổng ghép nối
ngoại vi mở rộng lập trình được.
• Giao tiếp bàn phím.
• Hiển thị LCD.
• Hiển thị trạng thái bằng đèn LED .
• Hiển thị LED 7 thanh.
• Hiển thị ma trận LED (8x8).
• Khối thời gian thực.
• Khối điều khiển động cơ DC.
• Khối chuyển đổi ADC, DAC.
• Các đầu vào xung.
• Khối âm thanh
• Giao tiếp với máy tính PC qua cổng truyền thông nối tiếp
(COM) và song song (LPT).
+ Các bài thí nghiệm thực hiện trên thiết bị:
• Các bài cơ bản: Giúp sinh viên làm quen với hệ lệnh của chip vi điều
khiển, nhập các lệnh và chạy chương trình để xem kết quả thực hiện của các lệnh
đó.
• Các bài nâng cao: Gồm các bài thí nghiệm phức tạp hơn thực hiện việc
điều khiển các thành phần ngoại vi trên thiết bị. Các bài thí nghiệm thực hiện việc
điều khiển một quá trình tương tự hoặc số, ví dụ: Điều khiển hiển thị đèn LED,
LED 7 thanh, ma trận LED, điều khiển vào/ra số - tương tự, điều khiển động cơ
bước
+ Thực hiện các bài thí nghiệm:
• Các bài tập mẫu xây dựng trước: Đi kèm với sản phẩm phần cứng là
một hệ thống các bài tập mẫu được xây dựng cho các ứng dụng trên thiết bị như
điều khiển các thành phần ngoại vi của thiết bị, điều khiển vào/ra tương tự - số
Sinh viên có thể đọc hướng dẫn sử dụng và thực hiện các bài tập mẫu này trên

thiết bị.
• Các bài tập do sinh viên tự lập trình: Sau khi đã nắm rõ cấu hình của
thiết bị và sơ đồ bộ nhớ của các thành phần trên thiết bị, sinh viên có thể tự lập
trình các bài thí nghiệm theo ý định riêng của mình.
+ Công cụ lập trình:
• Bằng máy tính PC: Có thể sử dụng các công cụ phát triển ví dụ như
phần mềm KEIL, CodevisionAVR, để lập các chương trình cho thiết bị từ máy
tính bằng ngôn ngữ C hoặc Assembly sau đó biên dịch thành file dạng Hexa hoặc
Binary rồi nạp xuống hệ vi điều khiển của thiết bị thực hiện các chương trình đó.
5
Đồ án tốt nghiệp
CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN
I. GIỚI THIỆU CHUNG
Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có thể lập
trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh của người
lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và
tiến hành đóng mở một cơ cấu nào đó.
Trong các thiết bị điện và điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển
hoạt động của TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sản xuất
tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống
càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng.
* Lịch sử phát triển của các bộ vi điều khiển
Bộ vi điều khiển là một loại vi xử lí trong tập hợp các bộ vi xử lý nói chung. Bộ vi
điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển và hoàn thiện về
công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-Semiconductor) , mức độ tích
hợp của các linh kiện bán dẫn trong một chip ngày càng cao.
Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments vừa
là nơi phát minh vừa là nhà sản xuất. Nhìn tổng thể thì bộ vi xử lí chỉ có chứa trên một chip
những chức năng cần thiết để xử lí chương trình theo một trình tự, còn tất cả bộ phận phụ
trợ khác cần thiết như : bộ nhớ dữ liệu , bộ nhớ chương trình , bộ chuển đổi AID, khối điều

khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là những linh kiện nằm ở bên
ngoài được nối vào bộ vi xử lí.
Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics). Mới cho ra đời bộ vi điều
khiển đơn chip đầu tiên trên thế giới với tên gọi 8048. Bên cạnh bộ xử lí trung tâm 8048
còn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời gian các cổng vào và ra
Digital trên một chip.
Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit tương tự như 8048
và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48).
Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơn chip với
tên gọi 8051. Và sau đó hàng loạt các vi điều khiển cùng loại với 8051 ra đời và hình thành
họ vi điều khiển MCS-51 .
Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết các công
ty hàng dẫn hàng đầu thế giới chế tạo. Đứng đầu là công ty INTEL và rất nhiều công ty
khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …
* Một số loại vi điều khiển có trên thị trường:
- VĐK MCS-51: 8031, 8032, 8051, 8052, . . .
- VĐK ATMEL: 89Cxx, AT89Cxx51. .
- VĐK AVR AT90Sxxxx, Atmega8/16/32/64,
- VĐK PIC 16C5x, 17C43. . .
6
Đồ án tốt nghiệp
* Cấu trúc tổng quan của vi điều khiển:
CPU:
Là trái tim của hệ thống. Là nơi quản lí tất cả các hoạt động của VĐK. Bên trong
CPU gồm:
+ ALU là bộ phận thao tác trên các dữ liệu
+ Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực hiện
+ Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
+Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi
+ Một tập các thanh ghi dùng để lưu thông tin tạm thời

ROM:
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số liệu các
bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động
nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở
chế độ xóa hoặc nạp chương trình.
RAM:
RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ
các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng
dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
BUS:
BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ, bus dữ liệu ,
và bus điều khiển
Bộ định thời: Được sử dụng cho các mục đích chung về thời gian.
Watchdog: Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất thường”.
ADC:
Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bên ngoài đi vào vi
điều khiển thường ở dạng analog. ADC sẽ chuyển tín hiệu này về dạng tín hiệu digital
mà vi điều khiển có thể hiểu được.
7
Đồ án tốt nghiệp
II. GIỚI THIỆU VỀ CÁC DÒNG VI ĐIỀU KHIỂN THÔNG DỤNG
A : VI ĐIỀU KHIỂN AVR
1: GIỚI THIỆU
 Lịch sử
AVR là các vi điều khiển 8 bit RISC (Reduced Instruction Set Computer) có cấu trúc
Harvard được phát triển bởi Atmel năm 1996. AVR là một trong những họ vi điều khiển
đầu tiên dùng bộ nhớ flash tích hợp trên chip để chứa chương trình, khác với ROM (chỉ có
thể lập trình một lần),EPROM, hay EEPROM được dùng cho các họ vi điều khiển khác
cùng thời điểm đó.
 Các dòng chíp cơ bản (họ AVR thông thường được chia thành 4 dòng):

a - tinyAVRs :
1-8 kB bộ nhớ chương trình.
8-32-chân.
Hạn chế các thiết bị ngoại vi.
b – megaAVRs:
4-256 kB bộ nhớ chương trình.
28-100-chân.
Mở rộng tập lệnh.
Nhiều thiết bị ngoại vi.
c – XmegaAVRs:
16-256 kB bộ nhớ chương trình.
44-100-chân.
mở rộng các thiết bị như DMA, "Event System", và hỗ trợ mã hóa .
Mở rộng thiết bị ngoại vi với DACs.
d - Application specific AVRs:
MegaAVRs với các thành phần đặc biệt không có trong các sản phẩm khác của AVR
như là LCD controller, USB controlller, PWN, CAN, v. v. . .
FPSLIC (Field Programmable System Level Integrated Circuit), một nhân AVR với
một FPGA. The FPSLIC dùng SRAM cho chương trình AVR, không giống như các dòng
AVR khác. Do đó FPSLIC có thể chạy với xung nhịp 50MHz.
8
Đồ án tốt nghiệp
 Một số chip AVR thông dụng
AT90S1200
AT90S2313
AT90S2323 and AT90S2343
AT90S2333 and AT90S4433
AT90S4414 and AT90S8515
AT90S4434 and AT90S8535
AT90C8534

ATtiny10, ATtiny11 and ATtiny12
ATtiny15
ATtiny22
ATtiny26
ATtiny28
ATmega8/8515/8535
ATmega16
ATmega161
ATmega162
ATmega163
ATmega32
ATmega323
ATmega103
ATmega64/128/2560/2561
AT86RF401

9
Đồ án tốt nghiệp
 Sơ đồ khối cấu trúc AVR
Để có được hiệu năng cao nhất và khả năng làm việc song song , AVR sử dụng cấu
trúc Harvard – với sự phân chia bộ nhớ và các bus cho chương trình và dữ liệu . Các lệnh
trong bộ nhớ chương trình thì được thực thi với 1 cấp sử lí liên lệnh đơn . Trong khi lệnh
được đang được xử lí thì lệnh tiếp theo được nạp tiếp từ bộ nhớ chương trình . Khái niệm
này kích hoạt lệnh để thực thi trong mỗi chu kì xung nhịp đồng hồ . Bộ nhớ chương trình là
bộ nhớ flash có thể lập trình lại được ở trong hệ thống .
Sự truy cập nhanh vào file của thanh ghi thì bao gồm 32*8 bít thanh ghi đa năng với 1
chu kì xung nhịp để quản lí thời gian . Điều này cho phép điểu khiển trong một chu kì đơn
của đơn vị sử lí số học ALU . Thông thường trong hoạt động của ALU , 2 toán hạng địa chỉ
được xuất ra từ file thanh ghi , quá trình điều khiển được thực thi và kết quả được lưu trữ lại
trong thanh ghi file – trong mỗi chu kì xung nhịp .

10
Đồ án tốt nghiệp
2: CẤU TẠO BÊN TRONG
2. 1 Cấu trúc bên trong
11
Đồ án tốt nghiệp
Lõi AVR bao gồm 1 tập hợp các lệnh cài đặt với 32 thanh ghi chung đa năng . Tất cả
32 thanh ghi thì được nối trực tiếp với khối số học và logic (ALU ) nó cho phép 2 thanh ghi
độc lập được truy cập trong 1 lệnh thực thi trong một chu kì quét xung đồng hồ . kết quả
của cấu trúc này là có nhiều kiểu chế độ hiệu quả hơn trong khi vẫn đạt được tốc độ tối đa
nhanh hơn 10 lần các bộ vi sử lý CISC thông thường .
Atmega 32 cung cấp các tính năng sau đây :
+ Hiệu suất cao , tiết kiệm điện
+ Hoàn thiện cấu trúc RISC
- 131 lệnh hiệu quả - thực thi tất cả các chu kì đồng hồ đơn
- 32 * 8 thanh ghi chung đa năng + các thanh ghi điều khiển ngoại vi
- Đầy đủ các quá trình điều khiển tĩnh
- Nâng lên 16 MIPS dữ liệu tại 16 MHz
- Chip 2 nhân
+ Độ bền , sức chịu đựng cao , không thay đổi phân vùng nhớ
- 32K Bytes bộ nhở Flash có thể lập trình được trong hệ thống
- 1K Bytes EEPROM
- 1K Bytes bộ nhớ SRAM bên trong
- Chu kì ghi/xóa : 10000 Flash / 100000 EEPROM
- Độ bền dữ liệu 20 năm ở 85 độ / 100 năm ở 25 độ
+ Đặc điểm ngoại vi
- 2 bộ Timer /counter 8 bit với bộ đếm gộp trước riêng biệt và chế độ so
sánh mẫu
- 1 bộ timer /counter 16 bit mở rộng với bộ đếm gộp trước chế độ so
sánh mẫu và chế độ thu thập ( bắt dữ liệu )

- Bộ counter thời gian thực với bộ dao động ( oscillator ) riêng biệt
- 4 kênh PWM 8 bit
- 8 kênh , 10 bit ADC :
 8 kênh đầu cuối đơn
 7 kênh khác nhau ( vi phân )
- Bit định hướng với 2 dây giao diện nối tiếp
- Lập trình kép các USARTs nối tiếp
- Giao diện nối tiếp SPI chủ tớ
- Lập trình timer Watchdog với bộ dao động trên chip
- Bộ so sánh tương tự trên chip
+ cổng vào ra và dạng đóng gói
- 32 đường vào ra lập trình được
- 40 chân PDIP, 44 chân TQFP và 44 khối QFN/MLF
+ Điện áp hoạt động : 4,5 – 5,5 V
+ Mức tốc độ xung nhịp : 0 – 16 Mhz
12
Đồ án tốt nghiệp
2. 2 Cấu tạo chân
 Mô tả chức năng của các chân
Ở đây chúng ta tìm hiểu chíp đóng vỏ 44 chân
 Atmega32 gồm có 4 port I/O: port A, port B, port C và port D.
 Port A gồm 8 chân từ PA0 đến PA7:là cổng vào tương tự cho chuyển đổi tương tự
sang số. Nó cũng là cổng vào/ra hai hướng 8 bít trong trường hợp không sử dụng làm cổng
chuyển đổi tương tự, có điện trở nối lên nguồn dương bên trong. Port A cung cấp đường
địa chỉ dữ liệu vao/ra theo kiểu hợp kênh khi dùng bộ nhớ bên ngoài.
 Port B gồm 8 chân từ PB0 đến PB7:là cổng vào/ra hai hướng 8 bít, có điện trở kéo lên
bên trong. Port B cung cấp các chức năng ứng với các tính năng đặc biệt của Atmega32.
13
Đồ án tốt nghiệp
 Port C gồm các chân từ PC0 đến PC7:là cổng vào/ra hai hướng 8 bit, có điện trở nối

lên nguồn dương bên trong. Port C cung cấp các địa chỉ lối ra khi sử dụng bộ nhớ bên
ngoài và đồng thời cung cấp ứng với các tính năng đặc biệt của Atmega32.
 Port D gồm các chân từ PD0 đến PD7:là cổng vào/ra hai hướng 8 bit, có điện trở nối
lên nguồn dương bên trong. Port D cung cấp các chức năng ứng với các tính năng đặc biệt
của Atmega32.
 Chân nguồn Vcc: điện áp nguồn nuôi của Atmega32 từ 4. 5v đến 5. 5v.
 Chân Reset (chân số 4): reset trạng thái chip
 Chân GND: chân nối đất.
 Chân XTAL1,XTAL2 là hai chân nối thạch anh ngoài (chân số 7 và chân số
8): Atmega32 hỗ trợ sử dụng thạch anh ngoài lên tới16MHz (trong đồ án chúng
em sử dụng thạch anh 8MHz)
 Chân ICP: là chân vào cho chức năng bắt tín hiệu cho bộ định thời/đếm 1.
 Chân OC1B: là chân ra cho chức năng so sánh lối ra bộ định thời/đếm 1.
 Chân INT1: chân ngõ vào ngắt.
ATmega32 có các chế độ tiết kiệm năng lượng như sau:
 Chế độ nghỉ (Idle) CPU trong khi cho phép bộ truyền tin nối tiếp đồng
bộ USART, giao tiếp 2 dây, chuyển đổi A/D, SRAM, bộ đếm bộ định
thời, cổng SPI và hệ thống các ngắt vẫn hoạt động.
 Chế độ Power-down lưu giữ nội dung của các thanh ghi nhưng làm
đông lạnh bộ tạo dao động, thoát khỏi các chức năng của chip cho đến
khi có ngắt ngoài hoặc là reset phần cứng.
 Chế độ Power-save đồng hồ đồng bộ tiếp tục chạy cho phép chương
trình sử dụng giữ được đồng bộ thời gian nhưng các thiết bị còn lại là
ngủ.
 Chế độ ADC Noise Reduction dừng CPU và tất cả các thiết bị còn lại
ngoại trừ đồng hồ đồng bộ và ADC, tối thiểu hoá switching noise trong
khi ADC đang hoạt động.
Chế độ standby, bộ tạo dao động (thạch anh/bộ cộng hưởng) chạy trong khi các thiết bị còn
lại ngủ. Các điều này cho phép bộ vi điều khiển khởi động rất nhanh trong chế độ tiêu thụ
công suất thấp.

2.3 Cấu trúc chung họ avr
14
Đồ án tốt nghiệp
CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các chương
trình. Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán,
điều khiển các thiết bị ngoại vi và quản lý ngắt.
2.3.1.Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình
và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương
trình được lưu trong bộ nhớ Flash.
2.3.2. ALU
ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được
thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại
số, logic và theo bit.
2.3.3. Thanh ghi trạng thái
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính
số học và logic.
Hình 1.2 Thanh ghi trạng thái SREG
C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)
Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0)
N: Negative Flag (Nếu kết quả của phép toán là âm)
V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù
V, For signed tests (S=N XOR V) S: N
H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ sau)
T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung
gian trong các lệnh BLD,BST).
15
Đồ án tốt nghiệp
I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt. Nếu
bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.)

2.3.4. Các thanh ghi chức năng chung
Hình 1.3 Thanh ghi chức năng chung
Tiệp ghanh ghi ( register file ) : Tiệp 32 thanh ghi đa chức năng ( $0000 -
$001F )
đã được nói ở trên, ngoài chức năng là các thanh ghi đa chức năng, thì các thanh
ghi từ R26 tới R31 từng đôi một tạo thành các thanh ghi 16 bit X, Y, Z được dùng làm
con trỏ trỏ tới bộ nhớ chương trình và bộ nhớ dữ liệu .Thanh ghi con trò X, Y có thể
dùng làm con trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có thể dùng làm con trỏ trỏ
tới bộ nhớ chương trình. Các trình biên dịch C thường dùng các thanh ghi con trỏ này
để quản lí Data stack của chương trình C.
16
Đồ án tốt nghiệp
Hình 1.4 Chức năng con trỏ của các thanh ghi R26 –R31
2.3.5. Con trỏ ngăn xếp (SP)
Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức
năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong
bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.
Hình 1.5 Thanh ghi con trỏ ngăn xếp
Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu
vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1
khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng
1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con
trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một
chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp
ít nhất cũng phải lơn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.
17
Đồ án tốt nghiệp
B : VI ĐIỀU KHIỂN 8051
1: GIỚI THIỆU
 Lịch sử của 8051

Vào năm 1981. Hãng Intel giới thiệu một số bộ vi điều khiển được gọi là 8051. Bộ
vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời, một cổng nối
tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một chíp. Lúc ấy nó được coi là
một “hệ thống trên chíp”. 8051 là một bộ xử lý 8 bit đơn chip CMOS có nghĩa là CPU chỉ
có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành
các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng 8 bit . Ưu
điểm hiệu suất cao, công suất tiêu thụ thấp. Mặc dù 8051 có thể có một ROM trên chíp cực
đại là 64 K byte, nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM
trên chíp.
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và
bán bất kỳ dạng biến thế nào của 8051 mà họ thích với điều kiện họ phải để mã lại tương
thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác
nhau và dung lượng ROM trên chíp khác nhau được bán bởi hơn nửa các nhà sản xuất.
Điều này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung
lương nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về các
lệnh. Điều này có nghĩa là nếu ta viết chương trình của mình cho một phiên bản nào đó thì
nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
 Sơ đồ khối họ 8051
Interrupt control : Điều khiển ngắt.
Other registers : Các thanh ghi khác.
128 Byte RAM : RAM 128 Byte.
CPU: Đơn vị điều khiển trung tâm.
Oscillator: Mạch dao động.
Bus control: Đièu khiển Bus.
I/O ports: Các port vào/ra.
Serial port: port nối tiếp.
Address/data: địa chỉ/ dữ liệu
18
Đồ án tốt nghiệp
Bố trí bên trong của họ 8051

* Các thành viên khác của họ 8051
Đặc tính 8051 8052 8031
ROM trên chíp 4K byte 8K byte OK
RAM 128 byte 256 byte 128 byte
Bộ định thời 2 3 2
Chân vào ra 32 32 32
Cổng nối tiếp 1 1 1
Nguồn ngắt 6 8 6
19
Đồ án tốt nghiệp
2: CẤU TẠO BÊN TRONG 8051
2. 1 Cấu trúc bên trong
Phần chính của vi điều khiển 8051 là bộ xử lý trung tâm (CPU: central processing unit) bao
gồm :
- Các thanh ghi chức năng đặc biệt (SFR)
- Đơn vị logic học (ALU : Arithmetic Logical Unit ) cổng vào ra (I/O)
- Bộ nhớ chương trình và bộ nhớ dữ liệu.
Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả năng
đưa một tín hiệu giữ nhịp từ bên ngoài.
Chương trình đang chạy có thể dừng lại nhờ một khối điều khiển ngắt ở bên trong.
Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời, hoặc cũng có
thể là giao diện nối tiếp. Hai bộ định thời 16 bit động như một bộ đếm.
20
Đồ án tốt nghiệp
Các c ng (port0, port1, port2, port3 ). S d ng vào m c ích i u khi n. ổ ử ụ ụ đ đ ề ể
Ở cổng 3 cũng có thêm các đường dẫn điều khiển dùng để trao đổi với bộ nhớ
bên ngoài, hoặc để đầu nối giao diện nối tiếp,cũng như các đường ngắt dẫn bên ngoài.
2. 2 Cấu tạo chân
Tùy theo khả năng (về kinh tế, kỹ thuật, …) mà các nhà sản xuất các sản phẩm ứng
dụng cụ thể chọn một trong 3 kiểu chân do ATMEL đưa ra.

21
Đồ án tốt nghiệp
 Mô tả chức năng của các chân
Ở đây chúng ta tìm hiểu chip đóng vỏ 40 chân với hai hàng chân PDIP
22
Đồ án tốt nghiệp
+ Chân Vcc (chân 40) :là VCC cấp điện áp nguồn cho Vi điều khiển
Nguồn điện cấp là +5V±0. 5.
+ Chân GND (chân 20) : nối GND (hay nối Mass).
+ Port 0 (từ chân 32 đến 39) có hai chức năng:
Chức năng xuất/nhập : các chân này được dùng để nhận tín hiệu từ bên ngoài vào
để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led
đơn sáng tắt.
Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn
làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng
thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.
+ Port 1 (từ chân 1-8) : là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port 1 có
thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có
điện trở nội và có thể dùng làm đầu vào. Khi vai trò là cổng nhập, những chân của port 1 bị
kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên.
23
Đồ án tốt nghiệp
Hơn nữa, P1. 0 và P1. 1 có thể được dùng như là đầu vào bộ đếm timer/counter 2 bên
ngoài (P1. 0/T2) và xung kích (P1. 1/T2EX).
+ Port 2 (từ chân 21-28): là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port 2
có thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có
điện trở nội và có thể dùng làm đầu vào. Khi vai trò là cổng nhập, những chân của port 2 bị
kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên.
+ Port 3 ( từ chân 10- 17) : là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port 3
có thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì chúng được kéo lên do có

điện trở nội và có thể dùng làm đầu vào. Khi vai trò là cổng nhập, những chân của port 3 bị
kéo xuống thấp sẽ đổ dòng vì có nội trở kéo lên.
+ Chân RESET (RST) (chân 9) : là ngõ vào Reset dùng để thiết
lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại
các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
+ ALE/PROG (Address Latch Enable) (chân 30): ALE là xung
xuất cho phép chốt byte địa chỉ thấp khi truy cập bộ nhớ ngoài. Chân
này còn là ngõ vào của xung lập trình (PROG) khi lập trình Flash. Trong
hoạt động bình thường, ALE được phát xung với tần số 1/6 tần số dao động on-chip và có
thể được dùng như xung thời gian chuẩn bên ngoài. Tuy nhiên, cần chú ý là một xung ALE
sẽ bị mất khi truy cập bộ nhớ ngoài.
+ PSEN (Program Store Enable) (chân 29): PSEN là xung strobe báo hiệu việc đọc
bộ nhớ chương trình ngoài, PSEN tích cực hai lần (mức thấp) mỗi chu kì máy, ngoại trừ hai
xung PSEN bị mất khi truy xuất dữ liệu ngoài. Khi thi hành chương trình trong RAM nội,
PSEN sẽ ở mức thụ động (mức cao).
+ EA/V
PP
(External Access) (chân31) : Chân EA dùng để xác định chương trình thực
hiện được lấy từ ROM nội hay ROM ngoại. Khi EA nối với logic 1(+5V) thì thực hiện
chương trình lấy từ bộ nhớ nội, logic 0(0V) thì thực hiện chương trình lấy từ bộ nhớ ngoại.
+ XTAL1 và XTAL2 (chân 18,19) : được sử dụng để nhận nguồn xung clock từ bên
ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để
tạo nguồn xung clock ổn định. Tần số tối đa 24Mhz. Tần số càng
lớn VĐK xử lý cành nhanh
24
Đồ án tốt nghiệp
2. 3. Cấu trúc Port In/Out
Sơ đồ cấu trúc bên trong của chân Port xuất/nhập như sau:
Việc ghi đến 1 chân của Port sẽ nạp dữ liệu vào bộ chốt của Port, ngõ ra Q của bộ chốt
điều khiển một Transistor trường và Transistor này với chân của Port. Khả năng phân chia

đầu ra (Fan-out) của các Port 1,2 và 3 là 4 tải vi mạch TTL loại Schottky công suất thấp
(LS) còn của Port 0 là 8 tải loại LS
2. 4 Tổ chức bộ nhớ
8051 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt
cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng
vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài.
Bộ nhớ trong 8051 bao gồm ROM và RAM.
RAM bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng
bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt và được phân chia như sau:
 RAM đa dụng từ 30H đến 7FH.
 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
25

×