1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế và chế tạo đèn quảng cáo 8 màu sử dụng vi điều khiển ATTINY2313

62 205 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 22,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Từ những ưu, nhược điểm thực tế của các loại LED quang báo đã thôi thúc em tìm hiểu một loại LED quảng cáo khác có khả năng tùy biến cao (nội dung do người sử dụng tự thiết kế), giá thành rẻ, hiển thị được nhiều màu, chỉ sử dụng 16 LED nên năng lượng tiêu thụ ít, lưu được nhiều hình ảnh.

Trang 1

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

ĐỒ ÁN TỐT NGHIỆP Chuyên ngành Công nghệ thông tin

Đề tài:

THIẾT KẾ VÀ CHẾ TẠO ĐÈN QUẢNG CÁO 8 MÀU

SỬ DỤNG VI ĐIỀU KHIỂN ATTINY2313

Trang 2

Lời cảm ơn

Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc tới các thầy cô

giáo trong trường Đại học Công nghệ thông tin và truyền thông – Đại

học Thái Nguyên đã tận tình giảng dạy, truyền đạt cho em những kiến

thức, kinh nghiệm quý báu trong suốt thời gian qua

Đặc biệt em xin gửi lời cảm ơn đến thầy Phạm Đức Long, thầy đã

tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm

đồ án tốt nghiệp Trong thời gian làm việc với thầy, em không những tiếpthu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc,thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rấtcần thiết cho em trong quá trình học tập và công tác

Lời cam đoan của sinh viên:

Tôi – Trịnh Quốc Hùng - cam kết Đồ án tốt nghiệp là công trình nghiên cứu

của bản thân tôi dưới sự hướng dẫn của ThS Phạm Đức Long Các kết quả nêu

trong Đồ án tốt nghiệp là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác

Hà Nam, ngày 10 tháng 12 năm 2014

Sinh viên

Trịnh Quốc Hùng

Trang 3

MỤC LỤC

CHƯƠNG 1: MỤC ĐÍCH VÀ YÊU CẦU CỦA VIỆC THIẾT KẾ VÀ CHẾ TẠO ĐÈN QUẢNG

CÁO 8 MÀU SỬ DỤNG VI ĐIỀU KHIỂN 4

1.1 Sơ lược về các loại LED quang báo 4

1.2 Mục đích, ý nghĩa đề tài 4

5

CHƯƠNG 2:GIỚI THIỆU CÁC THÀNH PHẦN CẤU THÀNH SỬ DỤNG 6

2.1 Vi điều khiển ATTiny2313 6

2.1.1 CPU 7

2.1.2 Cấu trúc bộ nhớ 9

2.1.3 Cấu trúc ngắt của ATTiny2313 10

2.1.4 Các cổng vào ra (I/O) 12

2.1.5 Bộ định thời 8Bit TIMER/COUNTER 0 16

2.1.6 Bộ định thời 16Bit TIMER/COUNTER1 20

2.1.7 USI (Universal Serial Interface) 22

2.2 Các linh kiện khác 24

2.2.1 EEPROM 25LC512 24

2.2.2 IC 74HC595 27

2.2.3 LED RGB 28

2.2.4 Công tắc từ (Cảm biến) 29

CHƯƠNG 3:THIẾT KẾ HỆ THỐNG 30

3.1 Hệ điều khiển 30

3.1.1 Nguyên tắc hiển thị hình ảnh 30

3.1.2 Nguyên tắc pha màu: 31

3.1.3 Phân hoạch bộ nhớ cho Chip ATTiny2313 31

3.1.4 Phân hoạch bộ nhớ cho EEPROM 25LC512 31

3.2 Sơ đồ nguyên lý 32

3.1.2 Mạch hiển thị 32

3.1.3 Mạch giao tiếp với máy tính (mạch nạp) 37

3.1.4 Mạch cấp nguồn cho mạch hiển thị 37

3.2 Phần mềm thiết kế dữ liệu hiển thị 39

3.2.1 Nhiệm vụ các phần mềm 39

3.2.2 Các thuật toán 40

CHƯƠNG 4: HOẠT ĐỘNG CỦA HỆ THỐNG 54

4.1 Kết quả thực hiện 54

Mạch hiển thị 54

Mạch USB giao tiếp với máy tính 55

4.2 Hướng phát triển 61

Kết luận 61

Trang 4

Chương 1: MỤC ĐÍCH VÀ YÊU CẦU CỦA VIỆC THIẾT

KẾ VÀ CHẾ TẠO ĐÈN QUẢNG CÁO 8 MÀU SỬ DỤNG

VI ĐIỀU KHIỂN

1.1 Sơ lược về các loại LED quang báo

LED vẫy: Các LED được sắp xếp theo chữ hoặc hình cố định trước

và được đặt trong hộp mica Các LED được điều khiển theo cụm vànhấp nháy theo hiệu ứng của người làm biển quảng cáo

Ưu điểm: Dễ thi công lắp đặt, không tốn nhiều không gian.

Nhược điểm: Khi muốn thay đổi nội dung phải làm biển quảng cáo

khác, chỉ thể hiện được một nội dung duy nhất trên biển quảng cáo Sửdụng nhiều LED nên tiêu thụ nhiều năng lượng

LED Matrix 1 màu: Được sản xuất dưới dạng các module có sẵn,

nếu muốn tăng kích thước phải ghép các module lại với nhau Nộidung quảng cáo được lưu trong bộ nhớ Flash của vi điều khiển

Ưu điểm: Nội dung có thể thay đổi được, có thể làm được các hiệu ứng

hiển thị khác nhau

Nhược điểm: Vì bộ nhớ nhỏ nên khả năng lưu trữ thấp, thường chỉ giới

hạn trong một câu có số lượng từ cố định Giá thành cũng khá đắt Sửdụng nhiều LED nên tiêu thụ nhiều năng lượng

Màn hình Full color: Được sản xuất dưới dạng các module có sẵn,

nếu muốn tăng kích thước phải ghép các module lại với nhau

Ưu điểm: Nội dung tùy biến, có thể hiển thị các đoạn video.

Nhược điểm: Giá thành quá đắt đỏ, không thể áp dụng phổ biến được.

Sử dụng nhiều LED nên tiêu thụ nhiều năng lượng

1.2 Mục đích, ý nghĩa đề tài

Từ những ưu, nhược điểm thực tế của các loại LED quang báo đãthôi thúc em tìm hiểu một loại LED quảng cáo khác có khả năng tùy biếncao (nội dung do người sử dụng tự thiết kế), giá thành rẻ, hiển thị đượcnhiều màu, chỉ sử dụng 16 LED nên năng lượng tiêu thụ ít, lưu được nhiềuhình ảnh

Đèn quảng cáo 8 màu sử dụng vi điều khiển phải đáp ứng được các yêu cầu sau:

- Hiển thị được 8 màu (kể cả màu đen)

- Chỉ sử dụng 16 LED

- Hiển thị được các hình ảnh

- Khả năng tùy biến cao, người sử dụng tự thiết kế các hình ảnh

Trang 5

- Lưu trữ được nhiều hình ảnh (42 hình)

- Giao tiếp được với máy tính

- Có phần mềm trên máy tính giúp người sử dụng thiết kế và quản lý hình ảnh

Máy tính(Phần mềm)

Trang 6

Chương 2:GIỚI THIỆU CÁC THÀNH PHẦN CẤU THÀNH

SỬ DỤNG 2.1 Vi điều khiển ATTiny2313

ATTiny2313 là vi điều khiển 8 bit dựa trên kiến trúc RISC Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, ATTiny2313 có thể đạt được tốc độ 1MIPS trên mỗi MHz (1 triệu lệnh/s/MHz).

Những Tính Năng Chính Của ATTiny2313:

o Có 2KByte bộ nhớ flash

o Có thể xóa lập trình được và có thể chịu được 10000 lần ghi xóa

o Có 32 thanh ghi đa năng 8 bit,

o Có 128 Byte bộ nhớ EEPROM tích hợp trên chíp,

o Có 128 Byte SRAM nội

o Có một bộ Timer/counter 8 bit và một bộ timer/counter 16 bit với bộ chia tần lập trình được

o Có 4 kênh điều xung.

o ATTiny2313 có 20 chân, trong đó có 18 cổng vào ra.

o Nguồn nuôi từ 1.8 đến 5.5 đối với ATTiny2313V và từ 2.7 đến 5.5 đối với ATTiny2313,

o Làm việc tiêu thụ dòng 3.6mA

o Sử dụng mạch dao động ngoài từ 0 đến 10 Mhz với ATTiny2313V và từ 0 đến 20 Mhz với ATTiny2313

