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

Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx

94 1K 6

Đ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

Tiêu đề Ứng dụng AVR lập trình điều khiển động cơ điện một chiều
Tác giả Phạm Danh Bình
Người hướng dẫn Nguyễn Văn Trung
Trường học Trường Đại học Sao Đỏ
Chuyên ngành Kỹ thuật điện tử, Công nghệ thông tin
Thể loại Luận văn
Năm xuất bản 2012
Thành phố Chí Linh
Định dạng
Số trang 94
Dung lượng 7 MB

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

Nội dung

Nói tới tự động hóa ngày nay không thể không nhắc tới các thiết bị có điềukhiển lập trình, trong đó PLC, AVR, PIC, 8051… là một trong những thiết bị có điều khiển lập trình và được sử dụ

Trang 1

Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện

một chiều

Trang 2

LỜI NÓI ĐẦU.

Trong mọi thời đại, đặc biệt là thời đại kinh tế tri thức ngày nay, lao động chântay đang dần được thay thế bằng các thiết bị máy móc tiên tiến, hiện đại Để có đượccác thiết bị trên thì đội ngu tri thức chính là lực lượng nòng cốt, sáng tạo và trở thànhnguồn lực đặc biệt quan trọng trong chiến lược phát triển, tạo nên sức mạnh của mỗiquốc gia Vì con người, với tất cả những năng lực sáng tạo và phẩm chất tích cực củamình sẽ trở thành động lực phát triển cho công cuộc công nghiệp hóa hiện đại hóa

Đối với một quốc gia nói cung và nước ta nói riêng thì những nghành đóng vaitrò then chốt của nền kinh tế nước ta là: Điện, Than, Dầu Khí…và ngành công nghiệp

tự động hóa không nằm ngoài chiến lược phát triển kinh tế Công nghiệp tự động hóacác ngành nghề, đồng thời góp phần thúc đẩy quá trình công nghiệp hóa, hiện đại hóađất nước, xây dựng cơ sở hạ tầng phục vụ dân sinh

Để nâng cao chất lượng sản phẩm, số lượng sản phẩm cũng như hỗ trợ cho conngười những công việc phức tạp, ngành công nghiệp tự động hóa đã ra đời và mang lạinhững hiệu quả rất cao đáp ứng hoàn toàn những yêu cầu đó của con người

Tự động hóa là một lĩnh vực đã được hình thành và phát triển rộng lớn trênphạm vi toàn thế giới, nó đem lại một phần không nhỏ cho việc tạo ra các sản phẩm cóchất lượng và độ phức tạp cao phục vụ nhu cầu thiết yếu cho cuộc sống Ở nước talĩnh vực tự động hóa đã được Đảng và nhà nước quan tâm và đầu tư rất lớn, cũng vớicác lĩnh vực công nghiệp chuyển dịch nền kinh tế theo định hướng công nghiệp hóahiện đại hóa đất nước

Nói tới tự động hóa ngày nay không thể không nhắc tới các thiết bị có điềukhiển lập trình, trong đó PLC, AVR, PIC, 8051… là một trong những thiết bị có điều

khiển lập trình và được sử dụng rộng rãi Ứng dụng AVR lập trình điều khiển động

cơ điện một chiều Trong đề tài này em sử dụng vi điều khiển ATmega32 với những

tính năng ưu việt và được sử dụng rộng rãi trong công nghiệp và nghiên cứu khoa học

Do đó dựa trên khung chương trình của Bộ giáo dục đào tạo, khi xây dựngtrương trình đào tạo Trường Đại học Sao Đỏ đã chú trọng thời gian cho HSSV học tập,

sử dụng thiết bị, đồ dùng dạy học, nghiên cứu thực nghiệm tại các phòng thí nghiệm.Nhờ vậy trong quá trình học tập, HSSV được vẫn dụng kiến thức, kỹ năng và khả năngcông nghệ đảm bào tính logic khoa học Mặt khác, việc nghiên cứu, thực nghiệm tạicác phòng thí nghiệp giúp cho HSSV có tâm trí phấn khởi để phát huy tính sáng tạo,tìm tòi trong quá trình học tập góp phần nâng cao chất lượng đào tạo

Em vẫn luôn tin tưởng rằng với lượng kiến thức đã học được trong trường, cùngvới sự hướng dẫn nhiệt tình tận tụy vô cùng cùng quý báu mà không thể thiếu đượccủa thầy giáo hướng dẫn: Nguyễn Văn Trung cùng các thầy cô giáo khác và các bạn

bè, em sẽ sớm hoàn thành đồ án một các tốt nhất, đúng với tiến độ và thời gian quyđịnh Trong quá trình làm đồ án tốt nghiệp, bản đồ án của em không tránh khỏi đượcsai sót, nên em rất mong được sự đóng góp ý kiến của các thầy cô giáo và các bạn đểbản đồ án của em được hoàn thiện hơn

Trang 3

Em xin chân thành cảm ơn sự chỉ bảo ân cần của các thầy cô giáo và toàn thểcác bạn giành cho em, trong thời gian học tập tại trường và đặc biệt là trong quá trìnhlàm đồ án tốt nghiệp Một lần nữa em xin chân thành cám ơn! Và em xin được chúccác thầy cô giáo cùng các bạn luôn luôn có đủ sức khỏe, hoàn thành tốt mọi nhiệm vụđược giao, gặp nhiều niềm vui trong cuộc sống.

Chí Linh, ngày 02 tháng 11 năm 2012

Người thực hiệnPhạm Danh Bình

Trang 4

CHƯƠNG 1: TỔNG QUAN VỀ CÁC THIẾT BỊ ĐIỀU CHỈNH.

1.1 Vi điều khiển AVR.

1.1.1 Giới thiệu về AVR.

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ọ vi điều khiển được chế tạo theo kiến trúc RISC (Reduced InstructionSet Computer) có cấu trúc khá phức tạp Ngoài các tính năng như các họ vi điều khiểnkhá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, 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 Tuy nhiên khi biên dịch thì kích thước đọan

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ầnphải phát triển một cấu trúc đặc biệt để giãm thiểu sự chênh lệch kích thước mã đã nóitrê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 chu kỳ máy với 32 thanh ghi tíchlũ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êncứ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ểnvào loại mạnh nhất hiện nay

Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất được gới thiệu lần đầunăm 1996

Họ vi điều khiển AVR là một họ vi điều khiển có cấu trúc hiện đại (so với 805)

Có ba loại trong họ này đó là :

- Tinyavr

- AVR (loại AVR)

- MegaAVR

Hình 1.1 Các dòng AVR: tiny, AVR và AT mega.

Tất cả các thiết bị trong họ AVR đều có chung một tập lệnh, và tổ chức bộ nhớgiống nhau Nhưng khi chuyển nghiên cứu từ một vi điều khiển AVR này sang loạikhác thì thật là đơn giản Cấu tạo AVR bao gồm: SRAM, EEPROM và giao tiếpSRAM mở rộng, bộ chuyển đổi tương tự số (ADC), cấu trúc nhiều tuyến, UART,USART…

1.1.2 Một số chíp AVR thông dụng.

AT90S1200

AT90S2313

AT90S2323 and AT90S2343

AT90S2333 and AT90S4433

Trang 5

AT90S4414 and AT90S8515

AT90S4434 and AT90S8535

Atmega32 là vi điều khiển thuộc họ AVR của hãng Atmel, có 40 chân trong đó

có 32 chân I/O, có 4 kênh điều xung PWM, sử dụng thạch anh ngoài 8MHz

Nhân AVR kết hợp tập lệnh đầy đủ với 32 thanh ghi đa năng Tất cả các thanhghi liên kết trực tiếp với khối xử lý số học và logic (ALU) cho phép 2 thanh ghi độclập được truy cập trong một lệnh đơn trong 1 chu kỳ đồng hồ Kết quả là tốc độ nhanhgấp 10 lần các bộ vi điều khiển CISC thường Chính vì điều đó em đã chon Atmega32

