Nắm được tầm quan trọng này, em đã chọn đề tài thiết kế mạch đo nhiệt độ và hiển thị số Em đã cố gắng vận dụng những kiến thức đã học ở trường, cùng với sự tìm tịi nghiên cứu để hồn th
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Tp HCM, tháng 12/2009
ĐỒ ÁN MÔN HỌC 1
MẠCH ĐO NHIỆT ĐỘ HiỂN THỊ SỐ
SINH VIÊN: ĐÀO MINH VŨ 40603054
Trang 2Lời cảm ơn
Cám ơn cô
Đặng Ngọc Hạnh đã
giúp đỡ và hướng dẫn
em trong suốt quá trình thực hiện đồ án này.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Tp HCM, tháng 12/2009
ĐỒ ÁN MÔN HỌC 1
MẠCH ĐO NHIỆT ĐỘ HiỂN THỊ SỐ
SINH VIÊN: ĐÀO MINH VŨ 40603054
GIÁO VIÊN HƯỚNG DẪN: cô ĐẶNG NGỌC HẠNH
Trang 3
Nội dung
1 Lời nói đầu
2 Giới thiệu đề tài
Trang 4HIỂN THỊ LED 7 ĐOẠN
NGUỒN THAM CHIẾU 0.64V
74LS47 ADC0804
1 LỜI NĨI ĐẦU:
Vấn đề đo nhiệt độ rất cần thiết trong nhiều lĩnh vực sản xuất cơng nghiệp và trong đời sống Nắm được tầm quan trọng này, em đã chọn
đề tài thiết kế mạch đo nhiệt độ và hiển thị số
Em đã cố gắng vận dụng những kiến thức đã học ở trường, cùng với
sự tìm tịi nghiên cứu để hồn thành tốt đồ án này
Tuy nhiên, đồ án chỉ giới hạn trong phạm vi là đồ án 1, nên tính hiệu quả thực tế của mạch khơng cao
2 GIỚI THIỆU ĐỀ TÀI:
Kỹ thuật vi sử lý hiện nay rất phát triển, so với kỹ thuật số thì kỹ thuật vi sử lý nhỏ gọn hơn rất nhiều, do nó được tích hợp lại và được lập trình để
điều khiển
Với tính ưu việt của vi xử lý thì trong phạm vi đồ án nho ûnày, nĩ được ứng dụng trong việc điều khiển khối chuyển đổi tương tự sang số và khối hiển thị số
Thiết kế mạch đo nhiệt độ trong dải từ 00C – 1000C hiển thị số
Viết chương trình (phần mềm) và thiết lập phần cứng để đáp ứng các yêu cầu trên
Việc điều chỉnh nguồn tham chiếu cho ADC sẽ tạo ra độ phân giải
cho mạch đo theo đúng yêu cầu Hoạt động của ADC được điều
khiển bởi vi xử lý 89C51
Trang 5 Vi điều khiển AT89C51 nhận dữ liệu dạng số từ khối chuyển đổi ADC
và kèm theo các tín hiệu điều khiển led tới khối giải mã BCD
Khối hiển thị gồm 4 led 7 đoạn tương ứng số hàng chục, đơn vị, số lẻ
và chữ o
C
4 CHỨC NĂNG CÁC KHỐI:
4.1 Kh ối cảm biến nhiệt độ:
Cĩ rất nhiều dụng cụ chuyên biệt hỗ trợ cho việc đo nhiệt độ như:
Cặp nhiệt điện
Nhiệt kế điện kế kim loại
Nhiệt điện trở kim loại
Nhiệt điện trở bán dẫn
Cảm biến thạch anh
Việc sử dụng các IC cảm biến nhiệt để đo nhiệt độ là một phương pháp thông dụng và rẻ tiền
Nguyên lý hoạt động chung của IC cảm biến nhiệt:
IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện dưới dạng dòng điện hay điện áp Dựa vào đặc tính rất nhạy của các bán dẫn với nhiệt độ, tạo ra điện áp hoặc dòng điện, tỉ lệ thuận với nhiệt độ tuyệt đối Đo tín hiệu điện ta biết được giá trị của nhiệt độ cần đo
Cĩ rất nhiều loại IC cảm biến nhiệt, nhưng được sử dụng thơng dụng, rẻ tiền và dễ kiếm là IC LM35
LM35 cĩ độ biến thiên theo nhiệt độ 10mV/1o
C Sai số cực đại 1,50C khi nhiệt độ lớn hơn 1000C
Phạm vi sử dụng –550C – 1500C
Tín hiệu ngõ ra tuyến tính liên tục với những thay đổi của ngõ vào
Giới hạn trong đề tài là đo nhiệt độ từ 00C– 1500C
+Vs (4V to20V)
OUTPUT
0 mV+ 10mV/1oC
LM35
Trang 64.2 Kh ối chuyển đổi tương tự số ADC:
Để kết nối giữa nguồn tín hiệu tượng tự với các hệ thống xử lý số người ta dùng các mạch chuyển đổi tương tự sang số (ADC) nhằm biến đổi tín hiệu tương tự sang số
Chuyển đổi ADC có rất nhiều phương pháp.Tuy nhiên,mỗi phương pháp đều có những thông số cơ bản khác nhau:
+ Độ chính xác của chuyển đổi AD
+ Tốc độ chuyển đổi
+ Dãi biến đổi của tín hiệu tương tự ngõ vào
Các phương pháp chuyển đổi AD:
Bộ biến đổi A/D loại “Tracking”
Bộ biến đổi A/D loại xấp xỉ liên tiếp
Bộ biến đổi A/D một độ dốc
Bộ biến đổi A/D tích phân hai độ dốc
Thơng số kỹ thuật ADC0804:
Độ phân giải 8bit (dữ liệu ngõ ra song song) ADC0804 hoạt động theo phương pháp xấp xỉ liên tiếp Sự so sánh điện áp tín hiệu vào và tín hiệu ra nhỏ hơn hoặc lớn hơn sẽ điều khiển sự chỉ thị tăng hoặc giảm của SAR (thanh ghi xấp xỉ liên tiếp) và
đồng thời điều khiển hoạt động theo điện áp đo Vi Sai số lớn
nhất cho bộ biến đổi A/D là +1/2 LSB bit nhỏ nhất
Tốc độ biến đổi t c = nT h, T h là chu kỳ xung clock của bộ biến đổi, n là số bit
Lối vào điện áp vi phân
Tín hiệu tương thích TTL
Bộ phát xung nhịp trên chip
Dải điện áp vào 0V-5V (Nguồn đơn)
Khơng cần chỉnh offset
Cĩ thể dùng mạch tạo clock trong chip hoặc clk ngồi, thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK R và CLK IN và khơng bé hơn 110μs
Trang 7Sơ đồ chân
Chân số 6 và chân số 7 là 2 đầu
vào tương tự vi sai, trong đó Vin = Vin (+) – Vin (-) Thông thường Vin (-) được nối mass, Vin (+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi
về dạng số
Chân s ố 20: Vcc 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ở
Chân s ố 9: Vref/2 là chân điện áp
đầu vào được dùng làm điện áp tham chiếu
Nếu nhiệt độ đo là 0.5oC thì Vin = 5mV → Dout = 1
→ nhiệt độ tối đa ADC có thể chuyển đổi là
256 * 0.5 oC = 128oC
Bảng quan hệ điện áp Vref/2 với Vin
Vref/2 (V) Vin (V) Kích thước bước (mV)
Hở 0 – 5 5/256 = 19.53 2.0 0 – 4 4/256 = 15.62 1.5 0 – 3 3/256 = 11.71 1.28 0 – 2.56 2.56/256 = 10 0.64 0- 1.28 1.28/256=5
Trang 8 Tạo xung nhịp cho ADC:
Xung nhịp cho A/D có thể được lấy từ nguồn bên ngoài như CPU clock hay đơn giản hơn là dùng mạch RC tạo self-clocking như hình CLK IN (chân
số 4) tạo nên mạch Schmitt trigger
Chân 2: RD là một tín hiệu vào tích cực thấp khi CS=0, nếu có
một xung cao xuống thấp đến chân RD thì tín hiệu ra 8 bit được đưa đến các chân DB0 – DB7
Chân s ố 3, chân vào tích cực thấp dùng để báo cho ADC biết
bắt đầu quá trình chuyển đổi
Nếu CS = 0, khi WR tạo ra xung cao xuống thấp thì ADC bắt đầu quá trình chuyển đổi Khi việc chuyển đổi hoàn tất thì chân INTR xuống mức thấp
Chân s ố 5 : là chân ra Bình thường trạng thái cao, khi chuyển
đổi hoàn tất thì xuống thấp để báo dữ liệu sẵn sàng để lấy đi
Timing diagrams
Trang 9
Hoạt động:
CS=0→ truy cập ADC → cấp
xung thấp tới WR → thực
hiện chuyển đổi → chờ
INTR=0 → cấp xung thấp tới
RD → dữ liệu 8 bit tới DB0-
DB7
Tuy nhiên ta có thể thực hiện
chế độ free-running như hình
vẽ
Trang 104.3 Kh ối điều khiển 8051:
4.3.1 Bộ nhớ dữ liệu trên chip :
IC vi điều khiển 8051 thuộc họ MCS51 có các đặt điểm sau:
4 kbyte ROM (được lập trình bởi nhà sản xuất)
128 byte RAM
4 port I/0 8bit
Hai bộ định thời 16bit
Giao tiếp nối tiếp
Trang 111 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
8051 (8031)
64KB không gian bộ nhớ chương trình mở rộng
64 KB không gian bộ nhớ dữ liệu mở rộng
một bộ xử lí luận lí (thao tác trên các bit đơn)
210 bit được địa chỉ hóa
bộ nhân / chia 4 s
4.3.2 8051 Pin Diagram:
Chức năng của các chân của 8951
Port 0 : là port có 2 chức năng ở trên chân từ 32 đến 39 (không dùng bộ nhớ mở rộng) có hai chức năng như các đường IO Đối với các thiết kế cỡ lớn (với bộ nhớ mở rộng) nó được kết hợp kênh giữa các bus )
Port 1 : là một port I/O trên các chân 1-8 Các chân được ký hiệu
P1.0, P1.1, P1.2 … có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chức năng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài
Trang 12+5V 100
8,2K 10UF
por t 2 : là một port công dụng kép trên các chân 21 – 28 được dùng
như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng
Port 3 : là một port công dụng kép trên các chân 10 – 17 Các chân
của port này có nhiều chức năng P3.0 RXD Dữ liệu nhận cho port nối tiếp
P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.2 INTO Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 TO Ngõ vào của timer/counter 0
P3.5 T1 Ngõ vào của timer/counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
EA (External Access) :
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8951 sẽ bị cấm và chương trình thi hành từ EPROM mở rộng Người ta còn dùng chân
EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong
8951
SRT (Reset) :
Ngõ vào RST trên chân 9 là ngõ reset của 8951
Khi tín hiệu này được đưa lên múc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 8951 được tải những giá trị thích hợp để khởi động hệ thống
Trang 13Trạng thái các thanh ghi sau khi reset
Đếm chương trình
Tích lũy
B PSW
SP DPTR Port 0-3
IP
IE Các thanh ghi định thời
SCON SBUF PCON(HMOS) PCON(CMOS)
0000H
00H
00H
00H 07H 0000H FFH XXX00000B 0XX00000B 00H 00H 00H 0XXXXXXB 0XXX0000B
Các ngõ vào bộ dao động trên chip :
Như đã thấy trong các hình trên, 8951 có một bộ dao động trên chip Nó thường được nối với thạch anh giữa hai chân 18 và 19 Các tụ giữa cũng cần thiết như đã vẽ Tần số thạch anh thông thường là
12MHz
Các bank thanh ghi :
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnh của 8951 hỗ trợ 8 thanh ghi (RO đến R7) và theo mặc định (sau khi Reset hệ thống) các thanh ghi này ở các địa chỉ 00H-07H
4.3.3 Tập lệnh
Tóm tắt các lệnh được sử dụng của VXL 89C51
1 Nhóm lệnh xử lý số học:
MUL AB (1,4) Nhân nội dung thanh ghi A với nội dung thanh ghi B DIV AB (1,4) Chia nội dung thanh ghi A cho nội dung thanh ghi B ORL A,data (2,1): OR thanh ghi A với một dữ liệu trực tiếp
ORL A,#data (2,1): OR thanh ghi A với một dữ liệu tức thời
SETB bit (2,1): Đặt một bit trực tiếp
Trang 14CLR bit (2,1): xĩa một bit trực tiếp
2 Nhóm lệnh chuyển dữ liệu:
MOV A,Rn (1,1):Chuyển nội dung thanh ghi Rn vào thanh ghi A MOV A,#data (2,1): Chuyển dữ liệu tức thời vào thanh ghi A
MOV Rn,#data (2,1): Chuyển dữ liệu tức thời vào thanh ghi Rn
PUSH data (2,2) Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP POP data (2,2) Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP
3 Nhóm lệnh chuyền điều khiển:
ACALL addr11 (2,2): Gọi chương trình con dùng địa chì tuyệt đối
LCALL addr16 (3,2): Gọi chương trình con dùng địa chỉ dài
RET (1,2): Trở về từ lệnh gọi chương trình con
RETI (1,2): Trở về từ lệnh gọi ngắt
SJMP rel (2,2):Nhảy ngắn
JB bit,rel (3,2): Nhảy tương đối nếu bit trực tiếp được đặt JNB bit,rel (3,2) Nhảy tương đối nếu bit trực tiếp không được đặt CJNE Rn,#data,rel (3,2) So sánh dữ liệu tức thời với nội dung thanh ghi
Rn và nhảy nếu không bằng
DJNZ Rn,rel (2,2): Giản thanh ghi Rn và nhảy nếu không bằng
Trang 15Pin Names Description
• Ripple Blanking Input (Active LOW)
• Lamp Test Input (Active LOW)
• Blanking Input (Active LOW) or Ripple Blanking Output (Active LOW)
• Segment Outputs (Active LOW)
• 4.75V – 5.25V
• Min 2V
• Max 0.8V
Trang 164.5 Hi ển thị led 7 đoạn:
Led 7 đoạn cĩ cấu tạo gồm 7 led đơn cĩ xếp theo hinh 8 và cĩ thêm một
led đơn hình trịn nhỏ thể hiện dấu chấm trịn ở gĩc dưới, bên phải
8 led đơn trên led 7 đoạn cĩ Anode (cực +) hoặc Cathode (cực -) được nối chung với nhau vào một điểm
Nếu led 7 đoạn cĩ Anode chung, đầu chung nay được nối với +Vcc
Nếu led 7 đoạn cĩ Cathode chung, đầu chung này được nối xuống mass
Vì led 7 đoạn chứa bên trong nĩ các led đơn, do đo khi kết nối cần đảm bảo dịng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nối với nguồn 5V cĩ thể hạn dịng bằng điện trở 330Ω trước các chân nhận tin hiệu điều khiển
Dựa vào đặc tính sinh lý của mắt người, mỗi led delay khoảng 3-5ms, như thế mắt người sẽ cĩ cảm giác 4 led cùng sang (phương pháp quét led)
Để điều khiển ON/OFF các led, sử dụng transitor loại PNP nhận dịng từ vi điều khiển, led ON khi tín hiệu từ vi điều khiển đến transitor ở mức 0
Dùng IC7447 cho loại anod chung hoặc dùng IC7448 cho loại cathod
chung
Trang 175 Sơ đồ nguyên lý:
Cầu diod tạo ra điện áp DC, qua tụ C lọc bỏ thành phần gợn sóng,
sau đó qua IC7805 ổn áp ngõ ra 4.8V- 5.2V
Trang 185.2 Kh ối hiển thị:
4 led 7 đoạn anod chung, được điều khiển ON/OFF bằng transistor nhận tín hiệu từ P0.4─P0.7 của vi xử lý, Led 7 đoạn sẽ được ON khi tin hiệu từ vi điều khiển đến transitor ở mức 0, đồng thời sử dụng IC74LS47 để giải mã BCD qua led 7 đoạn
Trang 195.3 Kh ối cảm biến và chuyển đổi:
Trang 205.4 Kh ối điều khiển:
Điện trở thanh RP1 dùng để
Kéo port lên nguồn,hạn dòng
Cho led 7 đoạn
Điện trở thanh thường dùng
khi cần nhiều điện trở giống
nhau, nhưng yêu cầu thiết
kế cho gọn
Trang 216 Giải thuật chương trình:
R5 ↓
R5=0
HIỂN THỊ
Cho phép led 1 P0← A DeLay
Cho phép led
2 A← B P0 ←A Delay
Cho phép led 3 A← R6 P0 ←A
Delay
RET
END
Trang 22 Đầu tiên khởi động ADC CS=0, Nhận tín hiệu analog và bắt đầu quá trình chuyển đổi WR=0 Chờ chân INTR=0, đưa dữ liệu ra D0-D7 RD=0
8051 nhận tín hiệu qua port1 đưa vào thanh ghi ACC Để tạo độ ổn định hiển thị (do LM35 rất nhạy) nên
ta delay 5s cho mỗi lần lấy mẫu tín hiệu, bằng cách dùng vòng lặp và lưu lại lại giá trị ACC để biến đổi
Do mỗi led sáng delay 5ms,
4 led sáng mất 20ms, nên lặp vòng 250 lần để delay 5s cho mỗi lần lấy tín hiệu
Do giá trị nhận được gấp 2 lần nhiệt
độ đo nên ta dùng phương pháp chia 2 Nếu số dư =1 thì ta xuất ra giá trị 5 ở số lẻ, nếu =0 thì xuất ra giá trị 0 Số nguyên thu được tiếp tục chia cho 10 để tách chữ số hàng đơn vị và chục, sau đó xuất ra led tương ứng
Sử dụng phương pháp quét led với thời gian delay 5ms (sử dụng vòng lặp)
Để điều khiển led ta OR giá trị trong ACC với mã điều khiển led tương ứng
#70XX,#0B0XX,#0D0XX,#0E0XX LED cuối cùng dùng để hiễn thị chữ C
Trang 23ORL A,#0B0H; cho phép led2 sáng MOV P0,A
LCALL DELAY_5MS MOV A,R6
MOV B,#5 MUL AB ORL A,#0D0H; cho phép led3 sáng MOV P0,A
LCALL DELAY_5MS MOV A,#0E0H
MOV P0,A LCALL DELAY_5MS POP ACC
DJNZ R5,LOOP1 SJMP LOOP
DELAY_5MS:
MOV R1,#10 LAP: MOV R2,#250 DJNZ R2,$
DJNZ R1,LAP RET
END
Trang 247 Thi công lắp đặt:
7.1 Ki ểm tra hoạt động của mạch trên testboard
Trang 257.2 Thi ết kế mạch in:
Mạch vi xử lý+ADC Mạch led
8 Kết luận:
8.1 Nh ững thuận lợi và khó khăn:
Sau khi nghiên cứu lý thuyết và lựa chọn phương án thực hiện, cùng với yêu cầu của giáo viên hướng dẫn cần thêm cảm biến độ ẩm, thì việc lựa chọn IC ADC0809 là phương án tốt nhất IC0809 là IC
chuyển đổi tương tự số ADC với 8 ngõ vào lựa chọn và 8 chân ngõ
ra, tuy nhiên việc mô phỏng IC này không thành công trong việc cấp xung nhịp, hơn nữa cảm biến độ ẩm không tìm được cả về lý thuyết lẫn linh kiện trên thị trường, nên em đã chuyển hướng sang nghiên cứu IC0804
Đồ án môn học này là cơ hội cho em liên hệ thực tế về lý thuyết vi xử
lý và một số IC khác, cũng như nâng cao hơn kỹ năng về thực tập điện tử, tuy nhiên do kinh nghiệm và tay nghề còn kém nên sản phẩm làm ra chưa thực sự hoàn hảo