Đồng hồ timer delay, Đếm thời gian + Quét 4led 7 đoạn, Lập trình Pic

dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic
Đồng hồ timer delay dùng để đếm thời gian giờ phút giây sử dụng bộ tạo trễ của phần mềm hổ trợ vi điều khiển, đây được xem là phương pháp điều khiển đơn giản nhất không cần phải tính toán giá trị, nhưng độ chính xác thì không được tốt, khi giao tiếp với các module khác thì dễ bị ảnh hưởng. Phương pháp này dùng để kiểm tra hệ thống không thể sử dụng đại trà. 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

Ủng hộ mình bằng cách Donate qua momo: 0967551477.

Đề bài đồng hồ timer delay:

dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic-de-bai

Bài giải đồng hồ timer Delay:

Phần cứng chương trình đồng hồ timer Delay:

  • Đề không yêu cầu đếm thời gian bằng timer0 hoặc timer1 vì vậy việc sử dụng delay giúp giải bài toán được đơn giản hơn.
  • Quét 4 led 7 đoạn Anot chung sẽ giúp tối ưu được phần cứng nhưng phầm mềm phải hiểu rõ thì mới có thể hoạt động ổn định. Các chân Anot chung phải sử dụng tranzitor pnp và tùy theo dòng cung cấp cho led mà chọn pnp cho phù hợp, thường được sử dụng chân A1015.
  • Led đơn được sử dụng nhấp nháy 1Hz, khi sử dụng lưu ý phải tính toán giá trị trở 330 hạn dòng cho led.
  • Sử dụng dao động ngoài thạch anh 20M gắn vào chân OSC1 OSC2.
  • Các linh kiện chính cần sử dụng tham khảo tại.
    Thông số kỹ thuậtMua Linh kiện
    Pic16F887Pic16F877
    Led đơnLed đơn
    Điện trởĐiện trở
    Nút nhấnNút nhấn
    Thạch anhThạch anh
    Led 7 đoạn AnotLed 7 đoạn Anot
    Tranzitor A1015Tranzitor A1015
     
dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic

Ủng hộ mình bằng cách Donate qua momo: 0967551477.

Phần mềm đồng hồ timer Delay:

Khai báo thư viện tiền sử lý của đồng hồ timer Delay:

  • 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 20M bằng lệnh #Fuses    hs     và    #delay(clock=20M). 
  • Đị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 không biết giá trị cụ thể là bao nhiêu thì chỉ cần khai báo signed int32 đây là biến 32bit có dấu vì vậy giá trị rất rộng không sợ sai yêu cầu của đề bài đưa ra.
dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic-khai-bao

Chương trình con đồng hồ timer Delay:

  • Chương trình con đầu tiên là hiển thị, vì ở đây là quét led 7 đoạn nên chỉ cần mỗi thời điểm chỉ cho một led 7 đoạn sáng đồng thời kích chân tương ứng, với tần số quét từ 50Hz trở lên thì hiệu ứng lưu ảnh trên mắt sẽ được ứng dụng tốt vì vậy sẽ không thấy được led bị nhấp nháy. Ở đây không hướng dẫn chi tiết về quét led chỉ nói khái quát sơ qua.
  • Chương trình con nhấp nháy led 1Hz được tính như sau: chương trình hiển thị quét led tốn 4ms bỏ qua thời gian các hàm khác, vòng lặp for chạy 125 lần tức sẽ làm 125 lần hàm hiển thị từ đó suy ra 4ms x 125 = 500ms tức nữa thời gian đầu bật led sáng, tương tự cho nữa thời gian sau tắt led.
  • Vì chương trình hiển thị phải được làm liên tục nếu không sẽ bị nhấp nháy led 7 đoạn nên lợi dụng thời gian quét 4 led 7 đoạn để làm thời gian đếm giây. Từ đó nhấp nháy sẽ làm hàm delay 1s. 
dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic-chuong-trinh-con

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 đồng hồ timer Delay

  • Bắt đầu chương trình chính phải khỏi rạo ngõ vào ra cho vi điều khiển. Một chân của vi điều khiển thì làm nhiệm vụ I/O vì thế phải khỏi tạo. Port D, Port C kết nối vào led 7 đoạn nên xuất dữ liệu nên khởi tạo là 0x00.
  • Gán giá trị ban đầu bằng 0 chuẩn bị cho chu kỳ đếm thời gian bằng delay.
  • Tăng biến giay lên một đơn vị sau đó gọi hàm nhap_nhay(); giúp nhấp nháy led đơn 1Hz đồng thời tạo trễ 1s. Kiểm tra nếu giay>59 thì cho giay=0 chuẩn bị cho chu kỳ mới đồng thời tăng phut lên một đơn vị. Kiểm tra nếu phut > 59 cho phut=0 chuẩn bị cho chu kỳ mới.
  • Vì sử dụng delay nên thời gian đếm sẽ sai số khá nhiều nhưng vì mức độ là giải đề nên không quá lớn trong trường hợp này, nếu muốn có độ chính xác cao hơn thì dùng timer hoặc ic thời gian thực sẽ tạo độ tin cậy cao hơn.
dong-ho-timer-delay-quet-led-7doan-lap-trinh-pic-chuong-trinh-chinh   Ủng hộ mình bằng cách Donate qua momo: 0967551477.

Các bạn có thể xem video đồng hồ timer delay sẽ dễ hiểu hơn nhé:

Ngoài ra còn nhiều Phần và các môn khác

Đồ án điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 1 Mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 2 Thiết kế mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 3 Vi xử lý, Lập trình vi điều khiển Pic – 8051 – Avr – Phần 4 Tổng hợp File ĐỒ ÁN Điện tử cơ bản Tổng hợp File ĐỒ ÁN Viễn thông Tổng hợp File ĐỒ ÁN PLC Tổng hợp File ĐỒ ÁN Cung cấp điện

Sẽ còn các phần khác nữa nhé.

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 *