để làm đế tài nghiên cứu và ứng dụng

Hình 1.2 Hình dạng thức tế ATMega32.

Trang 6

1.1.3.1 Câu hình chân (pin configurations).

Hình 1.3 Cấu trúc chân của Atmega32.

1.1.3.2 Đặc tính của ATmega32.

- Được chế tạo theo kiến trúc RISC

- Bộ lệnh gồm 118 lệnh, hầu hết đều thực thi chỉ trong một chu kì xung nhịp

- 32x8 thanh ghi làm việc đa dụng

- 32 KB Flash ROM lập trình được ngay trên hệ thống

- Giao diện nối tiếp SPI cho phép lập trình ngay trên hệ thống

- Cho phép 1000 lần ghi / xoá

- Tốc độ xử lí lệnh 16 MIPS ở 16 MHz (16 triệu lệnh trên giây)

- Bộ đếm thời gian thực (RTC) với bộ dao động và chế độ đếm tách biệt

- 2 bộ Timer 8 bit và 2 bộ Timer 16 bit với chế độ so sánh và chia tần số táchbiệt và chế độ bắt mẫu

- Bốn kênh điều chế độ rộng xung PWM

- Bộ định thời Watchdog lập trình được Tự động reset khi treo máy

Trang 7

- Bộ so sánh tương tự.

- Sáu chế độ ngủ: Chế độ rỗi (Idle), tiết kiệm điện (Power save), chế độ PowerDown, chế độ ADC Noise Reduction, chế độ Standby và chế độ Extended Standby

1.1.3.3 Mô tả ý nghĩa các chân (Pin descipsions).

- At mega32 gồm có 4 port: 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 đổitươ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ửsụ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 Acung 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ệntrở nối lên nguồn dương bên trong Port B cung cấp các chức năng ứng với các tínhnăng đặc biệt của Atmega32

- 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ệntrở 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 bít, có điệntrở 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ínhnăng đặc biệt của Atmega32

- Chân nguồn Vcc (chân số 10 và chân số 30): Điện áp nguồn nuôi củaAtmega32 từ 4.5v đến 5.5v

- Chân Reset (chân số 9): Lối vào đặt lại

- Chân GND (chân số 11 và chân 31): Chân nối mát

- Chân XTAL1, XTAL2 là hai chân nối thạch anh ngoài (chân số 12 và chân số13) Atmega32 sử dụng thạch anh ngoài là 8MHz

- Chân ICP (chân số 20): Là chân vào cho chức năng bắt tín hiệu cho bộ địnhthời/đếm 1

- Chân OC1B (chân số 18): Là chân ra cho chức năng so sánh lối ra bộ địnhthời/đếm 1

- Chân INT1(chân số 17): Chân ngõ vào ngắt

Trang 8

1.1.3.4 Sơ đồ khối.

Hình 1.4 Sơ đồ khối Atmega32.

1.1.3.5 Cấu trúc nhân AVR.

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 ghilàm việc đa năng Toàn bộ 32 thanh ghi đều được kết nối trực tiếp với ALU(Arithmeetic Logic Unit), cho phép truy cập hai thanh ghi độc lập bằng một chu kỳxung nhịp Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển kiểudạng CISC thông thường

Trang 9

1.1.3.6 Cấu trúc tổng quát.

Hình 1.5 Sơ đố cấu trúc CPU của Atmega32.

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ươngtrình được lưu trong bộ nhớ Flash

1.1.3.7 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 đượcthự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

1.1.3.8 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

Hình 1.6 Thanh ghi trạng thái SREG.

- C: Carry Flag; Cờ nhớ (Nếu phép toán có cờ nhớ 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 (Nếu kết quả phép toán là âm)

Trang 10

- V: Two’scomplement overflow (Cờ này được thiết lập khi tràn số bù 2) V, Forsigned 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ỉ ra sau)

- T: Transfer bit used by BLD and BST intruction (Được sử dụng làm nơichung gian trong các lệnh BLD, BST)

- 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ụ)

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

Hình 1.8 Thanh ghi con chỏ ngăn xếp.

Khi chương trình phục vụ ngắt hoặc chương trình con thì con chỏ PC được lưuvà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 1khi thực hiện lệnh push Ngược lại khi thực hiện lệ POP thì con chỏ ngăn xếp sẽ tăng 1

và khi thực hiện lệnh RET hoặc RETI thì con chỏ 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ộtchươ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à các thanh ghi

1.1.4 Quản lý ngắt.

Trang 11

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 sà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 của cờ RXC, hoặc khi nó đã truyền được một bytethì 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 đang thực hiện lại và lưu

vị trí và thực hiện chương trình (con chỏ PC) vào ngăn xếp sau đó chỏ tới vector phục

vụ ngắt và thực hiện chương trình phục vụ ngắt đó cho tới khi gặp lệnh RETI (returnfrom 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ó đã thực hiện Trong trường hợp mà có nhiều ngắt yêu cầu cùngmộ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 bướ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ướnghợp Trường hợp ngắt này có mức ưu tiên cao hơn thì xẽ được phục vụ Còn nếu cómức ưu tiên thấp hơn thì 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 Để truynhập vào SRAM thông thường thì dùng con chỏ X, Y, Z và để truy nhập vào SRAMtheo kiểu ngăn xếp thì dùng con trỏ SP Con chỏ này là một thanh ghi 16 bit và đượctruy 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 vụ ngắt hoặc chương trình con thì con trỏ PC được lưuvào ngăn xếp trong khi con trỏ ngăn xếp giảm đi hai vị trí Và con chỏ 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à thực hiện lệnh RET hoặc RETI thì con chỏ ngăn xếp sẽ tăng 2 Như vậycon 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 khimộ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ănxếp ít nhất cũng phải lớn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là các thanh ghi

Bảng 1.1 Vector ngăt cho Atmega32

Vector Program Address Source Interrupt Definition

1 $000 RESET External Pin, Power-on Reset, Brown-out

Reset, Watchdog Reset, and JTAG AVR Reset

5 $008 TIMER2 COMP Timer/Counter2 Compare Match

7 $00C TIMER1 CAPT Timer/Counter1 Capture Event

8 $00E TIMER1 CAP Timer/Counter1 Compare Match A

9 $010 TIMER1 CAPB Timer/Counter1 Compare Match B

11 $014 TIMER0 COMP Timer/Counter0 Compare Match

Trang 12

19 $024 ANA_COMP Analog Comparator

và phần ứng dụng (Applicationprogram section)

- Phần boot loader: Chứa chương trình boot loader

- Phần ứng dụng (Application program section): Là vùng nhớ chứa chươngtrình ứng dụng của người dùng Kích thước của phần boot loader và phần ứng dụng cóthể tùy chọn

Hình 1.9 thể hiện cấu trúc bộ nhớ chương trình có sử dụng và không sử dụngboot loader, khi sử dụng phần boot loader thấy 4 word đầu tiên thay vì chỉ thị cho CPUchuyển tới chương trình ứng dụng của người dùng (là chương trình có nhãn start) thìchỉ thị CPU nhảy tới phần chương trình boot loader để thực hiện trước, rồi mới quaytrở lại thực hiện chương trình ứng dụng

Hình 1.9 Bộ nhớ chương trình có và không có sử dụng boot loader.

1.1.5.2 Bộ nhớ dữ liệu.

Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ nhớ SRAM và bộ nhớEEPROM Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này lại tách biệt nhau vàđược đánh địa chỉ riêng

- Bộ nhớ SRAM: Có dụng lượng 2 Kbytes.

Bảng 1.2 Địa chỉ của tất cả các port.

Trang 13

Tên PORT Địa chỉ O/I Địa chỉ SRAM

- Bộ nhớ EEPROM: Bộ nhớ EEPROM có kích thước là 1024 bytes 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à cần sử dụng các lệnh in, out … khi muốn truy xuất tới EEPROM

Để ghi vào EEPROM cần thực hiện các bước sau:

- Chờ cho bit EEWE về 0

- Cấm tất cả các ngắt

- Ghi địa chỉ vào thanh ghi EEAR

- Ghi dữ liệu mà cần ghi vào EEPROM vào thanh ghi EEDR

- Set bit EEMWE thành 1

- Set bit EEWE thành 1

- Cho phép các ngắt trở lại

Đọc dữ liệu từ EEPROM: Việc đọc dữ liệu từ EEPROM đơn giản hơn ghi dữliệu vào EEPROM, để đọc dữ liệu từ EEPROM thực hiện các bước sau:

- Chờ cho bit EEWE về 0

- Ghi địa chỉ vào thanh ghi EEAR

- Set bit EERE lên 1

1.1.6 Cổng vào ra.

Cổng vào ra là một trong số các phương tiện để vi điều khiển giao tiếp với cácthiết bị ngoại vi Atmega32 có 4 cổng (port) vào ra 8 bit l: PortA, PortB, PortC, PortDtương ứng với 32 đường vào ra Các cổng vào ra của AVR là cổng vào ra hai chiều cóthể định hướng, tức có thể chọn hướng của cổng là hướng vào (input) hay hướng ra(output) Tất các các cổng vào ra của AVR điều có tính năng Đọc – Chỉnh sửa Ghi(Read – Modify – write) khi sử dụng chúng như là các cổng vào ra số thông thường.Điều này có nghĩa là khi thay đổi hướng của một chân nào đó thì nó không làm ảnhhưởng tới hướng của các chân khác Tất cả các chân của các cổng (port) đều có điệntrở kéo lên (pull-up) riêng, có thể cho phép hay không cho phép điện trở kéo lên nàyhoạt động

- Cách hoạt động

Trang 14

Khi khảo sát các cổng như là các cổng vào ra số thông thường thì tính chất củacác cổng (PortA, PortB, PortC, PortD) là tương tự nhau, nên chỉ cần khảo sát một cổngnào đó trong số 4 cổng của vi điều khiển là đủ Mỗi một cổng vào ra của vi điều khiểnđược liên kết với 3 thanh ghi: PORTx, DDRx, PINx (ở đây x là để thay thế cho A, B,

C, D) Ba thanh ghi này sẽ được phối hợp với nhau để điều khiển hoạt động của cổng,chẳng hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up, v.v

Hình 1.10 Cấu trúc chân của AVR.

Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1)