o Ngoài ra chíp ATTiny2313 còn có bộ xung nội bên trong có thể lập trình chế độ xung nhịp

Dưới đây là sơ đồ khối của ATTiny2313

Trang 7

ATTiny2313 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, kit thử nghiêm,

2.1.1 CPU

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

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.

Thanh ghi trạng thái SREG

Các thanh ghi chức năng chung

Thanh ghi chức năng chung

Tệp thanh ghi ( register file ) : Tệ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

Trang 8

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

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.

Các thanh ghi chức năng đặc biệt

Bao gồm các thanh ghi dữ liệu và các thanh ghi điều khiển các cổng vào ra Chúng có thể truy nhập được bằng 2 cách:

Hai ví dụ này hoàn toàn tương đương, đều ghi dữ liệu vào thanh ghi SREG

Status Register (SREG)

Đâ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.

Stack Pointer

Trang 9

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ó nhiệm vụ trỏ tới vùng nhớ trong RAM chứa 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 hợc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.

Trang 10

ghi, 64 ô nhớ tiếp theo định địa chỉ bộ nhớ I/O, và 128 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội.

Bản đồ bộ nhớ dữ liệu SRAM

Bộ nhớ dữ liệu EEPROM

ATTiny2313 chứa bộ nhớ dữ liệu EEPROM dung lượng 128 Byte, và được sắp xếp theo từng Byte, cho phép các thao tác đọc/ghi từng Byte một Đây là bộ nhớ dữ liệu có thể ghi xóa ngay trong lúc vi điều khiển đang hoạt động và không

bị mất dữ liệu khi nguồn điện cung cấp bị cắt Có thể ví bộ nhớ dữ liệu EEPROM giống như là ổ cứng ( Hard disk ) của máy vi tính EEPROM được xem như là một bộ nhớ vào ra được đánh địa chỉ độc lập với SRAM, điều này có nghĩa là ta cần sử dụng các lệnh in, out … khi muốn truy xuất tới EEPROM Để điều khiển vào ra dữ liệu với EEPROM ta sử dụng 3 thanh ghi sau :

2.1.3 Cấu trúc ngắt của ATTiny2313

KHÁI NIỆM VỀ NGẮT

Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được một Byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền được một Byte thì cờ TX được thiết lập…

Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu

vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại

và thực hiện lần lượt các ngắt theo mức ưu tiên Trong khi đang thực hiện ngắt

mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp Trường hợp ngắt này có mức

ưu tiên cao hơn thì nó sẽ được phục vụ Còn nó mà có mức ưu tiên thấp hơn thì

nó sẽ bị bỏ qua.

Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào

Trang 11

SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP Con trỏ này là một thanh ghi

16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ :SPL : 0x3D/0x5D (IO/SRAM) và SPH:0x3E/0x5E

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 60H (0x60) vì 5FH trỏ lại

là vùng các thanh ghi

CÁC NGẮT NGOÀI

Các ngắt ngoài được kích hoạt bởi 2 chân INT0, và INT1 Chú ý rằng nếu

đã kích hoạt, các ngắt sẽ kích bằng (trigger even) nếu các chân INT0,INT1 được cấu hình là các ngõ ra Các đặc điểm này cung cấp 1 con đường chung cho ngắt mềm.Các ngắt ngoài có thể được kích bởi cạnh xuống hoặc lên hoặc mức thấp.

Sự cài đặt này được chỉ định đặc biệt trong thanh ghi điều khiển MCU – MCUCR

CÁC THANH GHI ĐIỀU KHIỂN NGẮT:

MCU Control Register– MCUCR

Thanh ghi MCU chứa các bit điều khiển ngắt có ý thức kiểm soát và chức năng MCU chung

• Bit 3, 2 – ISC11, ISC10: Interrupt Sense Control 1 Bit 1 and Bit 0

External Interrupt 1 được kích hoạt bởi chân ngoài INT1 nếu SREG I-bit

và mặt nạ ngắt tương ứng trong GIMSK là set (1) Các mức độ và cạnh trong chân INT1 ngoài kích hoạt ngắt được định nghĩa trong bảng sau:

• Bit 1, 0 – ISC01, ISC00: Interrupt Sense Control 0 Bit 1 and Bit 0

External Interrupt 0 được kích hoạt bởi chân ngoài INT0 nếu SREG I-bit và mặt

