Đọc ADC, Đọc giá trị điện áp từ biến trở hiển thị 3led 7 đoạn, Lập trình Pic

doc-adc-dien-ap-hien-thi-phan-thap-phan-len-led-7doan-lap-trinh-pic-phan-cung
Đọc ADC là đọc giá trị analog và là bộ chuyển đổi tương tự sang số, được tích hợp rất nhiều trong các cảm biến, từ cảm biến ở chế độ test đến các cảm biến có tính công nghiệp. Các cảm biến bắt đầu có sự tích hợp phương pháp đọc ADC để việc giao tiếp được dễ dàng hơn. Tín hiệu analog được xem là tín hiệu phổ biến nhất hiện hay, xung quanh chúng ta đều là tín hiệu ADC. Vi điều khiển chỉ hiểu và hoạt động được thông qua tín hiệu số vì vậy cần có bộ chuyển đổi tương tự sang số được gọi là ADC.

Mua linh kiện điện tử tại Điện tử Nhật Tùng

Liên hệ làm mạch  Phone: 0967.551.477 Zalo: 0967.551.477 Email: dientunhattung@gmail.com Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử  
Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>>  Kích vào hình để được biết thêm chi tiết khóa học lập trình vi điều khiển online

Tải File bài giải

Pass giải nén: Huynhnhattung.com
===>>>   Nếu bạn chưa có phần mềm giải nén:

Hướng dẫn Tải và Cài đặt phần mềm giải nén Winrar

Video Đếm sản phẩm Counter gửi lên máy tính qua UART RS232

 

Blog Đếm sản phẩm Counter gửi lên máy tính qua UART RS232

Đề bài đọc ADC:

doc-dien-ap-hien-thi-phan-thap-phan-len-led-7doan-lap-trinh-pic-de-bai

Bài giải đọc ADC:

Phần cứng chương trình đọc ADC:

  • Đề yêu cầu sử dụng đọc ADC thông qua chân RE1/AN6. Nếu không yêu cầu các bạn có thể gắn vào chân có ký hiểu ANxx đây là chân có cổng đọc ADC. Vi điều khiển hổ trợ đọc tín hiệu tương tự sang số giúp phần cứng được tối ưu và dễ dàng giao tiếp thông qua các hàm hoặc thanh nghi đã được định nghĩa sẵn.
  • Nếu giao tiếp một vài vi điều khiển không có hổ trợ đọc analog thì bắc buộc phải đọc thông qua sử dụng các IC hổ trợ như ADC0804, ADC0808, ADC0809 nhưng chi phí cho các loại IC hổ trợ này khá cao có thể gấp đôi hoặc gấp 3 vi điều khiển.  
  • Sử dụng biến trở để phân áp thì giá trị ADC đọc về từ điểm đầu đến điểm cuối của biến trở. Theo nguyên lý đưa ra giá trị ADC đọc về từ 0 đến 5V
  • Sử dụng dao động ngoài thạch anh 4M gắn vào chân OSC1 OSC2. Đây là mô phỏng nên mình lười không gắn vào.
  • Việc sử dụng 3led 7 đoạn nối trực tiếp vào Vi điều khiển giúp việc giao tiếp được dễ dàng hơn rất nhiều. Nhưng khi làm mạch thực tế thì lại khó khăn hơn và đây được xem là phương pháp không hiệu quả và không tối ưu phần cứng.
  • Các linh kiện chính cần sử dụng tham khảo tại.
Thông số kỹ thuật Mua Linh kiện
Pic16F887Pic16F887
Led 7 đoạn Anot chungLed 7 đoạn Anot chung
Biến trở VolumBiến trở Volum
Điện trởĐiện trở
Nút nhấnNút nhấn
Thạch anhThạch anh
   

doc-adc-dien-ap-hien-thi-phan-thap-phan-len-led-7doan-lap-trinh-pic-phan-cung

Phần mềm đọc ADC:

Khai báo thư viện tiền sử lý của đọc ADC:

  • Vi điều khiển hiện tại mình đan dùng là Pic16F887
  • Hiện đan dùng thạch anh ngoài và thạch anh ngoài 4M bằng lệnh #Fuses    hs     và    #delay(clock=4M). Định nghĩa chân: tùy theo chức năng của chân mà tên định nghĩa được bám sát vào nội dung đan thực hiện.
  • Vì đây là bài thi nên việc định nghĩa chân phụ thuộc rất lớn vào nội dung đề bài.
  • Mã 7 đoạn là đoạn mã Anot: Cấu trúc lệnh cho bạn nào cần copy : ” unsigned int8 ma7doan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8.0x80,0x90,0xff} “.
  • Tên khai báo biến thì cái này tùy thuộc vào chức năng để khai báo cho phù hợp. 
  • Khi muốn hiển thị hàng thập phân nên có một giá trị biến Float vì biến này là số thực và cho phép lấy được 2 giá trị thập phân lớn nhất thoải mãn yêu cầu đưa ra. Một vài biến hổ trợ chương trình hoạt động tốt hơn, khi không xét tính tối ưu của chương trình thì khai báo 32bit và nên để có dấu đây được xem là tính an toàn của bài toán. 
doc-adc-dien-ap-hien-thi-phan-thap-phan-len-led-7doan-lap-trinh-pic-khai-bao

Chương trình chính thực hiện toàn bộ hoạt động của vi điều khiển dùng đọc ADC

  • Ban đầu khởi tạo PORT: Chương trình đọc ADC điện áp từ biến trở được gắn vào chân E1 vì thế phải trả về mức cao cho chân này. Port D, Port C, Port B gắn vào led 7 đoạn xuất tín hiệu ra ngoài từ đó set giá trị là 0x00.
  • Khởi tạo các thông tin cho ADC gồm sử dụng bộ chia 32 để số lần đọc ADC trong 1s được ít hơn. Biến trở được gắn vào chân AN6 khi khởi tạo phải thiết lập SAN6 theo thiết lập của phần mềm hổ trợ, đồng thời khởi tạo kênh 6.
  • Đầu tiên dùng vòng lặp for để đọc giá trị trung bình 100 lần, sau khi đọc xong lấy kết quả chia cho số lần đọc được tạo ra giá trị trung bình. Giá trị đó nhân với 5000 => Vref+ = 5V = 5000mV. chia 1023 => adc sử dụng 10bit = 2^10 = 1023.
  • Khi chọn giá trị thì kết quả ADC được tạo ra từ 0 – 5000 mV.  Theo yêu cầu có 3 led 7 đoạn không hiển thị hết tới số hàng nghìn vậy chỉ có thể hiển thị hàng đơn vị và 2 giá trị hàng thập phân.
  • Từ đó lấy kết quả đo được chia 10 chuyển giá trị xuống từ 0 – 500. Điều này có nghĩa giá trị sẽ tương ứng hàng trăm ADC là hàng đơn vị của điện áp, hàng chục và hàng đơn vị tương ứng hàng thập phân thức nhất và thập phân thứ hai.
  • Cuối cùng trả về kết quả để hiển thị ra màn hình led 7 đoạn. 

  • Đầu tiên xuất giá trị hàng trăm ADC ra led 7 đoạn Port C và &0x7f để hiển thị dấu chấm dp làm dấu chấm hàng thập phân của điện áp. Port D và Port B hiển thị giá trị hàng chục và đơn vị tương ứng cho giá trị thập phân của điện áp.
doc-adc-dien-ap-hien-thi-phan-thap-phan-len-led-7doan-lap-trinh-pic-chuong-trinh-chinh

Chúc các bạn có một kỳ thi thành công…!!!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *