mr.kanx

New Member

Download miễn phí Đề tài Thiết kế bảng quảng cáo LED sử dụng vi điều khiển ATMEGA16 Module điều khiển hiển thị





Lời nói đầu 1
Tóm tắt đồ án 2
Danh sách các hình vẽ 5
Danh sách các bảng 6
Danh sách các công thức 7
Phần mở đầu 8
Chương 1 : Giới thiệu chung 10
1.1) Quảng cáo 10
1.2) Bảng led quảng báo 11
1.2.1) Một số đặc trưng 11
1.1.2) Quảng cáo bằng led 12
1.3) Giới thiệu chung về hệ thống 16
Chương 2 : Giới thiệu về vi điều khiển AVR Atmega16 19
2.1) Giới thiệu về vi điều khiển họ AVR 19
2.1.1) Một số đặc trưng 19
2.1.2) Một số đặc trưng 20
2.1.3) Một số đặc trưng 22
2.1.4) Một số họ vi diều khiển AVR 23
2.2) Sơ bộ về vi điều khiển Atmega16 23
2.2.1) Đặc trưng 25
2.2.2) CPU 27
2.2.3) Bộ nhớ 34
Chương 3 : Nguyên tắc điều khiển led ma trận 39
3.1) Cấu trúc và nguyên lý cấp nguồn cho led ma trận 39
3.2) Nguyên tắc tạo font chữ hiển thị 40
3.3) Điều khiển hiển thị led ma trận 41
Chương 4: Điều khiển cấp nguồn cho led ma trận 44
4.1) Điều khiển cấp nguồn cho cột dùng 74HC138 44
4.1.1) Chức năng của 74HC138 44
4.1.2) Sử dụng 74HC138 để cấp nguồn cho các cột ma trận 45
4.2) Điều khiển cấp nguồn cho hàng dùng 74HC595 47
4.2.1) Chức năng của 74HC595 47
4.2.2) Sử dụng 74HC595để cấp nguồn cho các hàng của ma trận 49
4.3) Truyền dữ liệu cấp nguồn cho hàng sử dụng SPI 51
4.3.1) Atmega16 SPI 51
4.3.2) Thiết lập SPI truyền dữ liệu cho 74HC595 55
4.3) Kết luận 56
Chương5: Tạo tần số quét cho ma trận 57
5.1) Timer1 Atmega16 57
5.1.1) Một số chế độ hoạt động 57
5.1.2) Các thanh ghi 62
5.2) Tạo tần số quét ma trận 67
5.3) Kết luận 68
Chương 6: Hiệu ứng hiển thị bảng led 69
6.1) Bảng led hiển thị 69
6.2) Dịch trái, phải 71
6.3) Dịch lên xuống 74
6.4) Hiển thị từng kí tự 77
6.5) Kết luận 79
Kết luận 80
Tài liệu tham khảo 81
Phụ lục A: Sơ đồ ghép nối hệ thống điều khiển led ma trận 82
Phụ lục B: Mã chương trình nạp cho vi điều khiển 86


Tóm tắt nội dung tài liệu:

trực tiếp với tất cả 32 thanh ghi hỗ trợ làm việc. Hoạt động trong ALU được chia thành 3 chức năng chính: số học, logic và chức năng bit.
2.2.2.2 Thanh ghi trạng thái (Status Registers) :
Chứa thông tin về kết quả của các tính toán được thực thi gần nhất. Chú ý Status Register được thay đổi sau tất cả các phép tính toán trong ALU.
Bit 7 6 5 4 3 2 1 0
I
T
H
S
V
N
Z
C
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Khởi tạo 0 0 0 0 0 0 0 0
Bit 7-I : cho phép ngắt toàn cục. Không cho phép người sử dụng tự ý xóa. Chỉ bị xóa khi có ngắt mới xuất hiện và được chỉ dẫn bởi RETI cho những ngắt kế tiếp. Có thể được đặt hay được xóa bởi SEI và CLI.
Bit 6-T : bit lưu trữ. Có thể chép từ BST sang BLD và ngược lại.
Bit 5-H : Cờ nhớ nửa H sử dụng để nhớ nửa hữu ích trong phép tính số BCD.
Bit 4-S : tín hiêu bit S = N V
Bit 3-D : 2 cờ tràn
Bit 2-N : cờ phủ định.
Bit 1-Z : cờ zero
Bit 0-C : cờ nhớ.
2.2.2.3 Thanh ghi mục đích chung:
Thanh ghi file được tối ưu hóa cho AVR tăng cường lập tập tin. Trong mệnh lệnh để đạt được sự thực hiện đòi hỏi và tính tối ưu hóa những sơ đồ vào ra đây được hỗ trợ :
Một toán hạng ngõ ra 8 bit và một kết quả ngõ vào 8 bit.
Hai toán hạng ngõ ra 8 bit và một kết quả ngõ vào 8 bit.
Hai toán hạng ngõ ra 8 bit và một kết quả ngõ vào 16 bit.
Một toán hạng ngõ ra 16 bit và một kết quả ngõ vào 16 bit.
Hình 2 - 6 Các thanh ghi hỗ trợ làm việc AVR CPU
2.2.2.4 Con trỏ ngăn xếp (Stack pointer):
Bit 15 14 13 12 11 10 9 8
SP15
SP14
SP13
SP12
SP11
SP10
SP9
SP8
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R /W R/W R/W R/W R/W R/W
R/W R/W R /W R/W R/W R/W R/W R/W
Khởi tạo 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Thanh ghi Stack Poiter luôn trỏ đến đỉnh của ngăn xếp.
Stack Poiter trỏ đến ngăn xếp dữ liệu SRAM lưu trữ những process con và những ngắt cục bộ. Khoảng trống trong SRAM phải được định nghĩa bởi process trước bất kỳ process con nào gọi nó thực thi hay ngắt nào được hoạt động. Stack Poiter giảm đi 1 khi dữ liệu được đẩy lên trên Stack với lệnh PUSH, và giảm đi 2 khi trả về địa chỉ được đẩy lên trên Stack với sự gọi process con hay ngắt được gọi. Stack Poiter tăng lên 1 khi dữ liệu được đưa ra khỏi Stack với lệnh POP, và tăng lên 2 khi dữ liệu được đưa ra khỏi Stack trả về từ process con RET hay trả về từ ngắt RETI.
Stack Poiter AVR được bổ xung như 2 thanh ghi 8 bit trong không gian I/O. Số lượng các bít được sử dụng là sự thi hành phụ thuộc. Chú ý không gian dữ liệu trong bổ xung của kiến trúc AVR nhỏ nên chỉ sử dụng thanh ghi SPL, trong trường hợp này không có thanh ghi SPH.
2.2.2.5 Reset và xử lý ngắt.
AVR cung cấp vài nguồn ngắt khác nhau. Các ngắt này có vector Reset riêng biệt với vector process. Tất cả các ngắt ghi ở mức logic 1 cùng với ngăt toàn cục. Trong thanh ghi trạng thái các bit cho phép ngắt phụ thuộc giá trị Counter process. Các ngắt có thể tự động bị cấm khi khởi động khóa bit BLB02 hay BLB12.
Khi một ngắt xuất hiện, ngắt toàn cục cho phép I-bit xóa và tất cả các ngắt còn lại bị cấm. Sử dụng phần mềm có thể ghi logic 1 cho I-bit cho phép ngắt. Tất cả các ngắt được cho phép có thể ngắt thường trình. I-bit tự động được lập khi một lệnh ngắt trở lại thực thi từ RETI.
Có hai kiểu ngắt cơ bản.
Kiểu 1 : hoạt động bởi 1 sự kiện lập bởi cờ ngắt. Với mỗi ngắt Counter process là một vector tới vector ngắt hiện tại trong thứ tự thực thi, phần cứng sẽ xóa cờ ngắt. Các cờ ngắt có thể bị xóa bởi ghi logic 1 tới vị trí bit cờ để xóa. Nếu điều kiện một ngắt xuất hiện trong khi cho phép ngắt bit bị xóa thì cờ ngắt sẽ được lập và nhớ đến khi ngắt cho phép hay cờ ngắt bị xóa bởi phần mềm. Tương tự, điều kiện để các ngắt xuất hiện trong khi bit GIE(Global Interrupt Enable) bị xóa thì cờ nhớ sẽ lập và nhớ đến khi bit GIE được lập.
Kiểu 2 : các ngắt sẽ được hoạt động nếu điều kiện để ngắt có mặt. Những ngắt này không cần có cờ ngắt. Nếu điều kiện ngắt không xuất hiện trước khi ngắt cho phép ngắt sẽ không được hoạt động.
Khi AVR thoát khỏi 1 ngắt, nó sẽ luôn trả về process chính và thực thi hơn một lệnh trước khi tạm dừng ngắt. Chú ý thanh ghi trạng thái không tự động lưu trữ khi vào một thủ tục ngắt và cũng không tự phục hồi khi thoát ra khỏi thủ tục. Khi sử dụng lệnh CLI để cấm các ngắt thì ngắt sẽ không trực tiếp bị cấm. Không có ngắt được thực thi sau lệnh CLI ngay cả khi xuất hiện đồng thời với lệnh. Xem ví dụ sau :
Ghi bằng Assembly
Ghi bằng C
Khi sử dụng lệnh SEI cho phép ngắt:
Ghi bằng Assembly
Ghi bằng C
2.2.2.6 Ngắt đáp ứng lại thời gian
Ngắt thực thi đáp ứng cho tất cả các ngắt cho phép của AVR là 4 chu kỳ xung tối thiểu. Sau 4 chu kỳ xung vector process thêm địa chỉ cho ngắt đang hoạt động trong process con thực thi. Trong khoảng thời gian này bộ nhớ process sẽ đẩy lên trên Stack. Vector ngắt nhảy đến ngắt trong process con và lệnh ngắt này sẽ đưa ra 3 chu kỳ xung. Nếu một ngắt xuất hiện trong khi thực thi nhiều chu trình lệnh, thì lệnh sẽ được trước khi ngắt được thực hiện. Nếu một ngắt xuất hiện khi MCU ở chế độ ngủ, ngắt thực thi yêu cầu thời gian tăng bởi 4 chu kỳ xung.
Trở về từ ngắt process con đưa rad 4 chu kỳ xung bộ đếm chương trình sẽ được đưa ra từ Stack, Stack Poiter tăng thêm 2 và I-bit trong SREG được lập.
2.2.3) Bộ nhớ
Phần này mô tả các bộ nhớ khác nhau trong Atmega16. Kiến trúc AVR có 2 bộ nhớ chính : bộ nhớ dữ liệu và bộ nhớ process. Bổ xung thêm vào đặc tính AVR một bộ nhớ EEPROM lưu trữ dữ liệu.
2.2.3.1 Hệ thống bộ nhớ lập trình lại Flash
Atmega16 chứa 16 K bytes On-Chip trong hệ thống bộ nhớ lập trình lại Flash để lưu trữ process. Cho AVR 16 hay 32 bit thì bộ nhớ flash là 8K*16. Bộ nhớ Flash có khả năng ghi/ xóa 1000 lần cho mỗi vòng. Atmega16 có Counter 13 bit cùng với 8K địa chỉ process.
Hình 2 - 7 Sơ đồ bộ nhớ process
2.2.3.2 Bộ nhớ dữ liệu SRAM
Có tới 1120 địa chỉ ô nhớ cho bộ nhớ nhập xuất, thanh ghi file và SRAM nội. 96 đường địa chỉ đầu tiên dành riêng cho thanh ghi file và bộ nhớ vào ra và còn 1024 đường địa chỉ còn lại cho SRAM nội.
Hình 2 - 8 Sơ đồ bộ nhớ dữ liệu
Hình 2 - 9 Những chu kỳ truy xuất SRAM
2.2.3.3 Bộ nhớ dữ liệu EEPROM
Atmega16 chứa 512 byte bộ nhớ dữ liệu EEPROM. Nó được tổ chức như một không gian dữ liệu riêng biệt, mỗi byte đơn có thể đọc và ghi. EEPRAM có khả năng thực hiện 100.000 chu kỳ ghi/xóa. Truy xuất giữa EEPRAM và CPU được mô tả theo đặc tả thanh ghi địa chỉ, thanh ghi dữ liệu và thanh ghi điều khiển EEPROM.
Thanh ghi địa chỉ EEPROM :EEARH và EEARL
Bit 15 14 13 12 11 10 9 8

Link:


Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
 

Các chủ đề có liên quan khác

Top