Trang 12

ngoài kích hoạt ngắt được định nghĩa trong bảng sau:

General Interrupt Mask Register– GIMSK

• Bit 7 – INT1: External Interrupt Request 1 Enable

Khi bit INT1 set lên 1 và I-bit trong thanh ghi trạng thái SREG là 1,ngắt chân ngoài được kích hoạt Ngắt tương ứng của External Interrupt Request 1 được thực thi từ INT0 Interrupt Vector.

• Bit 6 – INT0: External Interrupt Request 0 Enable

Khi bit INT0 set lên 1 và I-bit trong thanh ghi trạng thái SREG là 1,ngắt chân ngoài được kích hoạt Ngắt tương ứng của External Interrupt Request 0 được thực thi từ INT0 Interrupt Vector.

External Interrupt Flag Register – EIFR

• Bit 7 – INTF1: External Interrupt Flag 1

Khi 1 sự kiện tại chân INT1 kích hoạt 1 yêu cầu ngắt INTF1 sẽ lên 1 Nếu I-bit trong SREG và bit INT1 trongGICR là 1,MCU sẽ nhảy đến vector ngắt tương ứng Cờ sẽ xóa khi thực hiện ngắt thường xuyên Đôi khi, cờ có thể được xóa nếu

ta ghi trực tiếp 1 giá trị vào nó

• Bit 6 – INTF0: External Interrupt Flag 0

Khi 1 sự kiện tại chân INT0 kích hoạt 1 yêu cầu ngắt INTF0 sẽ lên 1 Nếu I-bit trong SREG và bit INT1 trong GIMSK là 1,MCU sẽ nhảy đến vector ngắt tương ứng Cờ sẽ xóa khi thực hiện ngắt thường xuyên Đôi khi, cờ có thể được xóa nếu

ta ghi trực tiếp 1 giá trị vào nó

2.1.4 Các cổng vào ra (I/O)

Vi điều khiểnATTiny2313 có 18 đường vào ra chia làm 3 nhóm: một nhóm 8 bit, một nhóm 7 bit và một nhóm 3 bit Các đường vào ra này có rất nhiều tính

Trang 13

năng và có thể lập trình được Ở đây ta sẽ xét chúng là các cổng vào ra số Nếu xét trên mặt này thì các cổng vào ra này là cổng vào ra hai chiều có thể định hướng theo từng bit Và chứa cả điện trở pull-up (có thể lập trình được) Mặc dù mỗi port có các đặc điểm riêng nhưng khi xét chúng là các cổng vào ra số thì dường như điều khiển vào ra dữ liệu thì hoàn toàn như nhau Chúng ta có thanh ghi và một địa chỉ cổng đối với mỗi cổng, đó là : thanh ghi dữ liệu cổng ( PORTA, PORTB, PORTD), thanh ghi dữ liệu điều khiển cổng (DDRA, DDRB, DDRD) và cuối cùng là địa chỉ chân vào của cổng (PINA, PIND, PIND).

Port A

• RESET – Port A, Bit 2

RESET, Reset pin: Khi cầu chì RSTDISBL đã lập trình, chức năng của chân này

là vào ra binh thường,và 1 phần sẽ phải dựa vào Power-on Reset và Brown-out Reset như là nguồn reset của nó

• XTAL2– Port A, Bit 1

XTAL2: Chân 2 dao động tạo clock Sử dụng chân clock thạch anh,hoặc dao động thạch anh tần số thấp Khi dùng chân làm dao động thì không thể làm chân nhập xuất được nữa.

• XTAL1– Port A, Bit 0

XTAL1: Chân 1 dao động tạo clock Sử dụng chân clock thạch anh,hoặc dao động thạch anh tần số thấp Khi dùng chân làm dao động thì không thể làm chân nhập xuất được nữa.

Port B

•USCK/SCL/PCINT7 – Port B, Bit 7

SCK: Master Clock output, Slave Clock input pin for SPI channel Khi SPI được kích hoạt là Slave, chân này được cấu hình là 1 chân ngõ vào bất chấp sự điều chỉnh từ DDB7

• MISO/DO/PCINT6 – Port B, Bit 6

MISO: Master Data input, Slave Data output pin for SPI channel, Three-wire mode Universal Serial Interface Data output Khi SPI được kích hoạt là Master, chân này được cấu hình là 1 chân ngõ vào bất chấp sự điều chỉnh từ DDB6

