Nội dung quyển báo cáo nhóm trình bầy theo ba chương như sau: Chương I: Cơ sở lý thuyết và các linh kiện sử dụng trong mạch. Chương II: Thiết kế phần cứng, các khối, chức năng và hoạt động. Chương III: Thiết kế phần mềm. Chúng em xin bày tỏ sự cảm ơn đến thầy TS.Nguyễn Ngọc Minh đã nhiệt tình giúp trong suốt quá trình thực hiện đồ án.
Trang 1Học Viện Công Nghệ Bưu Chính Viễn Thông
Khoa Kỹ Thuật Điện Tử 1
oOo
-BÁO CÁO ĐỒ ÁN HỆ THỐNG NHÚNG
Đề tài: MẠCH ĐIỀU KHIỂN BẬT TẮT ĐIỀU HÒA
Giảng viên hướng dẫn : TS Nguyễn Ngọc Minh
Họ tên sinh viên: Nguyễn Tuấn Anh
Nguyễn An Ninh Nguyễn Trọng Quân
Hà Nội, ngày 14 tháng 4 năm 2013
Trang 2MỤC LỤC
CHƯƠNG I: CƠ SỞ LÝ THUYẾT VÀ CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH 4
Trang 3LỜI MỞ ĐẦU
Trong xu thế hội tụ công nghệ như hiện nay, hệ thống nhúng ngày càng cómặt trong nhiều ứng dụng và phục vụ đa lĩnh vực như: điện tử, viễn thông, côngnghệ thông tin, tự động hóa điều khiển, quan trắc khí tượng, đo lường cảm biến
Đó là hệ thống có khả năng tự trị được tích hợp cả phần cứng và phần mềm đểphục vụ các bài toán chuyên dụng Hệ thống nhúng rất đa dạng, chúng có thể rấtđơn giản với một vi điều khiển và một vài giao diện vào ra, hoặc có thể rất phứctạp với nhiều đơn vị khác nhau Đặc điểm của nó là phải hoạt động ổn định và
có khả năng tự động hóa cao Trong đồ án môn học này nhóm sinh viên sẽ thựchiện đề tài thiết kế “ Điều khiển bật tắt điều hòa”, đây là một ứng dụng cơ bản
về hệ thống
Nội dung quyển báo cáo nhóm trình bầy theo ba chương như sau:
Chương I: Cơ sở lý thuyết và các linh kiện sử dụng trong mạch
Chương II: Thiết kế phần cứng, các khối, chức năng và hoạt động
Chương III: Thiết kế phần mềm
Chúng em xin bày tỏ sự cảm ơn đến thầy TS.Nguyễn Ngọc Minh đã nhiệttình giúp trong suốt quá trình thực hiện đồ án
Trang 4CHƯƠNG I: CƠ SỞ LÝ THUYẾT VÀ CÁC LINH KIỆN SỬ DỤNG
TRONG MẠCH
1.1 Mở đầu
Mạch điều khiển bật tắt điều hòa được thiết kế để có thể tự động làm việckhi nhiệt độ phòng tăng lên cao và tự tắt khi nhiệt độ xuống thấp Ngoài ra, cóthể hẹn giờ để lên lịch làm việc cho hệ thống
Với tính năng tự động hóa, mạch điều khiển bật tắt điều hòa có khả năngđược tích hợp vào việc thiết kế hệ thống tự động thông minh Trong chương nàychúng ta sẽ tìm hiểu về phương thức hoạt động của I2C cũng như các linh kiệnchính hoạt động trong mạch
1.2 Họ vi điều khiển 8051 và Chip 89C51
1.2.1 Họ vi điều khiển 8051
Vi điều khiển 8051 lần đầu tiên được Intel giới thiệu vào năm 1981 Đây
là bộ vi điều khiển 8 bit với 128 byte RAM và 4Kb ROM, một cổng nối tiếp và
4 cổng 8 bit trên một vi mạch đơn lẻ Dòng vi điều khiển này trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác được chế tạo vi điều khiển tương thích với 8051 Đến nay vi điều khiển 8051 bao gồm họ vi điều khiển kí hiệu từ
8031 đến 8751 được sản xuất bằng công nghệ NMOS và CMOS với nhiều kiểu đóng gói khác nhau
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051 Hãng intel ký hiệu nó là MCS51:
Trang 5Hình1.1 Sơ đồ khối chung của họVĐK8051
Trang 61.2.2 Cấu trúc vi điều khiển 89C51
Hình 1.2 Sơ đồ chân VĐK 89C51
Chức năng các chân trong vi điều khiển 89C51:
Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho vi điều khiển Nguồn
điện áp cấp là 5 ±0.5 V
Chân GND: Chân số 20 nối GND (hay nối Mass) Khi thiết kế cần sử dụng
một mạch ổn áp để bảo vệ cho vi điều khiển
Port 0 (P0) : Port 0 gồm 8 chân (từ chân 32 đến 39 ) có hai chức năng:
• Chức năng xuất/nhập: các chân này được dùng để nhận tín hiệu từ bênngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạnxuất tín hiệu để điều khiển led đơn sáng tắt
Trang 7• Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặcPort 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu cókết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉcủa bộ nhớ ngoài.
Port 1 (P1): Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng
làm các đường xuất/nhập , không có chức năng khác
Port 2 (P2): Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
• Chức năng xuất/nhập
• Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài códung lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0đảm nhận, byte cao do P2 đảm nhận
Port 3 (P3): Port 3 gồm 8 chân ( từ chân 10 đến 17), Có 2 chức năng, thứ
nhất là chức năng xuất/ nhập, với mỗi chân có một chức năng riêng thứ hai trongbảng sau
P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD Ngõ xuất dữ liệu nối tiếp
P3.2 INT0 Ngõ vào ngắt cứng 0
P3.3 INT1 Ngõ vào ngắt cứng 1
P3.4 T0 Ngõ vào của Timer/Counter 0
P3.5 T1 Ngõ vào của Timer/Counter 1
P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 Ngõ vào của Timer/Counter 2
P1.1 T2X Ngõ Nạp lại/thu nhận của Timer/Counter 2
Chân RESET ( RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để
thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại cácgiá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 18 và 19 được
sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường đượcghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định
Trang 8Chân cho phép bộ nhớ chương trình PSEN: PSEN ( program store
enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trìnhngoài Chân này thường được nối với chân OE (output enable ) của ROM ngoài.Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tínhiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khithực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic khôGhi chú: Không cần kết nối chân này khi không sử dụng đến
Chân ALE (chân cho phép chốt địa chỉ-chân 30) : Khi Vi điều khiển
truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa cóchức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ởchân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và cácđường dữ liệu khi kết nối chúng với IC chốt
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điềukhiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp chocác thành phần khác của hệ thống
Ghi chú: Khi không sử dụng có thể bỏ trống chân này
Chân EA: Chân EA dùng để xác định chương trình thực hiện được lấy từ
ROM nội hay ROM ngoại
• Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy
từ bộ nhớ nội
• Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy
từ bộ nhớ ngoại
Trang 10vào tần số đồng hồ được cấp tới chân CLK và CLK IN và không bé hơn 110µs.Các chân khác của ADC0804 có chức năng như sau:
• CS (Chip select): Chân số1, là chân chọn chip, đầu vào tích cực mức thấp
được sử dụng để kích hoạt Chip ADC0804 Để truy cập tới ADC0804 thìchân này phải được đặt ở mức thấp
• RD (Read): Chân số 2, là chân nhận tín hiệu vào tích cực ở mức thấp.
Các bộ chuyển đổi của 0804 sẽ chuyển đổi đầu vào tương tự thành số nhịphân và giữ nó ở một thanh ghi trong Chân RD được sử dụng để chophép đưa dữ liệu đã được chyển đổi tới đầu ra của ADC0804 Khi CS = 0nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số8bit được đưa tới các chân dữ liệu (DB0 – DB7)
• WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng
báo cho ADC biết để bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WRtạo ra xung cao xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổigiá trị đầu vào tương tự Vin thành số nhị phân 8 bit Khi việc chuyển đổihoàn tất thì chân INTR được ADC hạ xuống thấp
• CLK IN và CLK R: CLK IN (chân số4), là chân vào nối tới đồng hồ
ngoài được sử dụng để tạo thời gian Tuy nhiên ADC0804 cũng có một bộtạo xung đồng hồ riêng Để dùng đồng hồ riêng thì các chân CLK IN vàCLK R (chân số19) được nối với một tụ điện và một điện trở
• Ngắt INTR (Interupt): Chân số 5, là chân ra tích cực mức thấp Bình
thường chân này ở trạng thái cao và khi việc chuyển đổi tương tự số hoàntất thì nó chuyển xuống mức thấp để báo cho CPU biết là dữ liệu chuyểnđổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS = 0 và gửimột xung cao xuống thấp tới chân RD để đưa dữ liệu ra
• Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi
sai, trong đó Vin = Vin(+) – Vin(-) Thông thường Vin(-) được nối tớiđất và Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi vềdạng số
• Vcc: Chân số 20, là chân nguồn nuôi +5V Chân này còn được dùng làm
điện áp tham chiếu khi đầu vào Vref/2 để hở
Trang 11• Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham
chiếu Nếu chân này hở hì điện áp đầu vào tương tự cho ADC0804 nằmtrong dải 0 đến +5V Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự
áp đến Vin khác với dải 0 đến +5V Chân Vref/2 được dùng để thực hiệncác điện áp đầu ra khác 0 đến +5V
• D0 – D7: Chân số 18 – 11, là các chân ra dữ liệu số(D7 là bit cao nhất
MSB và D0 là bit thấp nhất LSB) Các chân này được đệm ba trạng thái
và dữ liệu đã được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân
RD đưa xuống mức thấp
1.4 Tổng quan về I2C
Giao thức truyền thông nối tiếp được phát triển bởi Philips Semiconductor
và được gọi là bus I2C Vì nguồn gốc nó được thiết kế là để điều khiển liênthông IC (Inter-Intergrated Circuit) nên nó được đặt tên là I2C Tất cả các chip
có tích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên Chip
để truyền thông trực tiếp với các thiết bị tương thích I2C khác
Tốc độ: tốc độ giao tiếp của I2C có thể lên đến 3.4 Mbs với nhiều tùy
chọn tốc độ:
• Chuẩn (Standard)—100 Kbits/sec
• Nhanh (Fast)—400 Kbits/sec
• Fast mode plus: 1 Mbits/sec
• Tốc độ cao (High speed)—3.4 Mbits/sec
Truyền thông nối tiếp I2C sử dụng hai đường tín hiệu gồm:
• Đường truyền dữ liệu nối tiếp SDA (Serial Data)
• Đường truyền nhịp xung đồng hồ nối tiếp SCL (Serial Clock)
Trang 12Hình 1.5 Các tín hiệu trong giao tiếp I2C
Vì cơ chế hoạt động là đồng bộ nên nó cần có một nhịp xung tín hiệuđồng bộ Các thiết bị hỗ trợ I2C đều có một địa chỉ định nghĩa trước, trong đómột số bit địa chỉ là thấp có thể cấu hình Đơn vị hoặc thiết bị khởi tạo quá trìnhtruyền thông là đơn vị chủ và cũng là đơn vị tạo xung nhịp đồng bộ, điều khiểncho phép kết thúc quá trình truyền Nếu đơn vị chủ muốn truyền thông với đơn
vị khác nó sẽ gửi kèm thông tin địa chỉ của đơn vị mà nó muốn truyền trong dữliệu truyền Đơn vị tớ đều được gán và đánh địa chỉ thông qua đó đơn vị chủ cóthể thiết lập truyền thông và trao đổi dữ liệu Bus dữ liệu được thiết kế để chophép thực hiện nhiều đơn vị chủ và tớ ở trên cùng Bus
Hình 1.6 Truyền dữ liệu trên I2C
Trang 13Quá trình truyền thông I2C được bắt đầu bằng tín hiệu START tạo ra bởiđơn vị chủ Sau đó đơn vị chủ sẽ truyền đi dữ liệu 7 bit chứa địa chỉ của đơn vị
tớ mà nó muốn truyền thông, theo thứ tự là các bit có trọng số lớn nhất MSB sẽđược truyền trước Bit thứ tám tiếp theo sẽ chứa thông tin để xác định đơn vị tớ
sẽ thực hiện vai trò nhận (0) hay gửi (1) dữ liệu Tiếp theo sẽ là một bit ACKxác nhận bởi đơn vị nhận đã nhận được 1 byte trước đó hay không Đơn vịtruyền (gửi) sẽ truyền đi 1 byte dữ liệu bắt đầu bởi MSB Tại điểm cuối của bytetruyền, đơn vị nhận sẽ tạo ra một bit xác nhận ACK mới Khuôn mẫu 9 bit này(gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ được lặp lại nếu cần truyền tiếp bytenữa Khi đơn vị chủ đã trao đổi xong dữ liệu cần nó sẽ quan sát bit xác nhậnACK cuối cùng rồi sau đó sẽ tạo ra một tín hiệu dừng STOP để kết thúc quátrình truyền thông
I2C là một giao diện truyền thông đặc biệt thích hợp cho các ứng dụngtruyền thông giữa các đơn vị trên cùng một bo mạch với khoảng cách ngắn vàtốc độ thấp Ví dụ như truyền thông giữa CPU với các khối chức năng trên cùngmột bo mạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực
1.5 IC thời gian thực DS1307
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), kháiniệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà conngười đang sử dụng, tính bằng giây, phút, giờ… DS1307 là một sản phẩm củaDallas Semiconductor (một công ty thuộc Maxim Integrated Products) Chip này
có 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày,tháng, năm Ngoài ra DS1307 còn có 1 thanh ghi điều khiển ngõ ra phụ và 56thanh ghi trống có thể dùng như RAM DS1307 xuất hiện ở 2 gói SOIC và DIP
có 8 chân
Trang 14Hình 1.7 Hình ảnh thực tế và sơ đồ chân DS1307
Chân và chức năng:
• X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao
động cho chip
• VBAT: cực dương của một nguồn pin 3V nuôi chip.
• GND: chân mass chung cho cả pin 3V và Vcc
• Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều
khiển Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấpthì DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)
• SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver),
tần số của xung được tạo có thể được lập trình
• SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C.
Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn,mạch dao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ địa chỉ vàcác thanh ghi (hay RAM) Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghicủa chip này
Bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63(từ 00H đến 3FH theo hệ HexaDecimal) Tuy nhiên, thực chất chỉ có 8 thanh ghiđầu là dùng cho chức năng “đồng hồ” (RTC) còn lại 56 thanh ghi bỏ trống cóthể được dùng chứa biến tạm như RAM nếu muốn Bảy thanh ghi đầu tiên chứathông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút(MINUTES), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và
Trang 15năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “càiđặt” thời gian khởi động cho RTC Việc đọc giá trị từ 7 thanh ghi là đọc thờigian thực mà chip tạo ra Ví dụ, lúc khởi động chương trình, chúng ta ghi vàothanh ghi “giây” giá trị 42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thuđược giá trị 54 Thanh ghi thứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ
ra các chân giao tiếp cần thiết và được đánh số như hình
Chức năng của các chân:
• Chân 1: Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển
Trang 16• Chân 2: VDD chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với nguồn 5V của mạch điều khiển
• Chân 3: VEE điều chỉnh độ tương phản của LCD
• Chân 4: RS chân chọn thanh ghi, nối chân RS với mức logic 0 (GND)
hoặc 1 (VCC) để chọn thanh ghi
Logic 0: Bus DB0 – DB7 sẽ nối với bộ đệm địa chỉ của LCD ở chế
độ ghi hoặc nối với bộ đếm địa chỉ của LCD ở chế độ đọc
Logic 1: Bus DB0 – DB7 sẽ nối với thanh ghi dữ liệu DR bên trongLCD
• Chân 5: R/W chân chọn chế độ đọc ghi (read/write) Nối chân R/W với
mức 0 để LCD hoạt động ở chế độ ghi, hoặc với mức logic 1 để LCD hoạtđộng ở chế độ đọc
• Chân 6: E chân cho phép (enable) Sau khi tín hiệu được đặt lên Bus DB0
– DB7, các lệnh chỉ được chấp nhận khi có một xung cho phép của chânenable
Ở chế độ ghi: dữ liệu của bus sẽ được LCD chuyển vào thanh ghibên trong nó, khi phát hiện một xung của chân tín hiệu E
Ở chế độ đọc: dữ liệu sẽ được LCD xuất ra chân DB0 – DB7 khiphát hiện cạnh lên ở chân E và được LCD giữ lại ở bus khi nàochân E chuyển xuống mức thấp
• Chân 7 – 14: DB0 – DB7 đây là 8 đường BUS dữ liệu dùng để trao đổi
thông tin với MPU Có hai chế độ sử dụng 8 đường bít này:
Chế độ 8 bít: dữ liệu được truyền trên cả 8 đường, với bit MSB làbit DB7
Chế độ 4 bít: dữ liệu được truyền trên 4 đường từ chân DB4 tớichân DB7, với bit MSB là DB7
• Chân 15: Nối với dương nguồn cho đèn nền.
• Chân 16: Nối với âm nguồn cho đèn nền.
1.7 IC ổn áp LM 7805
Trong mạch sử dụng vi điều khiển họ 8051 chúng ta phải sử dụng nguồnđiện áp chuẩn 5V, để mạch hoạt động ổn định thì điện áp cung cấp phải ổn định,
do vậy trong mạch chúng ta sử dụng IC ổn áp LM7805
Trang 17Hình 1.10 IC ổn áp LM7805LM7805 có 3 chân tín hiệu:
• Chân 1: Chân input, điện áp đầu vào được đưa tới chân này
• Chân 2: GND chân này được nối với âm nguồn
• Chân 3: Chân output là chân đưa điện áp đầu ra, nếu đầu vào đảm bảo lớnhơn đầu ra khoảng 3V thì điện áp trên chân 3 sẽ ổn định ở mức 5V