từ đó có 4 kiểu vào ra cho một chân của AVR Khác với AT89C51 là chỉ có 2 trạngthái duy nhất (0 1)

Để điều khiển các chân này có 2 thanh ghi

- PORTx: Giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n

- DDRx: Thanh ghi chỉ trạng thái của từng chân, vào hoặc là ra

Bảng 1.3 Cấu hình cho các chân cổng.

0 1 0 Input Yes Pxn will source current if ext.Pulled low

DDRxn là bit thứ n của thanh ghi DDRx

PORTxn là bit thứ n của thanh ghi PORTx

Dấu “x” ở cột thứ 3 để chỉ giá trị logic là tùy ý

Trang 15

Hình 1.11 Sơ đồ một cổng vào ra.

Ở sơ đồ trên ngoài 2 bit của các thanh ghi DDRx và PORTx tham gia điềukhiển điện trở treo (pull-up resistor), còn có một tín hiệu nữa điều khiển điện trở treo,

đó là tín hiệu PUD, đây là bit nằm trong thanh ghi SFIOR, khi set bit này thành 1 thìđiện trở kéo lên sẽ không được cho phép bất kể các thiết lập của các thanh ghi DDRx

và PORTx Khi bit này là 0 thì điện trở kéo lên được cho phép nếu {DDRxn,PORTxn} = {0, 1}

Trang 16

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

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

1.1.7.2 Đơ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 1.13 Đơ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

Trang 17

- BOTTOM: Báo hiệu bộ định thời để giảm đến giá trị nhỏ nhất

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

Hình 1.14 Đơ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ệunày sẽ đặt giá trị cờ so sánh ngõ ra(OCF0)lên 1 vào chu kỳ xung lock 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

1.1.8 Mô tả các thanh ghi.

1.1.8.1 Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0.

Hình 1.15 Thanh ghi điều khiển bộ định thời.

- Bit 7 - FOC0: So sánh ngõ ra bắt buộc: Bit này chỉ tích cực khi bit WGM00chỉ định chế độ làm việc không có PWM Khi đặt bit này lên 1, một báo hiệu so sánhbắt buộc xuất hiện tại đơn vị tạo dạng sóng

- Bit 6, 3 - WGM01:0: Chế độ tạo dạng sóng: Các bit này điều khiển đếm thứ tựcủa bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) và kiểu tạo dạng sóng sẽđược sử dụng

- Bit 5:4 - COM01:0: Chế độ báo hiệu so sánh ngõ ra: Các bit này điều khiểnhoạt động của chân OC0 Nếu một hoặc cả hai bit COM01:0 được đặt lên 1, ngõ raOC0 sẽ hoạt động

- Bit 2:0: CS02:0: Chọn xung đồng hồ: Ba bit này dùng để lựa chọn nguồn xungcho bộ định thời/bộ đếm

Trang 18

Bảng 1.4 Chọn nguồn xung cho bộ định thời.

0 0 0 No clock source (Timer/Counter stopped)

1 1 0 External clock source on T0 pin Clock on falling edge

1 1 1 External clock source on T0 pin Clock on falling edge

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

TCNT0(7-0)

Hình 1.16 Thanh ghi bộ định thời.

Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp (cả đọc và ghi) vào

Hình 1.17 Thanh ghi so sánh ngõ ra.

Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộđếm

Hình 1.18 Thanh ghi mặt nạ ngắt TIMSK

- Bit 1-OCIE0: Cho phép ngắt báo hiệu so sánh

- Bit 0-TOIE0: Cho phép ngắt tràn bộ đếm

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

Trang 19

1.1.9 Giao tiếp với I2C

Bus của I2C từ DS1307 và 24Cxx được nối với jumper có thể kết nối với bất kỳ 2 bitcủa hai cổng bất kỳ cua AVR trên KIT bởi một dây nối

Hình 1.20 Sơ đồ cấu trúc giao tiếp I2C

1.1.9.1 Thanh ghi:

TWI trên AVR được vận hành bởi 5 thanh ghi bao gồm thanh ghi tốc độ giữnhịp TWBR, thanh ghi điều khiển TWCR, thanh ghi trạng thái TWSR, thanh ghi địachỉ TWAR và thanh ghi dữ liệu TWDR

- TWBR (TWI Bit Rate Register): là 1 thanh ghi 8 bit quy định tốc độ phát xunggiữ nhịp trên đường SCL của chip Master

7 6 5 4 3 2 1 0

TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0 TWBR R/W R/W R/W R/W R/W R/W R/W R/W

Hình 1.21 Thanh ghi quy định tốc độ phát xung.

Trong đó CPU Clock frequency là tần số hoạt động chính của AVR, TWBR là giá trị thanh thi TWBR và TWPS là giá trị của 2 bits TWPS1 và TWPS0 nằm trong thanh thi trạng thái TWSR Hai bits này được gọi là bit prescaler, thông thường hay setTWPS1: 0 =00 để chọn Prescaler là 1 (40=1) Bảng 1 tóm tắt tốc độ xung giữ nhịp tạo

ra trên SCL đối với các giá trị của tham số:

Bảng 1.5 Tốc độ xung giữ nhịp tham khảo.

CPU clock frequency[MHZ} TWBR TWPS SCL frequency[khz]

Trang 20

Hình 1.22 Thanh ghi điều chỉnh TWI.

Một điều cần chú ý là các bit trong thanh ghi TWCR không cần được set cùng lúc, tùyvào từng giai đoạn trong quá trình giao tiếp TWI các bit có thể được set riêng lẻ

- TWSR (TWI Status Register): là 1 thanh ghi 8 bit trong đó có 5 bit chứa codetrạng thái của TWI và 2 bit chọn prescaler