• MOSI/DI/SDA/PCINT5 – Port B, Bit 5

MOSI: SPI Master Data output, Slave Data input for SPI channel, Three-wire mode Universal Serial Interface Data input Khi SPI được kích hoạt là Slave, chân này được cấu hình là 1 chân ngõ vào bất chấp sự điều chỉnh từ DDB5 Khi SPI được kích hoạt là Master, dữ liệu trực tiếp của chân này được điều khiển bởi DDB5

• OC1B/PCINT4 – Port B, Bit 4

OC1B: Output Compare Match B output chân PB4 có thể phục vụ như là mộtđầu ra bên ngoài cho Timer/Counter1 Output Compare B.

PCINT4: Pin Change Interrupt Source 4, có thể phục vụ như một nguồn ngắt bên ngoài.

Trang 14

PCINT3: Pin Change Interrupt Source 3, có thể phục vụ như một nguồn ngắt bên ngoài.

• OC0A/PCINT2 – Port B, Bit 2

OC0A: Output Compare Match A output Chân PB2 có thể phục vụ như là mộtđầu ra bên ngoài cho Timer/Counter0 Output Compare A.

PCINT2: Pin Change Interrupt Source 2, có thể phục vụ như một nguồn ngắt bên ngoài.

• AIN1/PCINT1 – Port B, Bit 1

AIN1: Analog Comparator Negative input Cấu hình như là bộ so sánh tín hiệu

Analog thụ động đầu vào.

PCINT1: Pin Change Interrupt Source 1, có thể phục vụ như một nguồn ngắt bên ngoài.

• AIN0/PCINT1 – Port B, Bit 1

AIN0: Analog Comparator Positive input Cấu hình như là bộ so sánh tín hiệu

Analog tích cực đầu vào.

PCINT0: Pin Change Interrupt Source 0, có thể phục vụ như một nguồn ngắt bên ngoài.

Port D

• ICP – Port D, Bit 6

(ICP): Timer/Counter1 Input Capture Pin Chân PD6 có thể hoạt động như một Input Capture cho Timer/Counter1

• OC0B/T1 – Port D, Bit 5

OC0B: Output Compare Match B output Chân PD5 pin có thể phục vụ như là một đầu ra bên ngoài cho Timer/Counter0

T1: Timer/Counter1 External Counter Clock input, được thiết lập khi set giá trị 1 cho bit CS02 và CS01 trong thanh ghi Timer/Counter1 Control Register

(TCCR1)

• T0 – Port D, Bit 4

T0: Timer/Counter0 External Counter Clock input, được thiết lập khi set giá trị 1 cho bit CS02 và

CS01 trong thanh ghi Timer/Counter0 Control Register (TCCR0)

• INT1 – Port D, Bit 3

INT1, Ngắt nguồn bên ngoài 1: Chân PD3 có thể làm chức năng như 1 nguồn ngắt ngoài.

• INT0 – Port D, Bit 2

INT0, Ngắt nguồn bên ngoài 0: Chân PD2 có thể làm chức năng như 1 nguồn ngắt ngoài.

• TXD – Port D, Bit 1

TXD, Truyền tải dữ liệu (chân dữ liệu ra của USART) Khi bộ truyền USART được kích hoạt ,chân này được cấu hình như là một ngõ ra bất kể giá trị của DDD1.

• RXD – Port D, Bit 0

RXD, Nhận dữ liệu (chân dữ liệu vào của USART) Khi bộ nhận USART được kích hoạt ,chân này được cấu hình như là một ngõ vào bất kể giá trị của DDD0

Trang 15

Mô tả thanh ghi của port I/O

- Port A:

Port A Data Register – PORTA

Port A Data Direction Register – DDRA

Port A Input Pins Address – PINA

- Port B:

Port B Data Register – PORTB

Port B Data Direction Register – DDRB

Port B Input Pins Address – PINB

- Port D:

Port D Data Register – PORTD

Trang 16

Port D Data Direction Register – DDRD

Port D Input Pins Address – PIND

2.1.5 Bộ định thời 8Bit TIMER/COUNTER 0

Bộ định thời (timer/counter0) là một module định thời/đếm 8 bit, có các đặc điểm sau:

Sơ đồ cấu trúc của bộ định thời:

Hình 5.1 Sơ đồ cấu trúc bộ định thời

