LỜI MỞ ĐẦU1Chương 1. CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG21.1.TỔNG QUAN VỀ CẤU TRÚC PHẦN CỨNG KIT EASY AVR V721.1.1.Tổng quan cấu trúc KIT Easy AVR v721.1.2.Các khối chức năng trong Easy AVR v731.1.2.1. Khối nguồn31.1.2.2. Bộ điều khiển được hỗ trợ41.1.2.3. Lập trình trên KIT51.1.2.4. Ổ cắm mikroBUS71.1.2.5. Nhóm đầu vào đầu ra81.1.2.6. LCD 2x16 ký tự101.1.2.7. Piezo Buzzer101.2.GIAO TIẾP I2C TRONG ATMEGA32111.2.1.Tổng quan về Atmega32111.2.2.GIAO TIẾP TWI (I2C) TRONG AVR ATMEGA32121.2.2.1. Giao diện TWI (I2C)121.2.2.2. TWI trên AVR131.2.2.2.1. Thanh ghi131.2.2.2.2. Hoạt động của TWI:151.3.IC DS1307 VÀ MODUL RTC2151.3.1.IC DS1307151.3.1.1.Cấu tạo chung151.3.1.2. Ghép nối DS1307 với vi điều khiển161.3.1.3. Tổ chức thanh ghi trong DS1307171.3.2.Modul Click RTC218Chương 2. THIẾT KẾ ỨNG DỤNG VÀ GIẢI THUẬT PHẦN MỀM202.1. YÊU CẦU THIẾT KẾ ỨNG DỤNG202.1.1. Các chức năng ứng dụng cần đạt được202.1.2. Nguyên lý thiết kế ứng dụng202.2. THIẾT KẾ PHẦN CỨNG ỨNG DỤNG212.2.1. Khối nguồn212.2.2. Khối xử lý trung tâm212.2.4 Khối thời gian thực232.2.4.1. Giới thiệu232.2.4.2 Sơ đồ mạch232.3. THIẾT KẾ PHẦN MỀM ỨNG DỤNG25Chương 3. KẾT QUẢ ỨNG DỤNG313.1. KẾT QUẢ MÔ PHỎNG313.2. HƯỚNG ỨNG DỤNG CỦA ĐỀ TÀI323.3. ƯU NHƯỢC ĐIỂM CỦA MẠCH THIẾT KẾ333.3.1. Ưu điểm333.3.2. Nhược điểm33KẾT LUẬN34DANH MỤC TÀI LIỆU THAM KHẢO35 LỜI MỞ ĐẦUNgày nay với sự phát triển nhảy vọt của công nghệ khoa học kỹ thuật, việc ứng dụng các thành tựu khoa học vào cuộc sống ngày càng mạnh mẽ, dần giải thoát lao động chân tay cho con người. Ngành công nghệ kỹ thuật điện tử là một trong những ngành phát triển với tốc độ nhanh chóng mặt với rất nhiều ứng dụng rộng rãi trong cuộc sống hàng ngày, từ hệ thống internet toàn cầu đến những dây chuyền sản xuất tự động hóa hiện đại và những thiết bị điện tử dân dụng vô cùng tiện ích và đa dạng. Chúng em đã được tiếp cận với phần nào những kiến thức khoa học và công nghệ kỹ thuật hiện đại sau một thời gian học tập trên giảng đường. Cùng với kinh nghiệm thực tế học tập và vận dụng, chúng em đã có cơ hội chuyển những kiến thức lý thuyết có phần trừu tượng đã học được thành một mô hình sản phẩm thực tế qua đề tài “Thiết kế và lập trình chức năng hẹn giờ báo thức cho học viên trên KIT Easy AVR v7”.Đối với đề tài này, có những yêu cầu như đảm bảo về tính thực thi cao, có khả năng phát triển cùng với đó là đảm bảo về chất lượng, độ chính xác cao, làm việc lâu dài, bền bỉ theo thời gian. Ngoài ra việc tiết kiệm chi phí hay thời gian vận hành cũng cần phải quan tâm. Từ các yêu cầu trên hệ thống chúng ta cần sử dụng IC thời gian thực DS1307 hay chip ATmega32 và Modul Click RTC2 để thực hiện nội dung đề tài. Trong quá trình thực hiện đề tài nêu ở trên, chúng em đã nhận được sự quan tâm và chỉ bảo tận tình, chu đáo của thầy cô giáo trong Khoa Điện tử viễn thông và bạn bè, đồng chí đã giúp chúng em hoàn thành được nội dung đề tài của mình một cách tốt nhất và đạt hiệu quả ứng dụng thực tế cao như bên dưới.Nhưng với khả năng được học tập nghiên cứu và tự nghiên cứu còn nhiều hạn chế về nội dung và kiến thức trong phạm vi đề tài, sẽ không tránh khỏi những thiếu sót và sai lầm. Thông qua đề tài này, chúng em rất mong được các thầy cô chỉ bảo thêm, để chúng em có điều kiện nâng cao trình độ, hiểu biết cũng như kỹ năng của bản thân để thực hiện những đề tài hay sản phẩm sau này một cách tốt hơn. Chúng em rất mong được tiếp thu những ý kiến đóng góp của các quý thầy cô Chúng em xin chân thành cảm ơn Chương 1. CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG1.1.TỔNG QUAN VỀ CẤU TRÚC PHẦN CỨNG KIT EASY AVR V71.1.1.Tổng quan cấu trúc KIT Easy AVR v7Easy AVR v7 là thế hệ KIT phát triển nổi tiếng thứ bảy của mikroElektronika. Nó được yêu thích bởi người mới bắt đầu và người có đam mê, cũng như các chuyên gia, và được sử dụng trong giáo dục ngày nay.KIT Easy AVR v7 là một nền phát triển đã sử dụng vi điều khiển AVR ATmega32 từ Atmel. Hoàn hảo cho tất cả mọi cấp độ chuyên môn, vô số các tính năng trên KIT giúp bạn dễ dàng thử nghiệm và tận dụng tối đa các dự án của mình. Bạn cũng có thể sử dụng một loạt các bộ điều khiển ATmega32 trên bảng và kết nối với một loạt các bảng kích chuột MikroElektronika sử dụng ổ cắm mikroBUS. Hình 1.1: KIT Easy AVR v7Các thành phần của Easy AVR v7: Vi điều khiển ATmega32 Đầu nối USBUART Đầu nối RS232 Cảm biến nhiệt độ LM35 Cảm biến nhiệt độ DS1820 Chuông báo Piezo I2C EEPROM Màn hình hiển thị 4 Led 7 đoạn Đế giữ bằng nhựa cho màn hình GLCD LCD Lập trình mikroProg 3 kết nối mikroBUS Bộ điều khiển bảng điều khiển cảm ứng Tiêu đề PORT 3 chân bổ sung cho đầu dò oscilloscope Đầu nối USB của trình lập trình Đầu nối JTAG Nút reset LED SMD Bộ chuyển mạch DIP Nút ấn Tiêu đề PROTO Dao động tinh thể Đầu nối LCD GLCD LCD và đèn nền GLCD Chiết áp tương phản LCD GLCD Chiết áp ADC1.1.2.Các khối chức năng trong Easy AVR v71.1.2.1. Khối nguồnKIT này có chứa nguồn điện chuyển mạch tạo ra các điện áp ổn định và mức hiện tại cần thiết cho powering mỗi phần của KIT. Phần cung cấp điện có hai bộ điều chỉnh điện: ST1S10, tạo ra VCC5V, và MC33269DT3.3 trong đó tạo nguồn cung cấp VCC3.3V. KIT có thể được cung cấp theo ba cách khác nhau: với USB cấp nguồn (CN1), sử dụng bộ điều hợp bên ngoài qua bộ điều hợp đầu nối (CN24) hoặc các đầu nối vít bổ sung (CN25). Bên ngoài mức điện áp adapter phải nằm trong khoảng 915V DC hoặc 712V AC. Sử dụng nhảy J22 để xác định nguồn điện bạn đang sử dụng và nhảy J5 để chỉ định cho dù bạn đang sử dụng nguồn cung cấp điện nào 5V hoặc 3.3V. Và khi cung cấp điện bằng cách sử dụng adapter bên ngoài hoặc nguồn điện USB bạn có thể bật nguồn bằng cách sử dụng SWITCH 1. LED nguồn (Green ON) sẽ chỉ ra sự có mặt của nguồn điện.
Trang 2DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
ADC Analog to digital converter Mạch chuyển đổi tương tự sang sốBCD Binary coded decimal Mã nhị phân thập phânLCD Liquit crystal display Màn hình tinh thể lỏngLED Light emitting diode Điot phát quang
SPI Serial peripheral bus Chuẩn truyền thông SPI
RS Register slecter Lựa chọn chế độ thanh ghi
Trang 4DANH MỤC HÌNH VẼ
LỜI MỞ ĐẦU 1
Chương 1 CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG 2
1.1 TỔNG QUAN VỀ CẤU TRÚC PHẦN CỨNG KIT EASY AVR V7 2 1.1.1 Tổng quan cấu trúc KIT Easy AVR v7 2
1.1.2 Các khối chức năng trong Easy AVR v7 3
1.1.2.1 Khối nguồn 3
1.1.2.2 Bộ điều khiển được hỗ trợ 4
1.1.2.3 Lập trình trên KIT 5
1.1.2.4 Ổ cắm mikroBUS 7
1.1.2.5 Nhóm đầu vào / đầu ra 8
1.1.2.6 LCD 2x16 ký tự 10
1.1.2.7 Piezo Buzzer 10
1.2 GIAO TIẾP I2C TRONG ATMEGA32 11
1.2.1 Tổng quan về Atmega32 11
1.2.2 GIAO TIẾP TWI (I2C) TRONG AVR ATMEGA32 12
1.2.2.1 Giao diện TWI (I2C) 12
1.2.2.2 TWI trên AVR 13
1.2.2.2.1 Thanh ghi 13
1.2.2.2.2 Hoạt động của TWI: 15
1.3 IC DS1307 VÀ MODUL RTC2 15
1.3.1 IC DS1307 15
1.3.1.1 Cấu tạo chung 15
1.3.1.2 Ghép nối DS1307 với vi điều khiển 16
1.3.1.3 Tổ chức thanh ghi trong DS1307 17
Trang 51.3.2 Modul Click RTC2 18
Chương 2 THIẾT KẾ ỨNG DỤNG VÀ GIẢI THUẬT PHẦN MỀM 20
2.1 YÊU CẦU THIẾT KẾ ỨNG DỤNG 20
2.1.1 Các chức năng ứng dụng cần đạt được 20
2.1.2 Nguyên lý thiết kế ứng dụng 20
2.2 THIẾT KẾ PHẦN CỨNG ỨNG DỤNG 21
2.2.1 Khối nguồn 21
2.2.2 Khối xử lý trung tâm 21
2.2.4 Khối thời gian thực 23
2.2.4.1 Giới thiệu 23
2.2.4.2 Sơ đồ mạch 23
2.3 THIẾT KẾ PHẦN MỀM ỨNG DỤNG 25
Chương 3 KẾT QUẢ ỨNG DỤNG 31
3.1 KẾT QUẢ MÔ PHỎNG 31
3.2 HƯỚNG ỨNG DỤNG CỦA ĐỀ TÀI 32
3.3 ƯU NHƯỢC ĐIỂM CỦA MẠCH THIẾT KẾ 33
3.3.1 Ưu điểm 33
3.3.2 Nhược điểm 33
KẾT LUẬN 34
DANH MỤC TÀI LIỆU THAM KHẢO 35
Trang 8LỜI MỞ ĐẦU
Ngày nay với sự phát triển nhảy vọt của công nghệ khoa học kỹ thuật, việc ứngdụng các thành tựu khoa học vào cuộc sống ngày càng mạnh mẽ, dần giải thoát laođộng chân tay cho con người Ngành công nghệ kỹ thuật điện tử là một trong nhữngngành phát triển với tốc độ nhanh chóng mặt với rất nhiều ứng dụng rộng rãi trongcuộc sống hàng ngày, từ hệ thống internet toàn cầu đến những dây chuyền sản xuất tựđộng hóa hiện đại và những thiết bị điện tử dân dụng vô cùng tiện ích và đa dạng Chúng em đã được tiếp cận với phần nào những kiến thức khoa học và công nghệ
kỹ thuật hiện đại sau một thời gian học tập trên giảng đường Cùng với kinh nghiệmthực tế học tập và vận dụng, chúng em đã có cơ hội chuyển những kiến thức lý thuyết
có phần trừu tượng đã học được thành một mô hình sản phẩm thực tế qua đề tài “Thiết
kế và lập trình chức năng hẹn giờ báo thức cho học viên trên KIT Easy AVR v7”.Đối với đề tài này, có những yêu cầu như đảm bảo về tính thực thi cao, có khảnăng phát triển cùng với đó là đảm bảo về chất lượng, độ chính xác cao, làm việc lâudài, bền bỉ theo thời gian Ngoài ra việc tiết kiệm chi phí hay thời gian vận hành cũngcần phải quan tâm Từ các yêu cầu trên hệ thống chúng ta cần sử dụng IC thời gianthực DS1307 hay chip ATmega32 và Modul Click RTC2 để thực hiện nội dung đề tài Trong quá trình thực hiện đề tài nêu ở trên, chúng em đã nhận được sự quan tâm
và chỉ bảo tận tình, chu đáo của thầy cô giáo trong Khoa Điện tử viễn thông và bạn
bè, đồng chí đã giúp chúng em hoàn thành được nội dung đề tài của mình một cách tốtnhất và đạt hiệu quả ứng dụng thực tế cao như bên dưới
Nhưng với khả năng được học tập nghiên cứu và tự nghiên cứu còn nhiều hạnchế về nội dung và kiến thức trong phạm vi đề tài, sẽ không tránh khỏi những thiếu sót
và sai lầm Thông qua đề tài này, chúng em rất mong được các thầy cô chỉ bảo thêm,
để chúng em có điều kiện nâng cao trình độ, hiểu biết cũng như kỹ năng của bản thân
để thực hiện những đề tài hay sản phẩm sau này một cách tốt hơn Chúng em rất mongđược tiếp thu những ý kiến đóng góp của các quý thầy cô !
Chúng em xin chân thành cảm ơn !
Trang 9Chương 1 CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG
1.1.1 Tổng quan cấu trúc KIT Easy AVR v7
Easy AVR v7 là thế hệ KIT phát triển nổi tiếng thứ bảy của mikroElektronika Nóđược yêu thích bởi người mới bắt đầu và người có đam mê, cũng như các chuyên gia,
và được sử dụng trong giáo dục ngày nay
KIT Easy AVR v7 là một nền phát triển đã sử dụng vi điều khiển AVR ATmega32
từ Atmel Hoàn hảo cho tất cả mọi cấp độ chuyên môn, vô số các tính năng trên KITgiúp bạn dễ dàng thử nghiệm và tận dụng tối đa các dự án của mình Bạn cũng có thể
sử dụng một loạt các bộ điều khiển ATmega32 trên bảng và kết nối với một loạt cácbảng kích chuột MikroElektronika sử dụng ổ cắm mikroBUS
Hình 1.1: KIT Easy AVR v7
Các thành phần của Easy AVR v7:
- Vi điều khiển ATmega32
- Đầu nối USB-UART
Trang 10- Màn hình hiển thị 4 Led 7 đoạn
- Đế giữ bằng nhựa cho màn hình GLCD & LCD
- Lập trình mikroProg
- 3 kết nối mikroBUS
- Bộ điều khiển bảng điều khiển cảm ứng
- Tiêu đề PORT
- 3 chân bổ sung cho đầu dò oscilloscope
- Đầu nối USB của trình lập trình
- Đầu nối JTAG
- Đầu nối LCD & GLCD LCD và đèn nền GLCD
- Chiết áp tương phản LCD & GLCD
sử dụng bộ điều hợp bên ngoài qua bộ điều hợp đầu nối (CN24) hoặc các đầu nối vít
bổ sung (CN25) Bên ngoài mức điện áp adapter phải nằm trong khoảng 9-15V DChoặc 7-12V AC Sử dụng nhảy J22 để xác định nguồn điện bạn đang sử dụng và nhảyJ5 để chỉ định cho dù bạn đang sử dụng nguồn cung cấp điện nào 5V hoặc 3.3V Vàkhi cung cấp điện bằng cách sử dụng adapter bên ngoài hoặc nguồn điện USB bạn cóthể bật nguồn bằng cách sử dụng SWITCH 1 LED nguồn (Green ON) sẽ chỉ ra sự cómặt của nguồn điện
Trang 11Hình 1.2: Bộ nguồn cung cấp điện kép
1.1.2.2 Bộ điều khiển được hỗ trợ
Ổ cắm vi điều khiển
KIT có bảy ổ cắm DIP là : DIP40A, DIP40B, DIP28, DIP20A, DIP20B, DIP14,DIP8 (Hình 1.1.2.2.1) Với nguồn cung cấp kép và thông minh on-board mikroProg,KIT này có khả năng lập trình khoảng 65 vi điều khiển khác nhau từ Atmel familyAVR Có hai ổ cắm là DIP40 và DIP20 dành cho bộ điều khiển AVR được cung cấptrên KIT Bạn sẽ sử dụng ổ cắm nào trong số này chỉ phụ thuộc vào pinout của vi điềukhiển trong sử dụng Hệ thống phát triển Easy AVR v7 đi kèm với vi điều khiểnATmega32 trong một gói DIP40
Nhảy AREF
Nếu bạn sử dụng ổ cắm DIP28 microcontroller với jumper J11 thì bạn có thể thiết lậppin PC7 hoặc là AVCC hoặc I / O pin Jumper J11 được đặt ở vị trí AVCC theo mặcđịnh
Trang 12Hình 1.3: Sơ đồ các ổ cắm DIP trên bo mạch, bộ dao động thạch anh tinh thể và
các tụ điện tách
Sử dụng đồng hồ bên ngoài
Bộ vi điều khiển AVR có thể sử dụng đồng hồ bên trong hoặc thạch anh tinh thể bênngoài nhằm mục đích cung cấp nguồn tín hiệu cho đồng hồ Easy AVR v7 chứa mộttinh thể thạch anh ổ cắm cho tất cả các ổ cắm vi điều khiển Hai DIP là DIP40A vàDIP40B là ổ cắm trực tiếp kết nối với ổ tinh thể thạch anh không giống như DIP28,DIP20A, DIP20B, DIP14 và DIP8 ổ cắm được kết nối với nó thông qua các jumperpin (J13-J17) Giá trị của tinh thể thạch anh phụ thuộc vào tần số đồng hồ tối đa chophép và ứng dụng của bạn cũng Bạn luôn có thể thay thế các tinh thể 8MHz mặc địnhvới một số khác Nếu bạn muốn sử dụng microcontrollers trong DIP40A và DIP40Bgói thì nó là cần thiết để đặt jumper J13-J17 vào vị trí I / O
Trang 13- Link LED sẽ sáng lên
Ba đèn LED này chỉ ra hoạt động lập trình cụ thể Link LED sáng lên khi USB liênkết được thiết lập với máy tính của bạn, đèn LED hoạt động sáng khi lập trình viênhoạt động Dữ liệu được bật lên khi dữ liệu đang được truyền giữa người lập trình vàphần mềm máy tính (trình biên dịch hoặc AVRFlash)
Easy AVR v7 được trang cho bị đầu nối JTAG tương thích với Atmel AVRJTAGICE mkll lập trình bên ngoài Bạn có thể sử dụng microProg trên KIT lập trìnhhoặc lập trình bên ngoài tại thời điểm đó Đặt cáp lập trình vào đầu nối CN6
Chú ý rằng: Trước khi sử dụng lập trình, hãy chắc chắn rằng đặt lại lựa chọn các
jumper J6, J7, J8, J9, và J10 được đặt vào vị trí mRST cho tất cả các ổ cắm
Trang 14Hình 1.4: Sơ đồ khối mikroProg
1.1.2.4 Ổ cắm mikroBUS
Easy AVR v7 hỗ trợ mikroBUS với ba ổ cắm trên KIT Như bạn thấy, có không
có thiết bị chuyển mạch DIP bổ sung, hoặc lựa chọn nhảy Mọi thứ đã được định tuyếnđến mức thích hợp nhất chân cắm của ổ cắm vi điều khiển
Đầu nối máy chủ mikroBUS
Mỗi kết nối máy chủ mikroBUS bao gồm hai 1x8 đầu phụ nữ có chứa ghim đượcnhiều nhất có thể được sử dụng trong bảng phụ kiện mục tiêu Có ba nhóm liên lạcghim: giao tiếp SPI, UART và I2C Cũng có chân duy nhất cho PWM, gián đoạn, đầuvào Analog, thiết lập lại và chọn Chip Pinout có hai điện nhóm: 5 V và GND trên mộttiêu đề và 3.3 V và GND trên tiêu đề 1x8 khác
Lựa chọn SPI và I2C
Các ổ cắm vi điều khiển khác nhau có chân khác nhau cho SPI và giao diện I2C Đểkết nối SPI và chân I2C của mikroBUS với ổ cắm bạn mong muốn, bạn phải thay đổiDIP thích hợp SW3, SW5 hoặc SW6 chuyển sang vị trí ON, như Hình 1.6
Trang 15Hình 1.5: Ổ cắm mikroBUS với công tắc DIP schematic
1.1.2.5 Nhóm đầu vào / đầu ra
Và một trong những tính năng đặc biệt nhất của Easy AVR v7 là các cổng PORTvào/ ra Nó thêm rất nhiều tiềm năng kết nối của KIT Các tiêu đề PORT, các nútPORT và PORT LED bên cạnh mỗi khác nhau, và nhóm lại với nhau Nó giúp choviệc phát triển trở nên dễ dàng hơn nữa và toàn bộ Easy AVR v7 gọn gàng hơn và tổchức tốt hơn KIT này còn có các PORT tiêu đề ở phía bên trái của bảng, vì vậy bạn cóthể truy cập vào bất kỳ pin nào bạn muốn từ cả hai mặt của bảng
Công tắc DIP kiểu kéo lên / xuống Tri-State
Các bộ chuyển mạch DIP của Tri-State này được sử dụng để kích hoạt 4K7
pull-up hay pull-down resistor trên bất kỳ mong muốn cổng pin Mỗi thiết bị chuyển mạch
có ba trạng thái:
1 Vị trí chính giữa vô hiệu hóa cả hai kéo lên và kéo xuống từ chân PORT
2 Đặt vị trí kết nối điện trở ở trạng thái kéo lên đến chân đã chọn
3 Vị trí hạ xuống cho kết nối điện trở ở trạng thái kéo xuống đến chọn chân PORT
Trang 16Hình 1.6: Sơ đồ của nhóm I / O duy nhất kết nối với PORTB vi điều khiển
Tiêu đề
Với kết nối nâng cao là một trong những tính năng quan trọng của Easy AVR v7,KIT gồm ba kết nối tiêu đề cho mỗi PORT Nhóm I / O PORT chứa hai tiêu đề IDC10male (như CN9 và CN10) Các tiêu đề này đều tương thích với trên 70mikroElektronika bảng phụ kiện, và cho phép đơn giản là kết nối Có thêm một tiêu
đề IDC10 nữa ở phía bên trái của bo, bên cạnh phần với hiển thị Nhóm I / O PORTcũng chứa kết nối 1x10 pad (như CN11) có thể được sử dụng cho kết nối KITmikroElektronika PROTO, hoặc tùy chỉnh KIT người dung phù hợp
Nút
Trạng thái logic của tất cả vi điều khiển đầu vào của số có thể thay đổi sử dụngnút ấn Chuyển mạch DIP của Tri-State SW1 có sẵn nhằm lựa chọn trạng thái logic sẽđược áp dụng đến chân MCU tương ứng khi nút được nhấn, vì mỗi cổng I / O là riêng
Ví dụ, nếu bạn, đặt SW1.2 ở vị trí VCC, sau đó nhấn bất kỳ nút bấm nào trong PORTB
I / O nhóm thì sẽ áp dụng một logic cho pin vi điều khiển thích hợp Cũng vậy vớiGND Nếu chuyển đổi DIP nằm ở vị trí trung gian và không là hai trạng thái logicđược áp dụng cho các pin vi điều khiển thích hợp Bạn có thể là vô hiệu hóa bảo vệ pin220ohm resistors bằng cách đặt nhảy J1 và J2 như thế sẽ kết nối các nút nhấn của bạntrực tiếp đến VCC hoặc GND Hãy nhận biết rằng làm như vậy bạn có thể vô tình làmhỏng MCU trong trường hợp sử dụng sai
Nút reset
Trang 17Trong phần phía trên bên phải của KIT, có một nút RESET, và trong đó có thể được
sử dụng để đặt lại bằng tay vi điều khiển
1.1.2.6 LCD 2x16 ký tự
Màn hình tinh thể lỏng hay màn hình LCD là cách rẻ và phổ biến rộng rãi để đạidiện cho thông tin cho người dùng cuối của một số thiết bị điện tử Biểu tượng LCD cóthể được sử dụng để đại diện cho các ký tự tiêu chuẩn và được tùy chỉnh trong số cáctrường được xác định trước Kit Easy AVR v7 cung cấp đầu nối và giao diện cần thiết
để hỗ trợ các màn hình LCD 2x16 ký tự ở chế độ 4-bit Kiểu hiển thị này có hai hàngbao gồm 16 trường ký tự Mỗi một trường là một ma trận 7x5 pixel Giao tiếp với môđun hiển thị được tiến hành thông qua kết nối màn hình CN8 Bo mạch được trang bịmàn hình hiển thị plastic độc đáo, cho phép mô-đun LCD hoàn toàn và chắc chắn phùhợp với vị trí
Chú ý: Đảm bảo tắt nguồn điện an toàn trước khi đặt màn hình LCD lên bảng.
Nếu không hiển thị của bạn có thể bị hư hỏng vĩnh viễn không hoạt động Để sử dụngPWM back-light cả SW3.1 và SW3.2 đều phải được bật cùng lúc
1.1.2.7 Piezo Buzzer
Điện Piezo buzzer là điện tích được tích lũy trong một số vật liệu rắn để đáp ứng
áp suất cơ học, nhưng đồng thời cũng cung cấp điện cho vật liệu áp điện làm cho nó bịbiến dạng về thể chất Một trong những ứng dụng tiên tiến được sử dụng rộng rãi nhấtcủa điện áp lò là sản xuất máy phát âm thanh, được gọi là buzzers Piezo Piezo buzzer
là một thành phần điện có nhiều hình dạng và kích cỡ khác nhau và riêng biệt, có thểđược sử dụng để tạo sóng âm thanh khi được cung cấp tín hiệu điện tương tự Kit EasyAVR v7 đi kèm với buzzer piezo có thể được kết nối với chân điều khiển vi điều khiểnPB1 hoặc PD4 được xác định bởi vị trí của J21 jumper Buzzer được điều khiển bởibóng bán dẫn Q8 ( như hình 18-1) Vi điều khiển có thể tạo ra âm thanh bằng cách tạo
ra một tín hiệu PWM (Pulse Width Modulated) - một tín hiệu sóng vuông và khôngchỉ là một dãy các số nguyên logic Tần số của tín hiệu hình vuông nhằm xác định độcao của âm thanh được tạo ra và chu kỳ nhiệm vụ của tín hiệu có thể được sử dụng đểnhằm tăng hay giảm âm lượng trong khoảng từ 0% đến 100% của chu kỳ nhiệm vụ
Trang 18cứng, và thường có sẵn trong hầu hết các vi điều khiển, hoặc bằng cách viết một phầnmềm tuỳ chỉnh mô phỏng dạng sóng tín hiệu mong muốn.
1.2.1 Tổng quan về Atmega32
ATmega32 được xây dựng trên nền tảng cấu trúc tập lệnh thu gọn tiên tiến choAVR là loại vi điều khiển CMOS, nguồn thấp, 8 bit, (Enhanced AVR RISCarchitecture) Khả năng thực thi lệnh 1MIPS (Mega Instruction Per Second) trên1MHz Bao gồm 32 thanh ghi làm việc (General Purpose Working Register) liên kết
trực tiếp với bộ xử lý số học ALU (Arithmetic Logic Unit).
Vi điều khiển ATmega32 có 40 chân giao tiếp, trong đó có 4 PORT có 8 bit(PORTA, PORTB, PORTC, và PORTD) Bốn PORT này có thể nhập - xuất dữ liệuhay điều khiển theo 2 chiều (bi-directional) ATmega32 có thể điều khiển các thiết bịđầu ra (đèn led, LCD, động cơ, v.v) cũng như nhận các tín hiệu đầu vào (sensor,keypad, camera, v.v) với 4 cổng này
Hình 1.7: Vi điều khiển ATmega32
Vi điều khiển ATmega32 tích hợp bộ nhớ Flash với dung lượng 32 Kb dùng đểlập trình, 1024 bytes EEPROM có khả năng lưu trữ và lập trình được và gồm2KbSRAM Ngoài ra ATmega32 làm tăng khả năng lưu trữ và xử lý của nó và hỗ trợ khảnăng sử dụng bộ nhớ ngoài
Vi điều khiển ATmega32 gồm 2 bộ timer/counter 8 bit và 1 bộ timer/counter 16bit (chân T0,T1) có khả năng xuất xung PWM (thường dùng trong điều khiển động
Trang 19cơ), đếm sự kiện xảy ra, hay xác định thời gian chạy cho vi điều khiển.
Vi điều khiển ATmega32 còn có thể tích hợp các bộ chuyển đổi tương tự - số(Analog Digital Convert - ADC), áp dụng cho việc xử lý tín hiệu vào từ sensor (Từchân 33 đến chân 40), có tác dụng chuyển đổi tín hiệu tương tự sang tín hiệu số
Nhằm tích hợp với các vi điều khiển khác hay với hệ thống máy tính,Vi điềukhiển ATmega32 hỗ trợ các chuẩn giao tiếp RS232, TWI-I2C, SPI
1.2.2 GIAO TIẾP TWI (I2C) TRONG AVR ATMEGA32
1.2.2.1 Giao diện TWI (I2C)
TWI (Two-Wire Serial Intereafce) là một module truyền thông nối tiếp đồng bộ trêncác chip AVR dựa trên chuẩn truyền thông I2C I2C là viết tắT của từ Inter-IntegratedCircuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập vàxây dựng thành chuẩn năm 1990 TWI (I2C) là một truyền thông nối tiếp đa chip chủ(tạm dịch của cụm từ multi-master serial computer bus) Khái niệm “multi-master”được hiểu là trong trên cùng một bus có thể có nhiều hơn một thiết bị làm Master,đồng thời một Slave có thể trở thành một Master nếu nó có khả năng
Ví dụ trong một mạng TWI của nhiều AVR kết nối với nhau, bất kỳ một AVR nào đều
có thể trở thành Master ở một thời điểm nào đó Tuy nhiên nếu một mạng dùng mộtAVR điều khiển các chip nhớ (như EEPROM AT24C1024 chẳng hạn) thì khái niệm
“multi-master” không tồn tại vì các chip nhớ được thiết kế sẵn là Slave, không có khảnăng trở thành master TWI (I2C) được thực hiện trên 2 đường SDA (Serial DATA) vàSCL (Serial Clock) trong đó SDA là đường truyền/nhận dữ liệu và SCL là đường xungnhịp Căn cứ theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có cấu hình
“cực góp mở” (open-drain hoặc open-collector, tham khảo các mạch số dùng transistor
để hiểu thêm), nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các đườngnày Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao
Hình 1.8 Mạng TWI (I2C) với nhiều thiết bị và 2 điện trở kéo lên cho SDA, SCL.
Master: là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần
Trang 20SDA- Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay
dữ liệu đều được truyền trên đường này theo thứ tự từng bit một Chú ý là trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn UART
SCL –Serial Clock: là đường giữ nhịp nối tiếp TWI (I2C) là chuần truyền thông
nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu (sample) Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDA không được đổi trạng thái khi SCL ở mức cao (trừ START và STOP condition) Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp
1.2.2.2 TWI trên AVR
1.2.2.2.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ịpTWBR, 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
xung giữ nhịp trên đường SCL của chip Master
TWCR (TWI Control Register): là thanh ghi 8 bit điều khiển hoạt động củaTWI
Bit 7- TWINT (TWI Interrupt Flag): là một cờ báo rất quan trọng TWINT được
tự động set lên 1 khi TWI kết thúc một quá trình bất kỳ nào đó (như phát/nhậnSTART, phát nhận địa chỉ…) Chú ý là bit này không tự động được xóa bởi phầncứng như các cờ báo trong các module khác Vì thế, khi lập trình điều khiển TWIchúng ta luôn phải xóa TWINT trước khi muốn thực hiện một quá trình nào đó.Một điểm quan trọng cần lưu ý là bit TWINT được xóa khi chúng ta viết giá trị 1vào nó Trong khi lập trình cho TWI, chúng ta thường xóa TWINT bằng cáchviết 1 vào nó, sau đó liên tục kiểm tra TWINT, nếu bit này được set lên 1 thì quátrình đã hoàn thành
Bit 6 – TWEA (TWI Enable Acknowledge Bit): tạm hiểu là bit kích hoạt tín hiệuxác nhận Đối với chip Slave, nếu bit này được set thì tín hiệu xác ACK sẽ đượcgởi trong các trường hợp sau: địa chỉ do Master phát ra trùng khớp với địa chỉcủa Slave; một cuộc gọi chung đang xảy ra và Slave này cho phép cuộc gọichung; dữ liệu đã được Slave nhận từ Master Như thế, khi set một chip ở chế độ
Trang 21Slave, chúng ta cần set bit này để nó có thể đáp ứng lại Master bất cứ khi nàođược gọi Đối với chip Master, tín hiệu ACK chỉ được phát trong 1 trường hợpduy nhất đó là khi Master nhận dữ liệu từ Slave, Master phát ACK để báo choSlave là mình đã nhận được và muốn tiếp tục nhận từ Slave.
Bit 5 – TWSTA (TWI START Condition Bit): là bit tạo START condition Khimột chip muốn trở thành Master để thực hiện 1 cuộc gọi, bit này cần được set vàmột START condition được tạo ra trên đường truyền nếu đường truyền đangrảnh Nếu đường truyền không rảnh, TWI sẽ chờ cho đến khi nó rảnh (nhận ra 1STOP condition) và tiếp tục gởi START condition Chú là là bit nay cần đượcxóa bởi phần mềm sau khi START condition đã được gởi (viết 0 vào bit này đểxóa nó)
Bit 4 – TWSTO (TWI STOP Condition Bit):là bit tạo STOP condition cho TWI.Khi Master muốn kết thúc một cuộc gọi, nó sẽ phát STOP condition bằng cáchviết giá trị 1 vào bit TWSTO Slave cũng có thể tác động vào bit này, nếu mộtcuộc gọi bị lỗi, viết 1 vào TWSTO trên Slave sẽ reset đường truyền về trạng tháirảnh ban đầu
Bit 3 – TWWC (TWI Write Collision Flag): khi cờ TWINT đang ở mức thấp tứcTWI đang bận, nếu chúng ta viết dữ liệu vào thanh ghi dữ liệu (TWDR) thì mộtlỗi xảy ra, khi đó bit TWWC tự động được set lên 1 Vì thế, trong quá trìnhtruyền dữ liệu, bit TWINT cần được giữ mức cao khi ghi dữ liệu vào thanh ghiTWDR và sau đó xóa khi dữ liệu đã sẵn sàng
Bit 2 – TWEN (TWI Enable Bit): bit kích hoạt TWI trên AVR, khi TWEN đượcset lên 1, TWI sẵn sàng hoạt động
Bit 1 – Reserve: không sử dụng
Bit 0 – TWIE (TWI Interrupt Enable Bit): bit cho phép ngắt TWI, khi bit nayđược set bằng 1 đồng thời bit I trong thanh ghi trạng thái chung được set, mộtngắt TWI xảy ra khi bit TWINT được set bởi phần cứng Ngắt TWI có thể xảy ra sau bất kỳ hoạt động nào liên quan đến TWI Do đó cần sử dụng ngắt hợp lý.Thông thường, ngắt chỉ được sử dụng cho Slave, đối với Master ngắt không cầnthiết vì Master chủ động khởi động một cuộc gọi
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
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ữ
Trang 22TWAR (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
Nhớ lại địa chỉ Slave được tạo thành từ 7 bits, trên thanh ghi TWAR 7 bits địa chỉ này nằm ở 7 vị trí cao Trước khi sử dụng TWI như Slave, chúng ta phải gán địa chỉ cho chip, 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à bit cho phép cuộc gọi chung Như tôi đề cập bên trên, Slave co quyền cho phépMaster thực hiện cuộc gọi chung với nó hay không Nếu TWGCE=1, Slave sẽ đáp ứng lại cuộc gọi chung nếu có, nếu TWGCE=0 thì Slave sẽ bỏ qua cuộc gọi chung
1.2.2.2.2 Hoạt động của TWI:
Master Transmitter mode – Master truyền dữ liệu
Master Receiver mode – Master nhận dữ liệu
Slave Receiver mode – Slave nhận dữ liệu
Slave Transmitter mode – Slave truyền dữ liệu
1.3.1 IC DS1307
1.3.1.1 Cấu tạo chung
DS1307 là chip thời gian thực hay RTC (Read time clock) Đây là một IC tíchhợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối cho thời gian: thứ, ngày,tháng, năm, giờ, phút, giây DS1307 là chế tạo bởi Dallas Chip này có 7 thanh ghi 8bit mỗi thanh ghi này chứa : thứ , ngày, tháng, năm, giờ , phút, giây Ngoài ra DS1307còn chứa 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống các thanh ghi này cóthể dùng như là RAM DS1307 được đọc thông qua chuẩn truyền thông I2C nên do đó
để đọc được và ghi từ DS1307 thông qua chuẩn truyền thông này Do nó được giaotiếp chuẩn I2C nên cấu tạo bên ngoài nó rất đơn giản DS1307 xuất hiện ở hai góiSOIC và DIP có 8 chân