7 6 5 4 3 2 1 0

TWS7 TWS6 TWS5 TWS4 TWS3 TWS2 TWS1 TWS0 TWSR R/W R/W R/W R/W R/W R/W R/W R/W

Hình 1.23 Thanh ghi trạng thái TWI.

Có rất nhiều bước, nhiều tình huống xảy ra khi giao tiếp bằng TWI cho cả Master vàSlave Ứng với mỗi trường hợp TWI sẽ tạo ra 1 code trong thanh ghi TWSR Lậptrình cho TWI cần xét code trong 5 bit cao của thanh ghi TWSR và đưa ra các ứng xửhợp lý ứng với từng code

- TWDR (TWI Data Register): là thanh ghi dữ liệu chính của TWI Trong quátrình nhận, dữ liệu nhận về sẽ được lưu trong TWDR Trong quá trình gởi, dữ liệuchứa trong TWDR sẽ được chuyển ra đường SDA

- TWAR (TWI Address Register): là thanh ghi chứa device address của chipSlave Cấu trúc thanh ghi được trình bày trong hình dưới

7 6 5 4 3 2 1 0

TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGECE TWAR R/W R/W R/W R/W R/W R/W R/W R/W

Hình 1.24 Thanh ghi chứa device của slave.

Nhớ lại địa chỉ Slave được tạo thành từ 7 bits, trên thanh ghi TWAR 7 bits địachỉ này nằm ở 7 vị trí cao Trước khi sử dụng TWI như Slave, phải gán địa chỉ chochip, việc viết địa chỉ thường được thực hiện bằng lệnh TWAR =(Device_address<<1)+TWGCE Trong đó TWGCE (TWI General Call Enable) là bitcho phép cuộc gọi chung Đề cập bên trên, Slave co quyền cho phép Master thực hiệncuộc gọi chung với nó hay không Nếu TWGCE=1, Slave sẽ đáp ứng lại cuộc gọichung nếu có, nếu TWGCE=0 thì Slave sẽ bỏ qua cuộc gọi chung

1.1.9.1. Hoạt động của TWI:

TWI trên AVR được gọi là byte-oriented (tạm dịch là hướng byte) và interrupt-based (dựa trên ngắt) Bất kỳ một sự kiện nào trong quá trình truyền/nhận TWI cũng có thể gây ra 1 ngắt TWI TWI trên AVR vì thế hoạt động tương đối độc lập với chip Tuy nhiên, cần khai thác ngắt trên AVR một

Trang 21

cách hơp lý Ví dụ, đối với Master, không cần sử dụng ngắt vì chip này hoàn toàn chủ động trong việc truyền và nhận Riêng với Slave, sử dụng ngắt để tránh bỏ lỡ các cuộc gọi là cần thiết.

Tất cả các AVR trên mạng TWI đều có thể là Master hay Slave, cả Master và Slave đều có thể truyền và nhận dữ liệu Vì thế, có tất cả 4 mode trong hoạt động của TWI trên AVR Sẽ lần lượt khảo sát các mode này như sau: Master Transmitter (chip chủ truyền), Master Receiver (Chip chủ nhận), Slave Reicever (chip tớ nhận) và Slave Transmitter (Chip tớ truyền) Trước khi khảo sát các chế độ hoạt động của TWI qui ước một số ký hiệu thường dùng (đây cũng là các ký hiệu dùng trong datasheet của các chip AVR) S: START condition – điều kiện bắt đầu

Rs: REPEAT START – bắt đầu lặp lại

R: READ Bit, bit này bằng 1 được gởi kèm với gói địa chỉ

W: WRITE Bit, bit này mang giá trị 0, gởi kèm gói địa chỉ

ACK: Ackowledge, bit xác nhận, chân SDA được kéo xuống 0 ở xung thứ 9

NACK: Not Acknowledge, không xác nhận, SDA ở mức cao ở bit thứ 9 Data: 8 bits dữ liệu

P: STOP condition – điều kiện kết thúc.

SLA: Slave address, địa chỉ của Slave cần giao tiếp.

1.1.10 Mạch nạp cho AVR.

Đây là mạch nạp thông dụng nhất (STK200/300) sử dụng cổng LPT, có thể nạptrực tiếp chương trình CodeVisionAVR Một trong những ưu điểm lớn nhất của cácchip AVR là tính đơn giản khi sử dụng trong đó có việc nạp chương trình cho chíp.AVR hỗ trợ khả năng nạp chương trình ngay trong hệ thống – ISP (In – SystemProgramming), có thể nạp trực tiếp chương trình vào chip mà không cần tháo chip rakhỏi mạch ứng dụng Mạch nạp cho AVR rất phong phú nhưng hầu hết đều rất đơngiản Dưới đây là loại mạch nạp STK200, cực kỳ đơn giản chỉ với một cổng DB25male, và 4 điện trở vài trăm ohm là được

Trang 22

Hình 1.25 Mạch nạp STK200 sử dụng DB25 và 4 điện trở.

1.2 Màn hình LCD (Liquid Crystal Display).

Có rất nhiều loại màn hình LCD có thể hiển thị các số lượng ký tự khác nhau,nhưng tất cả đều có chung cách thiết lập và sử dụng Có hai loại LCD thông dụng:Loại hiển thị ký tự gọi là Text LCD và loại hiển thị điểm ảnh gọi là Graphic LCD

Trong đề tài này, em chọn loại Text LCD có khả năng hiển thị 2 dòng, mỗidòng 16 ký tự theo bảng mã ASCII

số dòng mà LCD có Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối

đa 16 ký tự Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2,20x4…

Trang 23

Hình 1.26 Text LCD 16x2.

Text LCD có 2 cách giao tiếp cơ bản là nối tiếp (như I2C) và song song, đượcđiều khiển bởi chip HD44780U của hãng Hitachi HD44780U thường được coi làchuẩn chung cho các loại Text LCD, vì thế khi giao tiếp các LCD có kích thước hiểnthị khác, chỉ cần quan tâm đến toạ độ theo dòng và cột theo datasheet cung cấp bởi nhàsản xuất

HD44780U là bộ điều khiển cho các Text LCD dạng ma trận điểm (dot-matrix),chip này có thể được dùng cho các LCD có 1, 2 hoặc 4 dòng hiển thị HD44780U có 2chế độ giao tiếp là 4 bit và 8 bit Nó chứa sẵn 208 ký tự mẫu kích thước font 5x8 và 32

ký tự mẫu font 5x10 (tổng cộng là 240 ký tự mẫu khác nhau) Tuy nhiên, một số ký tựtheo bảng chữ cái tiếng Nhật

1.2.3 Sơ đồ chân.

Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó 14 chân kếtnối với bộ điều khiển và 2 chân nguồn cho LED nền Thứ tự các chân thường được sắpxếp như sau:

Trang 24

1.2.4 Sơ đồ kết nối.

Hình 1.27 Kết nối LCD với AVR và nguồn.

Chân 1 và chân 2 là các chân nguồn, được nối với GND và nguồn 5V Chân 3

là chân chỉnh độ tương phản (contrast), chân này cần được nối với 1 biến trở chia ápnhư trong hình 1.27 Trong khi hoạt động, chỉnh để thay đổi giá trị biến trở để đạtđược độ tương phản cần thiết, sau đó giữ mức biến trở này Các chân điều khiển RS,R/W, EN và các đường dữ liệu được nối trực tiếp với vi điều khiển Tùy theo chế độhoạt động 4 bit hay 8 bit mà các chân từ D0 đến D3 có thể bỏ qua hoặc nối với vi điềukhiển

1.2.5 Thanh ghi.