Trang 17

Hoạt động của bộ Timer/Couter

+ Mạch đếm lên làm thanh ghi TCNTn tăng 1 đơn vị mỗi khi có xung clkTn, khi đạt giá trị lớn nhất (8bit=255), cờ TOVn được set (logic 1) và bộ đếm tràn, giá trị bộ đến TCNTn trở về 00 và tiếp tục đếm.

+ Xung clkTn có thể được lựa chọn từ nhiều nguồn khác nhau Khi chọn xung nội (system clock), Timer/Counter là một Timer Khi chọn xung ngoài (thông qua chân Tn) Timer/Counter là Counter.

Hoạt động này có thể diễn tả bằng giản đồ xung sau:

Cũng giống như bộ timer/counter trong các vi điều khiển khác, chúng ta quan tâm đến 2 thanh ghi: Timer/Counter Control và Timer/Counter Value Trong AVR, đó là thanh ghi TCCRn và TCNTn.

Trang 18

Clock Select Bit Descri

Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm Kết quả so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0.

Đơn vị đếm

Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được Cấu trúc của nó như hình dưới đây:

Hình 5.2 Đơn vị đếm

count: tăng hay giảm TCNT0 1

direction: lựa chọn giữa đếm lên và đếm xuống

clear: xóa thanh ghi TCNT0

clkT0: xung clock của bộ định thời

TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất

BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất (0)

Trang 19

Đơn vị so sánh ngõ ra

Hình 5.3 Sơ đồ đơn vị so sánh ngõ ra

Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra (OCR0) Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động được xóa khi ngắt được thực thi Cờ OCF0 cũng có thể được xóa bằng phần mềm.

Các thanh ghi

o Timer/Counter Control Register A – TCCR0A

o Timer/Counter Control Register B – TCCR0B

o Thanh ghi bộ định thời/bộ đếm

o Thanh ghi mặt nạ ngắt

Trang 20

o Thanh ghi cờ ngắt bộ định thời

2.1.6 Bộ định thời 16Bit TIMER/COUNTER1

Sơ đồ khối và một số đặc điểm

Bộ định thời (timer/counter1) là một module định thời/đếm 16 bit, có các đặc điểm sau:

• True 16-bit Design (i.e., allows 16-bit PWM)

• 2 đơn vị ngõ vào so sánh độc lập (Two Independent Output Compare Units)

• đôi thanh ghi so sánh ngõ ra đệm (Double Buffered Output Compare Registers)

• 1 đơn vị chốt ngõ vào (One Input Capture Unit)

• Bộ chống nhiễu lối vào (Input Capture Noise Canceler)

• Xóa timer trong Compare Match (Clear Timer on Compare Match (Auto Reload))

Trang 21

