đo nhiệt độ dùng cảm biến lm35 với pic16f877a dùng ngôn ngữ assembly
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA ĐiỆN – ĐiỆN TỬ
ĐỀ TÀI :
ĐO NHIỆT ĐỘ DÙNG CẢM BiẾN LM35 VỚI PIC 16F877A
DÙNG NGÔN NGỮ ASSEMBLY
BÁO CÁO VI XỬ LÍ 2
Trang 2LƯU ĐỒ VÀ CHƯƠNG TRÌNH
LƯU ĐỒ VÀ CHƯƠNG TRÌNH
THANH GHI VÀ TRÌNH BIÊN DỊCH
THANH GHI VÀ TRÌNH BIÊN DỊCH
BỘ CHUYỂN ĐỔI ADC
BỘ CHUYỂN ĐỔI ADC
QUÁ TRÌNH HOẠT ĐỘNG
QUÁ TRÌNH HOẠT ĐỘNG TỔNG KẾT RÚT KINH
THÔNG TIN CHUNG
LỚP ĐiỆN TỬ ViỄN THÔNG _ĐẠI HỌC SƯ PHẠM KỸ THUẬT
TPHCM FORUM : MY.OPERA.COM/DTVT06
LỚP ĐiỆN TỬ ViỄN THÔNG _ĐẠI HỌC SƯ PHẠM KỸ THUẬT
TPHCM FORUM : MY.OPERA.COM/DTVT06
TRANG LIÊN KẾT
Trang 4PHÂN CÔNG NHIỆM VỤ
Nhiệm vụ của từng thành viên :
Phúc(trưởng nhóm): giới thiệu tổng quan về đề tài báo cáo , giới thiệu cấu trúc PIC 16F877A và cảm biến nhiệt LM35.
Khả (TV): Giới thiệu sơ lược các thanh ghi cần dùng và một số cấu trúc lệnh quan trọng sử dụng trong chương trình.
Hòa (TV): Trình bày sơ lược về bộ chuyển đổi ADC trong PIC
Luân (TV): Trình bày nguyên lý mạch ứng dụng và mô phỏng hoạt động của mạch trên Proteus
Nhân (TV): Giải thích lưu đồ và chương trình nạp cho PIC để điều khiển mạch
Trang 5QUÁ TRÌNH HOẠT ĐỘNG
Giai đoạn đầu : thu thập tài liệu , nghiên cứu lý thuyết
Giai đoạn giữa : triển khai đề tài ,soạn thảo nội dung , viết báo cáo
Giai đoạn cuối : check lỗi , tập dược chuẩn bị cho mọi tình huống
Trang 6Một số ứng dụng của PIC
A 1 A 2
ỨNG DỤNG
Trang 7Một số đặc tính PIC
(programmable intelligent computer)
Là CPU 8/16 bit xây dựng theo kiến trúc Havard có sửa đổi
Có bộ nhớ Flash và Rom có thể tùy chọn 256byte đến 256Kbyte.
Có các cổng xuất nhập (I/O ports)
Có timer 8/16 bit
Có các chuẩn giao tiếp nối tiếp đồng bộ /không đồng bộ
Có hỗ trợ điều khiển Ethernet
Có hỗ trợ giao tiếp CAN
Trang 8Một số đặc tính PIC
(programmable intelligent computer)
Các bộ chuyển đổi ADC 10/12 bit
Có các bộ so sánh điện áp (Voltage comparators)
Có các khối Capture /Compare/PWM
Có hỗ trợ giao tiếp LCD
Có MSSP peripheral dùng cho giao tiếp I2C ,SP
và I2S
Có khối điều khiển động cơ và đọc encoder
Có hỗ trợ giao tiếp USB
Trang 9Một số đặc tính PIC
(programmable intelligent computer)
Đặc điểm thực thi tốc độ cao CPU RISC của họ VĐK PIC 16F87XA:
Gồm 35 lệnh đơn
Tất cả các lệnh là 1 chu kỳ ,chương trình con là 2 chu kỳ
Tốc độ hoạt động DC - 20MHz ngõ vào xung clock DC - 200ns chu kì lệnh
Dung lượng của bộ nhớ chương trình Flash 8Kx14 words
Dung lượng của bộ nhớ dữ liệu RAM là 368x8bytes
Dung lượng của bộ nhớ dữ liệu EEPROM 256x8bytes
Trang 10Một số đặc tính PIC
(programmable intelligent computer)
Các đặc tính về tương tự:
Có 8 kênh chuyển đổi tín hiệu tương tự thành tín hiệu số 10 bit
Có reset BOR (Brown – on reset )
Khối so sánh điện áp tương tự
Hai bộ so sánh tương tự
Khối tạo điện áp chuẩn Vref tích hợp bên trong có thể lập trình
Đa hợp ngõ vào lập trình từ ngõ vào của CPU với điện áp chuẩn bên trong
Các ngõ ra của bộ so sánh có thể truy xuất từ bên ngoài
Trang 11AN2:ngõ vào tương tự kênh thứ 2
Vref- : ngõ vào điện áp chuẩn thấp của bộ A/D
CVref:điện áp tham chiếu Vref ngõ ra bộ so sánh
(5) RA3 :xuất/ nhập số
(7)RA5: xuất/ nhập số
AN4:Ngõ vào tương tự kênh thứ 4
(8)AN5: Ngõ vào tương tự 5
(9)AN6: Ngõ vào tương tự 6
Trang 12CẤU TRÚC PIC16F877A
Trang 14Hoạt Động Chuyển Đổi Và Kết Nối LM35
Hoạt động chuyển đổi :
Chuyển đổi sang °C
Mức chuyển đổi tuyến tính tương ứng 10mV/°C
Điện áp hoạt động từ 4 30V
Không tuyến tính ở mức ±¼°C
Trở kháng ngõ ra 0.1Ω đối với 10mA
Trang 15Kết Nối LM35
Thang nhiệt độ cơ bản
Toàn thang nhiệt độ
Trang 16Là các thanh ghi điều khiển các Port 2 chiều 8 bit
PortB,PortC,PortDKhi TRISx=1 thì Portx tương ứng là Port nhậpKhi TRISx=0 thì Portx tương ứng là Port xuất
Là thanh ghi chứa 8 bit thấp của thanh ghi bộ đếm chương trình PC Nội dung thanh ghi có thể đọc và ghi được
Là thanh ghi chứa 8 bit thấp của thanh ghi bộ đếm chương trình PC Nội dung thanh ghi có thể đọc và ghi được
Thanh ghi PCL (Program C ounter L east Significant Byte)
CÁC THANH GHI LIÊN QUAN
Thanh ghi PIR1
Thanh ghi ADCON1
Thanh ghi ADRESH & ADRESL
Và các thanh ghi TRISB, TRISC, TRISD
Thanh ghi PIE1
Thanh ghi trạng thái (Status Register)
Thanh ghi ADCON0
Trang 17THANH GHI TRẠNG THÁI
Thanh ghi trạng thái (Status register) :
Có địa chỉ lần lượt là 03h, 83h,103h, 183h tại 4 bank thanh ghi
TGTT chứa trạng thái của khối ALU, trạng thái reset và các bit chọn Bank
Trang 18Thanh ghi PIE1 : Địa chỉ 8Ch
Là thanh ghi chứa các bit cho phép ngắt độc lập cho các ngắt ngoại vi
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
Bit 7: cho phép ngắt đọc/ghi ở port nhánh song song
1= cho phép ngắt PSP đọc/ghi 0= không cho phép ngắt PSP đọc/ghi
Bit 7: cho phép ngắt đọc/ghi ở port nhánh song song
1= cho phép ngắt PSP đọc/ghi 0= không cho phép ngắt PSP đọc/ghi
Bit 6: cho phép ngắt bộ chuyển đổi A/D
1= cho phép ngắt 0= không cho phép ngắt
Bit 6: cho phép ngắt bộ chuyển đổi A/D
1= cho phép ngắt 0= không cho phép ngắt
Bit 5: cho phép ngắt nhận dữ liệu USART
1= cho phép ngắt 0= không cho phép ngắt
Bit 5: cho phép ngắt nhận dữ liệu USART
1= cho phép ngắt 0= không cho phép ngắt
Bit 4: cho phép ngắt phát dữ liệu USART
1= cho phép ngắt 0= không cho phép ngắt
Bit 4: cho phép ngắt phát dữ liệu USART
1= cho phép ngắt 0= không cho phép ngắt
Bit 3: cho phép ngắt port nối tiếp đồng bộ
1= cho phép ngắt SSP 0= không cho phép ngắt SSP
Bit 3: cho phép ngắt port nối tiếp đồng bộ
1= cho phép ngắt SSP 0= không cho phép ngắt SSP
Bit 2: cho phép ngắt CCP1 1= cho phép ngắt CCP1 0= không cho phép ngắt CCP1
Bit 2: cho phép ngắt CCP1 1= cho phép ngắt CCP1 0= không cho phép ngắt CCP1
Bit 1: cho phép ngắt tương thích ứng TMR2 với PR2
1= cho phép ngắt 0= không cho phép ngắt
Bit 1: cho phép ngắt tương thích ứng TMR2 với PR2
1= cho phép ngắt 0= không cho phép ngắt
Bit 0: cho phép ngắt tràn TMR1 1= cho phép ngắt TMR1 tràn 0= không cho phép ngắt TMR1 tràn
Bit 0: cho phép ngắt tràn TMR1 1= cho phép ngắt TMR1 tràn 0= không cho phép ngắt TMR1 tràn
THANH GHI PIE1
Trang 19Bit 5: cờ báo ngắt nhận USART 1= USART nhận xong 0= USART nhận chưa xong
Bit 5: cờ báo ngắt nhận USART 1= USART nhận xong 0= USART nhận chưa xong
Bit 4: cờ báo ngắt truyền USART 1= truyền đệm của USART còn trống 0= truyền đệm của USART đầy
Bit 4: cờ báo ngắt truyền USART 1= truyền đệm của USART còn trống 0= truyền đệm của USART đầy
Bit 3: cờ báo ngắt port nối tiếp đồng bộ SSP
Bit 2: cờ báo ngắt CCP1 Chế độ capture:
1= thanh ghi bắt nhịp TMR1 có xảy ra(xóa bằng phần mềm)
Bit 2: cờ báo ngắt CCP1
Chế độ capture:
1= thanh ghi bắt nhịp TMR1 có xảy ra(xóa bằng phần mềm)
Bit 1: cờ báo ngắt tương thích TMR2 với PR2 1= TMR2 tương thích với PR2(xóa bằng phần mềm)
Bit 1: cờ báo ngắt tương thích TMR2 với PR2 1= TMR2 tương thích với PR2(xóa bằng phần mềm)
Bit 0: Cờ báo ngắt tràn TMR1 1= thanh ghi TMR1 đã tràn 0= thanh ghi TMR1 không tràn
Bit 0: Cờ báo ngắt tràn TMR1 1= thanh ghi TMR1 đã tràn 0= thanh ghi TMR1 không tràn
Thanh ghi PIR1 : Địa chỉ 0Ch
Là thanh ghi chứa các bit cờ cho các ngắt ngoài
R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0
Bit 7: cờ báo ngắt port nhánh song song đọc/ghi 1= hoạt động đọc hoặc ghi được thực thi 0= hoạt động đọc hoặc ghi không xảy ra
Bit 7: cờ báo ngắt port nhánh song song đọc/ghi 1= hoạt động đọc hoặc ghi được thực thi 0= hoạt động đọc hoặc ghi không xảy ra
THANH GHI PIR1
Trang 20Thanh ghi ADCON0(A/D Control Register 0) :
Bit mở nguồn cho ADC hoạt động1= chuyển đổi ADC được mở nguồn0= khối ADC được tắt nguồn để giảm công suất tiêu thụ
Bit báo trạng thái chuyển đổi ADC 1= Chuyển đổi ADC đang diễn ra 0= chuyển đổi ADC không diễn ra
Bit báo trạng thái chuyển đổi ADC 1= Chuyển đổi ADC đang diễn ra 0= chuyển đổi ADC không diễn ra
Các Bit lựa chọn kênh tương tự Các Bit lựa chọn xung chuyển đổi ADC
Trang 21ADCS1 RP1 RP0 CHS1 CHS0 C
Thanh ghi ADCON1(A/D Control Register 1) :
Trang 22THANH GHI ADRESH VÀ ADRESL
Lưu kết quả chuyển đổi ADC
Hai thanh ghi này không bị ảnh hưởng bởi RESET lúc cấp điện Khi đó, dữ liệu trong 2 thanh ghi là không xác định
Trang 23KHỐI CHUYỂN ĐỔI A/D
Một số đặc điểm:
Trang 24Lệnh Sleep Go=0
Hủy chuyển đổi Go=0 ADIF=1
Sleep tắt A/D
Sleep tắt A/D
Đ S
ADON=0
Đ
LƯU ĐỒ HOẠT ĐỘNG CHUYỂN ĐỔI A/D
Trang 25THIẾT LẬP CHUYỂN ĐỔI A/D
Các bước thiết lập quá trình chuyển đổi ADC:
Bước 1: Thiết lập cấu hình ADC
Định cấu hình cho các chân tương tự/điện áp chuẩn và xuất/nhập số (ADCON1).
Chọn lựa kênh ngõ vào ADC (ADCON0)
Chọn lựa xung clock cho chuyển đổi ADC (ADCON0).
Mở điện cho ADC (ADCON0)
Bước 2: Thiết lập cấu hình ngắt ADC (nếu có)
Xóa bit ADIF
Set bit ADIE
Set bit GIE
Set bit PEIE
Bước 3: Chờ hết thời gian nhận giá trị thiết lập (2Tad) Bước 4: Bắt đầu chuyển đổi: set bit GO/DONE
Bước 5: Chờ chuyển đổi xong
Kiểm tra liên tục bit GO/DONE về 0 hay chưa hoặc ADIF bằng 1 hay không.
Chờ ngắt adc xảy ra
Bước 6: Đọc cặp thanh ghi kết quả (ADRESH:ADRESL).
Trang 26VI ĐIỀU KHIỂN PIC
Phần cứng và mô phỏng
Trang 27Trong khi đó LM35 cho ra điện áp là 10mV/độ C vậy khi LM35 thay đổi 1độ thì chuyển đổi ADC nhảy 4 bước.
Vậy với cách chọn trên nên để xử lý kết quả chúng tôi dùng phương pháp canh lề trái và xử lý kết
ADRESH
Trang 28Ý TƯỞNG
Xử lý kết quả(KQ) lấy tại thanh ghi ADRESH:
1. Lấy KQ – 55 >= 0 là nhiệt độ không âm hiện thị nhiệt độ , không xét đến led dấu.
2. Lấy KQ – 55 < 0 là nhiệt độ âm ta hiển thị nhiệt độ kèm với led dấu
Hiển thị kết quả đo được ra led 7 đoạn bằng phương pháp quét led và xóa số 0 vô nghĩa.
Trang 29Đ
S
Adc<0 adc = adc - 55
Dau = 10111111B Adc = 0 - adc
Đếm = đếm - 1 Chục = đếm
Trang 30CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF
& _CPD_OFF &_LVP_OFF
movlw b'00001101' ;khoi tao thanh ghi ADCON1
movwf ADCON1 ;canh le trai, 2 ngo in analog, Vref+=AN3,Vref-=AN2
bcf STATUS,RP0 ;chuyen den bank 0 den su dung thanh ghi ADCON0
movlw b'10000001' ;cap nguon chuyen doi ADC,fosc/32,in analog=AN0
btfsc ADCON0,2 ;bat dau chuyen doi ADC
goto godone ;cho chuyen ADC ket thuc
bsf STATUS,C ;doan chuong trinh kiem tra
movlw 55 ;nhiet do nhan vao la duong hay am
subwf adc,1
btfsc STATUS,C
goto chuyen_bcd ;neu nhiet do la duong
movlw b'10111111' ;neu nhiet do la am
Trang 3136
TÓM TẮT
Nội dung đã ngiên cứu:
Các thanh ghi liên quan đến quá trình chuyển đổi ADC
Quy trình chuyển đổi ADC