HD44780U có 2 thanh ghi 8 bits là INSTRUCTION REGISTER (IR) và DATAREGISTER (DR) Thanh ghi IR chứa mã lệnh điều khiển LCD và là thanh ghi “chỉghi” (chỉ có thể ghi vào thanh ghi này mà không đọc được nó) Thanh ghi DR chứa cáccác loại dữ liệu như ký tự cần hiển thị hoặc dữ liệu đọc ra từ bộ nhớ LCD Cả 2 thanhghi đều được nối với các đường dữ liệu D0:D7 của Text LCD và được lựa chọn tùytheo các chân điều khiển RS, RW Thực tế để điều khiển Text LCD không cần quantâm đến cách thức hoạt động của 2 thanh ghi này

1.2.6 Tổ chức bộ nhớ.

Trang 25

HD44780U có 3 loại bộ nhớ, đó là bộ nhớ RAM dữ liệu cần hiển thị DDRAM(Didplay Data RAM), bộ nhớ chứa ROM chứa bộ font tạo ra ký tự CGROM(Character Generator ROM) và bộ nhớ RAM chứa bộ font tạo ra các symbol tùy chọnCGRAM (Character Generator RAM).

1.2.6.1 DDRAM.

DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD, bộ nhớ này gồm

có 80 ô được chia thành 2 hàng, mỗi ô có độ rộng 8 bit và được đánh số từ 0 đến 39cho dòng 1, từ 64 đến 103 cho dòng 2 Mỗi ô nhớ tương ứng với 1 ô trên màn hìnhLCD Đối với LCD loại 16x2 có thể hiển thị tối đa 32 ký tự (có 32 ô hiển thị), vì thế

có một số ô nhớ của DDRAM không được sử dụng làm các ô hiển thị

Bảng 1.7 Thể hiện vị trí DDRAM trên màn hình.

Bảng 1.7 Cho thấy LCD 16x2 chỉ có 16 ô nhớ có địa chỉ từ 0 đến 15 và 16 ônhớ có địa chỉ từ 64 đến 79 là được hiển thị trên LCD Vì thế muốn hiển thị một ký tựnào đó trên LCD cần phải viết ký tự đó vào DDRAM ở 1 trong 32 địa chỉ trên Các ký

tự nằm ngoài 32 ô nhớ trên sẽ không được hiển thị, tuy nhiên vẫn không bị mất đi,chúng có thể được dùng cho các mục đích khác nếu cần thiết

1.2.6.2 CGROM.

CGROM là vùng nhớ cố định chứa định nghĩa font cho các ký tự Không thểtrực tiếp truy xuất vùng nhớ này mà chip HD44780U sẽ tự thực hiện khi có yêu cầuđọc font để hiển thị Một điều đáng lưu ý là địa chỉ font của mỗi ký tự vùng nhớCGROM chính là mã ASCII của ký tự đó Ví dụ ký tự ‘a’ có mã ASCII là 97, thamkhảo tổ chức của vùng nhớ CGROM trong hình 4, sẽ nhận thấy địa chỉ font của ‘a’ có

4 bit thấp là 0001 và 4 bit cao là 0110, địa chỉ tổng hợp là 01100001 = 97

Trang 26

Hình 1.28 Vùng nhớ CGROM.

1.2.6.3 Hoạt động của CGROM và DDRAM.

CGROM và DDRAM được tự động phối hợp trong quá trình hiển thị của LCD.Giả sử muốn hiển thị ký tự ‘a’ tại vị trí đầu tiên, dòng thứ 2 của LCD thì các bước thựchiện sẽ như sau:

- Vị trí đầu tiên của dòng 2 có địa chỉ là 64 trong bộ nhớ DDRAM (bảng 1.9),

vì thế cần ghi vào ô nhớ có địa chỉ 64 một giá trị là 97 (mã ASCII của ký tự ‘a’)

- Chip HD44780U đọc giá trị 97 này và coi như là địa chỉ của vùng nhớCGROM, nó sẽ tìm đến vùng nhớ CGROM có địa chỉ 97 và đọc bảng font đã đượcđịnh nghĩa sẵn ở đây

- Xuất font này ra các “chấm” trên màn hình LCD tại vị trí đầu tiên của dòng 2trên LCD

Đây chính là cách mà 2 bộ nhớ DDRAM và CGROM phối hợp với nhau đểhiển thị các ký tự Như vậy, việc lập trình điều khiển LCD tương đối đơn giản, đó là

Trang 27

viết mã ASCII vào bộ nhớ DDRAM tại đúng vị trí được yêu cầu, bước tiếp theo sẽ doHD44780U đảm nhiệm.

1.2.6.4 CGRAM.

CGRAM là vùng nhớ chứa các symbol do người dùng tự định nghĩa, mỗisymbol được có kích thước 5x8 và được dành cho 8 ô nhớ 8 bit Các symbol thườngđược định nghĩa trước và được gọi hiển thị khi cần thiết Vùng này có tất cả 64 ô nhớnên có tối đa 8 symbol có thể được định nghĩa

1.2.7 Điều khiển hiển thị Text LCD.

1.2.7.1 Các chân điều khiển LCD.

Các chân điều khiển việc đọc và ghi LCD bao gồm RS, R/W và EN

RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phéplựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc Vì cả 2 thanh ghi này đều đượckết nối với các chân Data của LCD nên cần 1 bit để lựa chọn giữa chúng Nếu RS=0,thanh ghi IR được chọn và nếu RS=1 thanh ghi DR được chọn Thanh ghi IR là thanhghi chứa mã lệnh cho LCD, vì thế nếu muốn gởi 1 mã lệnh đến LCD thì chân RS phảiđược reset về 0 Ngược lại, khi muốn ghi mã ASCII của ký tự cần hiển thị lên LCD thìset RS=1 để chọn thanh ghi DR Hoạt động của chân RS được mô tả trong hình 1.28

Hình 1.29 Hoạt động của chan RS.

R/W(chân số 4): Chân lựa chọn giữa việc đọc và ghi.Nếu R/W=0 thì dữ liệu sẽđược ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào LCD NếuR/W=1 thì dữ liệu sẽ được đọc từ LCD ra ngoài Tuy nhiên, chỉ có duy nhất 1 trườnghợp mà dữ liệu có thể đọc từ LCD ra, đó là đọc trạng thái LCD để biết LCD có đangbận hay không (cờ Busy Flag - BF) Do LCD là một thiết bị hoạt động tương đối chậm(so với vi điều khiển), vì thế một cờ BF được dùng để báo LCD đang bận, nếu BF=1thì cho LCD xử lí xong nhiệm vụ hiện tại,đến khi nào BF=0 một thao tác mới sẽ đượcgán cho LCD Vì thế, khi làm việc với Text LCD cần phải có một chương trình con đểchờ cho đến khi LCD rảnh Có 2 cách để viết chương trình chờ cho LCD rãnh Cách 1

là đọc bit BF về kiểm tra và chờ BF=0, cách này đòi hỏi lệnh đọc từ LCD về bộ điềukhiển ngoài, do đó chân R/W cần được nối với bộ điều khiển ngoài Cách 2 là viết mộthàm delay một khoảng thời gian cố định nào đó (tốt nhất là trên 1ms) Ưu điểm củacách 2 là sự đơn giản vì không cần đọc LCD, do đó chân R/W không cần sử dụng vàluôn được nối với GND Tuy nhiên, nhược điểm của cách 2 là khoảng thời gian delay

Trang 28

cố định nếu quá lớn sẽ làm chậm quá trình thao tác LCD, nếu quá nhỏ sẽ gây ra lỗihiển thị.

EN (chân số 5): Chân cho phép LCD hoạt động (Enable), chân này cần đượckết nối với bộ điều khiển để cho phép thao tác LCD Để đọc và ghi data từ LCD cầntạo một “xung cạnh xuống” trên chân EN, nói theo cách khác, muốn ghi dữ liệu vàoLCD trước hết cần đảm bảo rằng chân EN=0, tiếp đến xuất dữ liệu đến các chân D0:7,sau đó set chân EN lên 1 và cuối cùng là xóa EN về 0 để tạo 1 xung cạnh xuống

Đưa con trỏ về vị trí đầu, dòng 1 của LCD: Lệnh này thực hiện việc đưa con trỏ