• chống nhiễu sọc ngang (Glitch-free, Phase Correct Pulse Width Modulator (PWM)

BOTTOM Bộ đếm đạt tới BOTTOM khi co giá trị 0x0000

MAX Bộ đếm đạt tới MAXimum khi khi đạt giá trị 0xFFFF (decimal 65535) TOP Bộ đếm đạt tới TOP khi nó bằng với giá trị lớn nhất của chuỗi đếm Giá trị này có thể được gán bởi các giá trị cố định : 0x00FF, 0x01FF, or 0x03FF,hoặc giá trị trong bộ nhớ của các thanh ghi OCR1A ,ICR1

Các thanh ghi

o Timer/Counter 1 Control Register A – TCCR1A

o Timer/Counter 1 Control Register B – TCCR1B

o Timer/Counter 1 – TCNT1H and TCNT1L

o Output Compare Register 1 A – OCR1AH and OCR1AL

o Output Compare Register 1 B – OCR1BH and OCR1BL

Trang 22

o Input Capture Register 1 – ICR1H and ICR1L

o Timer/Counter Interrupt Mask Register – TIMSK

o Timer/Counter Interrupt Flag Register – TIFR

2.1.7 USI (Universal Serial Interface)

Sơ đồ và định nghĩa

USI là một giao tiếp cung cấp các tài nguyên phần cứng cơ bản cầnthiết cho nối tiếp truyền thông Kết hợp với tối thiểu của phần mềm điềukhiển, USI cho phép tốc độ truyền cao hơn đáng kể và sử dụng không gian

mã lệnh ít hơn so với các giải pháp chỉ dựa trên phần mềm Các ngắt đượcbao gồm để giảm thiểu tải cho bộ xử lý Các tính năng chính của USI:

- Truyềndữ liệu đồng bộ hai dây (Master or Slave, fSCLmax = fCK/16)

- Truyềndữ liệu đồng bộ ba dây (Master, fSCKmax = fCK/2, Slave fSCKmax = fCK/4)

- Thức dậy từ chế độ Idle

- Sử dụng 3 dây để truyền dữ liệu là: SCK, DI/SDA và DO

- Trong Mode hai dây Mode: Thức dậy từ tất cả các chế độ ngủ, bao gồmchế độ Power-down

Sơ đồ cấu trúc:

Trang 23

Để điều khiển khối giao tiếp USI thì chúng ta có 3 thanh ghi Đó là 1 thanh ghi điều khiển USICR (USI control Register), thanh ghi trang thái USISR (USI status Register) và cuối cùng là thanh ghi dữ liệu USIDR (USI Data Register).

Trang 24

- Hỗ trợ đọc ghi theo Byte, page, sector

- Giao tiếp SPI

Dạng đóng gói 8 chân

Sơ đồ chân:

Sơ đồ khối:

Trang 25

Đọc dữ liệu từ EEPROM 25LC512

Hình sau mô tả quá trình đọc dữ liệu từ EEPROM 25LC512

Quá trình đọc dữ liệu từ EEPROM 25LC512:

- Kéo chân CS xuống mức logic thấp để chọn chip

- Gửi 8bit chỉ dẫn đọc (READ) tới EEPROM 25LC512

- Gửi 16bit địa chỉ của Byte cần đọc tiếp theo chỉ dẫn đọc

- Sau khi chỉ dẫn đọc và địa chỉ được gửi chính xác, dữ liệu trong bộ nhớ

sẽ được gửi ra chân SO

Các dữ liệu được lưu trữ trong bộ nhớ ở địa chỉ kế tiếp có thể được đọctuần tự bằng cách tiếp tục cung cấp xung clock Con trỏ địa chỉ được tựđộng tăng lên để các địa chỉ kế tiếp cao hơn sau mỗi Byte dữ liệu được

Trang 26

Ghi dữ liệu vào EEPROM 25LC512

Hình sau mô tả quá trình ghi dữ liệu vào EEPROM 25LC512

Quá trình ghi dữ liệu vào EEPROM 25LC512:

Trước khi ghi dữ liệu vào 25LC512 phải thực hiện mở chốt ghi dữliệu bằng cách phát đi chỉ dẫn WREN Điều này được thực hiện bằng cáchthiết lập CS thấp và sau đó clocking ra các chỉ dẫn thích hợp vào 25LC512.Sau khi 8 bit của chỉ dẫn được truyền đi, CS phải được đưa cao để thiết lậpchốt cho phép ghi Nếu hoạt động ghi được bắt đầu ngay lập tức sau khi chỉthị Wren mà không kéo chân CS lên cao, dữ liệu sẽ không được ghi vì chốtcho phép ghi không có được thiết lập đúng 25LC512 cho phép ghi đè dữliệu mà không cần phải xóa dữ liệu cũ

Sau khi mở chốt ghi dữ liệu, ta tiến hành ghi dữ liêu:

- Kéo chân CS xuống mức logic thấp để chọn chip

- Gửi 8bit chỉ dẫn ghi (WRITE) tới EEPROM 25LC512

- Gửi 16bit địa chỉ của Byte cần đọc tiếp theo chỉ dẫn ghi

- Sau khi chỉ dẫn ghi và địa chỉ được gửi chính xác, dữ liệu sẽ được ghi vào bộ nhớ

Trong quá trình ghi, ta có thể đọc thanh ghi trạng thái để kiểm tra trạng tháicủa bit WPEN, WIP, WEL, BP1 và BP0 Một cố gắng đọc bộ nhớ sẽ khôngthể trong thực hiện trong một chu kỳ ghi Khi chu trình ghi hoàn tất, chốtcho phép ghi được thiết lập lại

 Read Status Register Instruction (RDSR)- thanh ghi chỉ dẫntrạng thái đọc: cho phép đọc thanh ghi trạng thái bất kỳ lúc nào,ngay cả khi trong lúc ghi dữ liệu

 Write Status Register Instruction (WRSR)- thanh ghi chỉ dẫntrạng thái ghi: cho phép người dùng có thể ghi các bit trong thanhghi trạng thái Người sử dụng có thể chọn một trong bốn chế độbảo vệ cho mảng bằng cách ghi các bit thích hợp trong thanh ghitrạng thái

Trang 27

2.2.2 IC 74HC595

Là ic ghi dịch 8bit kết hợp chốt dữ liệu, có một số đặc điểm sau:

- Đầu vào nối tiếp đầu ra song song

- Tần số đáp ứng tối đa là 55MHZ

- Điện áp hoạt động từ 2V đến 6V

- Giao tiếp với vi điều khiển chỉ sử dụng 3 dây

- 8 chân xuất dữ liệu

Sơ đồ chân :

Chức năng của các chân :

- Chân 14 (input) : đầu vào dữ liệu nối tiếp Tại 1 thời điểm xung clock

chỉ đưa vào được 1 bit

- Các chân QA=>QH (output) : trên các chân (15,1,2,3,4,5,6,7)

Xuất dữ liệu khi chân chân 13 tích cực ở mức thấp và có một xung tíchcực ở sườn âm tại chân chốt 12

- Chân 13 (output-enable) : Chân cho phép tích cực ở mức thấp (0)

.Khi ở mức cao, tất cả các đầu ra của 74595 trở về trạng thái cao trở,không có đầu ra nào được cho phép

- Chân 9 (SQH): Chân dữ liệu nối tiếp Nếu dùng nhiều 74595 mắc nối

tiếp nhau thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ8bit

- Chân 11 (Shift clock): Chân vào xung clock Khi có 1 xung clock tích

cực ở sườn dương (từ 0 lên 1) thì 1bit được dịch vào ic

Trang 28

14 dc 2 bit khi có xung clock ở chân 12 thì dữ liệu sẽ ra ở chân Qa và

Qb (chú ý chiều dịch dữ liệu từ Qa=>Qh)

- Chân 10 (Reset): khi chân này ở mức thấp (mức 0) thì dữ liệu sẽ bị xóa

2.2.3 LED RGB

LED RGB là LED trong đó tích hợp 3 LED riêng biệt tương ứng với 3 màu

cơ bản Red, Green, Blue Dựa trên 3 màu cơ bản này ta có thể phối ra đượcnhiều màu khác nhau dựa theo tỷ lệ [R,G,B] Hiện nay có rất nhiều loạiLED RGB với kiểu dáng và cách đóng gói khác nhau Trong khuôn khổ đểtài này em chọn LED RGB loại chân dán có 6 chân của HARVATEK

Trang 29

Các chân 1,3,5 là chân Anode, các chân 2,4,6 là chân Cathode

Cấu tạo: bao gồm 2 lá thép mỏng đặt trong một ống thủy tinh nhỏ

Nguyên tắc hoạt động: Khi đưa nam châm lại gần lực từ sẽ làm 2 lá théptiếp xúc với nhau, làm nối mạch 2 đầu của công tắc từ

Trang 30

Chương 3:THIẾT KẾ HỆ THỐNG 3.1 Hệ điều khiển

3.1.1 Nguyên tắc hiển thị hình ảnh

Sử dụng nguyên tắc hoạt động của Propeller clock, theo đó có 1 thanh LEDquay tròn quanh 1 trục Tại mỗi thời điểm trong vòng quay, vi điều khiển sẽbật/tắt các LED để tạo nên các điểm ảnh Quá trình bật/tắt các LED nàydiễn ra liên tục nhiều lần trên một vòng để tạo ra được hình ảnh

Hình dưới đây minh họa nguyên tắc hoạt động:

(Hình minh họa)

Trang 31

3.1.2 Nguyên tắc pha màu:

Từ 3 màu cơ bản RED, GREEN, BLUE ta có thể tạo ra các màukhác bằng cách kết hợp 3 màu cơ bản trên

3.1.3 Phân hoạch bộ nhớ cho Chip ATTiny2313

- Bộ nhớ Flash nội để lưu chương trình điều khiển

- Bộ nhớ EEPROM nội để lưu các biến phục vụ cho điều khiển

+ Biến Góc quay có địa chỉ: 0x00

+ Biến Thời gian hiển thị hình có địa chỉ 0x01

3.1.4 Phân hoạch bộ nhớ cho EEPROM 25LC512

Ngày đăng: 23/02/2019, 16:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w