về vị trí đầu tiên của bộ nhớ DDRAM, vì thế nếu sau lệnh này một biến được ghi vàoDDRAM thì biến này sẽ nằm ở vị trí đầu tiên (1;1) RS cũng phải bằng 0 trước khi ghilệnh Mã lệnh là 0x02 hoặc 0x03 (chọn 1 trong 2 mã lệnh, tùy ý)

Đặt địa chỉ DDRAM – định vị trí con trỏ cho DDRAM: Di chuyển con trỏ đếnmột vị trí tùy ý trong DDRAM và vì thế có thể được dùng để chọn vị trí cần hiển thịtrên LCD Để thực hiện lệnh này cần reset RS=0 Bit MSB của mã lệnh (D7) phải

bằng 1, 7 bit còn lại của mã lệnh chính là địa chỉ DDRAM muốn di chuyển đến Ví dụ:

Muốn di chuyển con trỏ đến vị trí thứ 3 trên dòng 2 của LCD (địa chỉ 42), cần ghi mãlệnh 0xAA vì 0xAA=10101010 (binary) trong đó bit MSB bằng 1, bảy bit còn lại là0101010=42, địa chỉ của ô nhớ muốn đến

Ghi dữ liệu vào CGRAM hoặc DDRAM: Vì đây không phải là lệnh ghiinstruction mà là 1 lệnh ghi dữ liệu nên chân RS cần được set lên 1 trước khi ghi lệnhvào LCD Lệnh này cho phép ghi mã ASCII của một ký tự cần hiển thị vào thanh ghiDDRAM

Trang 29

Đặt các chức năng hiển thị: Lệnh này chỉ ra cách hiển thị một ký tự tiếp theo 1

ký tự trước đó

Ví dụ: Nếu muốn hiển thị 2 ký tự liên tiếp AB, trước hết viết A tại vị trí 5, dòng

1 Sau đó ghi B vào LCD, lúc này có 4 cách mà LCD có thể hiển thị B như sau:

- Hiển thị B bên phải A tại vị trí số 6

- B cũng có thể được hiển thị bên trái A, tại vị trí số 4

- LCD có thể tự dịch chuyển A về bên trái đến vị trí 4 sau đó hiển thị B bênphải A, tại vị trí 5

- LCD dịch chuyển A về bên phải đến vị trí 6 sau đó hiển thị B bên trái A, tại vịtrí 5

Có thể chọn 1 trong 4 cách hiển thị trên thông qua lệnh đặt các chức năng Đây

là lệnh ghi Instruction nên RS=0, 5 bit cao D7:3=00000, bit D2=1, hai bit còn lại D1:0chứa mã lệnh để lựa chọn 1 trong 4 cách hiển thị Xem lại bảng 3, bit D1 chứa giá trị I/

D và D0 chứa S Trong đó I/D nghĩa là tăng hoặc giảm (Increment or Decrement).I/D= 1 là hiển thị tăng tức ký tự sau sẽ hiển thị bên phải ký tự trước, nếu I/D=0 thì hiểnthị giảm, tức ký tự sau hiển thị bên trái ký tự trước S là giá trị Dịch, nếu S=1 thì các

ký tự trước đó sẽ được “đẩy” đi, ký tự sau chiếm chỗ ký tự trước, ngược lại nếu S=0thì vị trí hiển thị của các ký tự trước đó không thay đổi Có thể tóm tắt 4 mode hiển thịứng với 4 mã lệnh như sau:

D7:0 = 0x04 (00000100): Hiển thị giảm và không dịch

D7:0 = 0x05 (00000101): Hiển thị giảm và dịch

D7:0 = 0x06 (00000110):Hiển thị tăng và không dịch (thông thưởng sử dụng).D7:0 = 0x07 (00000111): Hiển thị tăng và dịch

Bật/Tắt hiển thị – xác lập cách hiển thị cho LCD: Lệnh này bao gồm các thông

số cho phép LCD hiển thị, cho phép hiển thị cursor và mở/tắt nhấp nháy Đây cũng làmột lệnh ghi Instrcution nên RS phải bằng 0 Mã lệnh cho lệnh này có dạng00001DCB trong đó D (Display) cho phép hiển thị LCD nếu mang giá trị 1, C(Cursor) bằng 1 thì cursor sẽ được hiển thị và B là nhấp nháy cho con trỏ tại vị trí hiểnthị (nhấp nháy là dạng 1 ô đen tại vị trí ký tự đang hiển thị) Mã lệnh được dùng phổbiến cho lệnh này là 0x0E (00001110 - hiển thị con trỏ nhưng không nhấp nháy)

Đặt chức năng–xác lập chức năng cho LCD:Đây là lệnh thiết lập phương thứcgiao tiếp với LCD, kích thước font chữ và số lượng line của LCD.RS cũng phải bằng 0khi sử dụng lệnh này.Mã lệnh Đặt chức năng có dạng 001DLNFxx.Trong đó nếuDL=1(DL:Data Length)thì mode giao tiếp 8 bit sẽ được dùng,lúc này tất cả các chân từD0 đến D7 phải được kết nối với bộ điều khiển ngoài.Nếu DL=0 thì mode 4 bit đượcdùng,trong trường hợp này chỉ có 4 chân D4:7 được dùng để truyền nhận dữ liệu vàkết nối với bộ điều khiển ngoài,các chân D0:3 được để trống.N quy định số dòng củaLCD.F là kích thước font chữ hiển thị, do LCD có 2 bộ font chữ có sẵn trong CGROMnên cần lựa chọn thông qua bit F,nếu F=1 bộ font 5x10 được sử dụng và nếu F=0 thìfont 5x8 được hiển thị.2 bit thấp trong mã lệnh này có thể được gán giá trị tùy ý.Mã

Trang 30

lệnh được dùng phổ biến cho lệnh Đặt chức năng là 0x38 (00111000–giao tiếp 8 bit,2dòng với font 5x8) hoặc 0x28 (00101000 –giao tiếp 4 bit,2 dòng với font 5x8).

1.2.7.3 Giao tiếp 8 bit và 4 bit.

Text LCD có 2 mode để ghi và đọc dữ liệu mode 8 bit và mode 4 bit:

Mode 8 bit: Nếu bit DL trong lệnh function set bằng 1 thì mode 8 bit đượcdùng Để sử dụng mode 8 bit, tất cả các lines dữ liệu của LCD từ D0 đến D7 (từ chân

7 đến chân 14) phải được nối với 1 PORT của chip điều khiển bên ngoài Ưu điểm củaphương pháp giao tiếp này là dữ liệu được ghi và đọc rất nhanh và đơn giản vì chipđiều khiển chỉ cần xuất hoặc nhận dữ liệu trên 1 PORT Tuy nhiên, phương pháp này

có nhược điểm là tổng số chân dành cho giao tiếp LCD quá nhiều, nếu tính luôn cả 3chân điều khiển thì cần đến 11 đường cho giao tiếp LCD

Mode 4 bit: LCD cho phép giao tiếp với bộ điều khiển ngoài theo chế độ 4 bit.Trong chế độ này, các chân D0, D1, D2 và D3 của LCD không được sử dụng (đểtrống), chỉ có 4 chân từ D4 đến D7 được kết nối với chip bộ điều khiển ngoài Cácinstruction và data 8 bit sẽ được ghi và đọc bằng cách chia thành 2 phần, gọi là cácNibbles, mỗi nibble gồm 4 bit và được giao tiếp thông qua 4 chân D7: 4, nibble caođược xử lí trước và nibble thấp sau Ưu điểm lớn nhất của phương pháp này tối thiểu

số đường kết nối dùng cho giao tiếp LCD

1.3 Động cơ điện một chiều

Hiện nay, trên thực tế máy điện một chiều được sử dụng rất rộng rãi, đặc biệt làđộng cơ điện một chiều Trong công nghiệp, động cơ điện một chiều được sử dụng ởnhững nơi yêu cầu mômen mở máy lớn hoặc yêu cầu điều chỉnh tốc độ bằng phẳng,

êm dịu và phạm vi rộng Vì vậy động cơ điện một chiều có đặc tính làm việc rất tốtnên được làm truyền động chớn cho các băng tải, máy bào giường, khớp tay Rooboot,

di chuyển rooboot Chính vì sự ưu điểm vướt trội của động cơ điện một chiều nên emlựa chọn động cơ điện một chiều để làm đề tài nghiên cứu và ứng dụng

Hình 1.30 Động cơ điện một chiều.

1.3.1 Cấu tạo.

Động cơ điện một chiều gồm có 2 phần: Phần cảm (stator) và phần ứng (rôtor)

Trang 31

1.3.1.1 Phần cảm (Stato).

Hình 1.31 Phần cảm (Stato) động cơ điện một chiều.

- Cực từ chính: Là nam châm điện Có nhiệm vụ tạo ra từ trường chính trongmáy, cực từ chính gồm có

+ Lõi thép cực từ chính: Làm bằng lá thép dày 0,5-1,0 mm ép lại và tán chặt.+ Dây quấn kích từ: Làm bằng dây điện từ lõi đồng, các cuộn dây được đặt lêncực từ chính nối nối tiếp với nhau

- Cực từ phụ: Gồm có:

+ Lõi thép cực từ phụ: Làm bằng thép khối

+ Dây quấn phụ: Làm bằng dây điện từ lõi đồng và đặt lên các cực từ phụ

- Gông từ (Vỏ máy): Làm mạch từ nối liền các cực từ, đồng thời làm vỏ máy,ngoài ra còn có nắp máy, giá đỡ ổ bi

1.3.1.2 Phần ứng (Roto).

Gồm có:

Hình 1.32 Phần ứng (Rôto) động cơ điện một chiều.

- Lõi thép phần ứng: Dùng để dẫn từ, làm bằng các lá thép kỹ thuật điện ghéplại với nhau Trên lá thép có dập rãnh để đặt dây quấn

- Dây quấn phần ứng: Là phần sinh ra sức điện động và có dòng điện chạy qua.Thường làm bằng dây đồng có bọc chách điện

Trang 32

- Trục rôto:Là phần đỡ lõi sắt phần ứng,cánh quạt và ổ bi,được làm bằng thépcứng.

- Cổ góp: Gồm nhiều phiến đồng cách điện với nhau bằng lớp mica dày 0,4 đến1,2 mm và hợp thành hình trụ tròn

1.3.2 Nguyên lý làm việc.

Trang 33

Hình 1.35 Sơ đồ nguyên lý động cơ điện một chiều.

Khi cho điện áp một chiều U vào hai chổi điện (+) với chổi than A cực (-)của nguồn điện một chiều với chổi than B, trong dây quấn phần ứng có dòng điện.Dòng điện này kết hợp với từ trường phần cảm( NS ) sinh ra lực điện từ Fđt

1.3.3 Sơ đồ đấu dây.

Hình 1.36 Sơ đồ nối dây của động cơ kích từ độc lập và song song.

Khi nguồn điện 1 chiều có công suất lớn và điện áp không đổi thì mạch kích từthường mắc song song với mạch phần ứng

Khi nguồn điện một chiều có công suất không đủ lớn thì mạch điện phần ứng vàmạch kích từ mắc vào 2 nguồn một chiều độc lập

Trang 34

1.3.4 Phương trình đặc tính cơ.

Theo sơ đồ nối dây của động cơ điện một chiều kích từ độc lập hình 1.36 viếtđược phương trình cân bằng điện áp của mạch phần ứng ở chế độ xác lập như sau

Uư = E + (Rư + Rf).Iư (1-1)Trong đó:

-rtx: Điện trở tiếp xúc của chổi điện (Ω).)

Sức điện động E của phần ứng động cơ được xác định theo biểu thức:

E =

a

N P

2

.

 Φ ω = KΦ ω (1-2)Trong đó:

- P: Số đôi điện cực chính

- N: Số thanh dẫn tác dụng của cuộn dây phần ứng

- a: Số mạch nhánh song song của cuộn dây phần ứng

- ω: Tốc độ góc (rad/s)

- Φ: Từ thông kích từ chính một cực từ (Wb)

Đặt K = 2P..N.a

 : Hệ số kết cấu của động cơ

Nếu biểu diễn sức điện động theo tốc độ quay n (vòng/phút) thì E = Kc.Φ.n và

ω =

60

.

60

. Φ.n = Kc.Φ.n Trong đó: Kc: Hệ số sức điện động của động cơ

Từ các phương trình trên ta có:

.

, ,

R R K

u

Đây là phương trình đặc tính cơ điện của động cơ điện một chiều kích từ độc lập

Mặt khác có mômen điện từ của động cơ ở chế độ xác lập được xác định theobiểu thức:

Trang 35

Mdt = K.Φ.Iư (1-4)

Suy ra Iư =

R R K

R R K

Đây là phương trình đặc tính cơ của động cơ điện một chiều kích từ độc lập

- Có thể biểu diễn phương trình đặc cơ dưới dạng khác

ω = ω0 - ∆ω (1-7)Trong đó : ω0 =

.

Nếu xét đến tất cả các tổn thất thì: M co = Mdt ± ∆M

Hình 1.37 Đặc tính cơ điện của động cơ một chiều kích từ độc lập.

Theo đồ thị trên khi Iư = 0 hoặc M = 0 thì có: ω = ω0 =

.

u

R R

Trang 36

Và M = K.Φ.Inm =Mnm (1-9)

Với Inm, Mnm: Gọi là dòng điện ngắn mạch và mômen ngắn mạch

Hình 1.38 Đặc tình cơ của động cơ điện một chiều kích từ độc lập.

1.3.5 Ảnh hưởng của các thông số tới tốc độ động cơ.

Từ phương trình đặc tính cơ:= M

K

R R K

2

) (

dm

R R

giảm Nếu Rf càng lớn thì tốc độđộng cơ càng giảm đồng thời dòng ngắn mạch và mômen ngắn mạch cũng giảm Chonên thường sử dụng phương pháp này để hạn chế dòng và điều chỉnh tốc độ động cơ ởphía dưới tốc độ cơ bản

-Trường hợp thay đổi U< Uđm

-Ảnh hưởng của từ thông:

Muốn thay đổi  thay đổi dòng kích từ Ikt khi đó tốc độ không tải

1.3.6 Các phương pháp điều chỉnh tốc độ động cơ điện một chiều kích từ độc lập.

1.3.6.1 Điều chỉnh tốc độ bằng cách thay đổi điện áp phần ứng.

Đối với các máy điện một chiều, khi giữ từ thông không đổi và điều chỉnh điện

áp trên mạch phần ứng thì dòng điện, moment sẽ không thay đổi Để tránh những biếnđộng lớn về gia tốc và lực động trong hệ điều chỉnh nên phương pháp điều chỉnh tốc

M

Mnm0

Trang 37

độ bằng cách thay đổi điện áp trên mạch phần ứng thường được áp dụng cho động cơmột chiều kích từ độc lập.

Để điều chỉnh điện áp đặt vào phần ứng động cơ, dùng các bộ nguốn điều ápnhư máy phát điện một chiều, các bộ biến đổi van hoặc khuêch đại tư Các bộ biến đổitrên dung để biến dòng xoay chiều của lưới thành dòng một chiều điều chỉnh giá trịsức điện động theo yêu cầu

Phương trình đặc tính cơ của động cơ điện một chiều kích từ độc lập:

n= M

K K

R R K

U

M E

f u E

.

Ta có tốc độ không tải lý tưởng: n0 = Uđm/KEđm

R R

K K n

M

f u

M E

Khi thay đổi điện áp đặt lên phần ứng của động cơ thì tốc độ không tải lý tưởng

sẽ thay đổi nhưng độ cứng của đường đặc tính cơ thì không thay đổi

Như vậy: Khi thay đổi điện áp thì độ cứng của đường đặc tính cơ không thayđổi Họ đặc tính cơ là những đường thẳng song song với đường đặc tính cơ tự nhiên

Hình 1.39 Đường đặc tính cơ khi thay đổi điện áp đặt vào mạch phần ứng.

Phương pháp điều chỉnh tốc độ bằng cách thay đổi điện áp phần ứng thực chất

là giảm áp và cho ra những tốc độ nhỏ hơn tốc độ cơ bản ncb Đồng thời điều chỉnhnhảy cấp hay liên tục tùy thuộc vào bộ nguồn có điện áp thay đổi một cách liên tục vàngược lại

Theo lý thuyết thì phạm vi điều chỉnh D =  Nhưng trong thực tế động cơ điệnmột chiều kích từ độc lập nếu không có biện pháp đặc biệt chỉ làm việc ở phạm vi chophép: Umincp =

Trang 38

Hình 1.40 Sơ đồ nguyên lý điều chỉnh tốc độ bằng cách thay đổi từ thông.

Điều chỉnh từ thông kích thích của động cơ điện một chiều là điều chỉnh

moment điện từ của động cơ M = KMIư và sức điện động quay của động cơ

Eư = KEn Thông thường, khi thay đổi từ thông thì điện áp phần ứng được giữ nguyên

giá trị định mức

Đối với các máy điện nhỏ và đôi khi cả các máy điện công suất trung bình,

thường sử dụng các biến trở đặt trong mạch kích từ để thay đổi từ thông do tổn hao

công suất nhỏ Đối với các máy điện công suất lớn thì dùng các bộ biến đổi đặc biệt

như: máy phát, khuếch đại máy điện, khuếch đại từ, bộ biến đổi van…

Thực chất của phương pháp này là giảm từ thông Nếu tăng từ thông thì dòng

điện kích từ Ikt sẽ tăng dần đến khi hư cuộn dây kích từ Do đó, để điều chỉnh tốc độ

chỉ có thể giảm dòng kích từ tức là giảm nhỏ từ thông so với định mức Thấy lúc này

tốc độ tăng lên khi từ thông giảm n = .

E

K U

Mặt khác ta có: Moment ngắn mạch Mn = KMIn nên khi  giảm sẽ làm cho

Mn giảm theo

Độ cứng của đường đặc tính cơ

Khi  giảm thì độ cứng  cũng giảm, đặc tính cơ sẽ dốc hơn Nên có họ

đường đặc tính cơ khi thay đổi từ thông như sau

Hình 1.41 Họ đường đặc tính cơ khi thay đổi từ thông.

Trang 39

Phương pháp điều chỉnh tốc độ bằng cách thay đổi từ thông có thể điều chỉnhđược tốc độ vô cấp và cho ra những tốc độ lớn hơn tốc độ cơ bản.

Theo lý thuyết thì từ thông có thể giảm gần bằng 0, nghĩa là tốc độ tăng đến vôcùng Nhưng trên thực tế động cơ chỉ làm việc với tốc độ lớn nhất:

độ cho phép

1.3.6.3 Điều chỉnh tốc độ bằng cách thay đổi điện trở phụ trên mạch phần ứng.

Hình 1.42 Sơ đồ đấu dây.

K K

R R K

U

M E

f u E

.

Trang 40

Nguyên lý điều chỉnh tốc độ bằng cách thay đổi điện trở phụ trên mạch phầnứng được giải thích như sau:

Giả sử động cơ đang làm việc xác lập với tốc độ n1 đóng thêm Rf vào mạchphần ứng Khi đó dòng điện phần ứng Iư đột ngột giảm xuống, còn tốc độ động cơ doquán tính nên chưa kịp biến đổi Dòng Iư giảm làm cho moment động cơ giảm theo vàtốc độ giảm xuống, sau đó làm việc xác lập tại tốc độ n2 với n2 > n1

Phương pháp điều chỉnh tốc độ này chỉ có thể điều chỉnh tốc độ n < ncb Trênthực tế không thể dùng biến trở để điều chỉnh nên phương pháp này sẽ cho những tốc

D =

1

) 3 2 ( 

Khi giá trị Rf càng lớn thì tốc độ động cơ càng giảm Đồng thời dòng điện ngắnmạch In và moment ngắn mạch Mn cũng giảm Do đó, phương pháp này được dùng đểhạn chế dòng điện và điều chỉnh tốc độ dưới tốc độ cơ bản Và tuyệt đối không đượcdùng cho các động cơ của máy cắt kim loại

- Kết luận: Sau khi phân tích ba phương pháp điều khiển nêu trên thì phương pháp

điều khiển bằng cách thay đổi điện áp phần ứng để điều khiển tốc độ động cơ điện mộtchiều là tốt hơn cả Cho nên em chọn phương pháp này làm đề tài nghiên cứu và ứngdụng

1.3.7 Mở máy động cơ điện một chiều.

Để mở máy động cơ một chiều được tốt, phải thực hiện được những yêu cầu sau đây:

- Mô men mở máy Mmm phải lớn để động cơ đạt được tốc độ quay quy địnhtrong thời gian ngắn nhất

- Dòng điện mở máy Imm phải được hạn chế đến mức thấp nhất để tránh cho dâyquấn khỏi bị cháy hoặc ảnh hưởng xấu đến quá trình đổi chiều

- Thời gian mở máy cần nhỏ để máy có thể làm việc được ngay .

- Thiết bị mở máy đơn giản, rẻ tiền, tin cậy và ít tốn năng lượng

Trong khuôn khổ những yêu cầu trên khi mở máy thường áp dụng 3 phươngpháp mở máy sau:

- Mở máy trực tiếp

- Mở máy nhờ biến trở

- Mở máy bằng điện áp thấp

1.3.7.1 Mở máy trực tiếp.

Ngày đăng: 11/03/2014, 00:21

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Cấu trúc chân của Atmega32. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.3. Cấu trúc chân của Atmega32 (Trang 6)
1.1.3.4. Sơ đồ khối. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
1.1.3.4. Sơ đồ khối (Trang 8)
Hình 1.5. Sơ đố cấu trúc CPU của Atmega32. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.5. Sơ đố cấu trúc CPU của Atmega32 (Trang 9)
Hình 1.10. Cấu trúc chân của AVR. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.10. Cấu trúc chân của AVR (Trang 14)
Hình 1.11. Sơ đồ một cổng vào ra. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.11. Sơ đồ một cổng vào ra (Trang 15)
Hình 1.12. Sơ đồ cấu trúc bộ định thời. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.12. Sơ đồ cấu trúc bộ định thời (Trang 16)
Hỡnh 1.14. Đơn vị so sỏnh ngừ ra. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
nh 1.14. Đơn vị so sỏnh ngừ ra (Trang 17)
Hình 1.25. Mạch nạp STK200 sử dụng DB25 và 4 điện trở. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.25. Mạch nạp STK200 sử dụng DB25 và 4 điện trở (Trang 22)
Hình 1.27. Kết nối LCD với AVR và nguồn. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.27. Kết nối LCD với AVR và nguồn (Trang 24)
Hình 1.31. Phần cảm (Stato) động cơ điện một chiều. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 1.31. Phần cảm (Stato) động cơ điện một chiều (Trang 31)
Hình 2.3. Hộp thọa bản quyên của sản phẩm. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 2.3. Hộp thọa bản quyên của sản phẩm (Trang 44)
Hình 2.5. Hộp thoại mã của sản phẩm. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 2.5. Hộp thoại mã của sản phẩm (Trang 44)
Hình 2.22. Tìm chíp ATMega32. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 2.22. Tìm chíp ATMega32 (Trang 52)
Hình 2.24. Tìm động cơ một chiều. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 2.24. Tìm động cơ một chiều (Trang 53)
Hình 2.26. Logo chương trình Altium10. - Luận văn Ứng dụng AVR lập trình điều khiển động cơ điện một chiều docx
Hình 2.26. Logo chương trình Altium10 (Trang 54)

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