Mở Rộng 7447, Đếm Xung Timer0 Hiển Thị 4led 7đoạn, Lập Trình Pic

Skip to content Mở rộng 7447 là phương pháp tiết kiệm chân cho vi điều khiển và giúp tối ưu quá trình lập trình. IC mở rộng chân cho led 7 đoạn 74HC47 là ic nhận tín hiệu trạng thái BCD sau đó chuyển thành mã 7 đoạn đã được quy định sẵn trong bảng trạng thái của IC. Đây được xem là phương pháp mở rộng hay nhưng thực tế thì khá ít người sử dụng vì khó tối ưu phần cứng, và số lượng tiết kiệm chân cũng không được tốt.

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: [email protected] Đị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

Tải XuốngPass 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ở rộng 7447, Đếm xung timer0 hiển thị 4led 7đoạn

Blog Mở rộng 7447, Đếm xung timer0 hiển thị 4led 7đoạn

Đề bài mở rộng 7447:

Mo-rong-7447-4led-7doan-dem-xung-timer0-lap-trinh-pic-de-bai

Bài giải mở rộng 7447:

Phần cứng chương trình mở rộng 7447:

  • Đề yêu cầu sử dụng phương pháp mở rộng cho 4led 7đoạn bằng ic chuyển đổi BCD sang mã7 đoạn 7447. 
  • 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.
  • Led 7 đoạn sử dụng loại anot chung, đồng thời điện trở kèm theo là 330Ω khi làm thực tế các bạn gắn trở vào tránh bị cháy led, cách tính các bạn có thể tham khảo sách giáo trình Vi điều khiển thầy Nguyễn Đình Phú bài led đơn.
Mo-rong-7447-4led-7doan-dem-xung-timer0-lap-trinh-pic-phan-cung

Phần mềm mở rộng 7447:

Khai báo thư viện tiền sử lý của ngắt Port B:

  • 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)
  • Vì mã 7đoạn theo bảng trạng thái của IC mở rộng 7447 nên chỉ cần khai báo từ 0, đến 9. Thật ra việc này không cần thiết vì khi tách số đã cho ra được mã thập phân. Việc khai báo chỉ cho thấy được rõ cách hoạt động của IC mở rộng 7447.
  • Khai báo biến phục vụ đếm Counter và giá trị sau khi tăng. Theo yêu cầu đưa ra khi có một sản phẩm đi qua thì tăng giá trị sản phẩm lên 50 lần.
Mo-rong-7447-4led-7doan-dem-xung-timer0-lap-trinh-pic-khai-bao

Chương trình con xuất dữ liệu ra 4led 7đoạn bằng mở rộng 7447:

  • Đầu tiên khai báo 4 giá trị tạm thời là so1, so2, so3, so4. Sau đó việc sử dụng được phép truyền tham số vào.
  • Khai báo các biến y1, y2, y3, y4, yc, yd là biến cục bộ, chỉ được sử dụng trong chương trình con xuat_dl_4so(unsigned int8 so1,so2,so3,so4);
  • Khi mở rộng 7447 số BCD có 16 trạng thái đại diện cho 16 mã 7 đoạn. Mà một Port của vi điều khiển gắn vào 2 IC 7447 nên phải tách 4bit thấp cho IC thứ nhất, và sử dụng 4bit cao cho IC thứ hai.
  • Ví dụ giá trị so1 = 0000 1010 khi gán y1=so1 thì giá trị lấy được vẫn là 0000 1010. Nhưng giá trị so2 = 0000 0110 thì muốn lấy được giá trị 0110 gán cho y2 trước hết phải dịch <<4 dữ liệu 0000 0110 ta được 0110 0000 suy ra y2 = 0110 0000; 
  • Muốn xuất giá trị ra một port và so1 đại diện cho 4bit thấp, so2 đại diện cho 4bit cao chỉ cần lấy yc=y1|y2 => yc = 0110 1010; Khi xuất giá trị yc ra thì 4bit thấp đã được gán giá trị cho IC 7447 thứ nhất, còn 4bit cao gán giá trị cho IC thứ hai theo nguyên lý đã đưa ra. Tương tự cho 2 số còn lại.

Mo-rong-7447-4led-7doan-dem-xung-timer0-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 mở rộng 7447

  • 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 B dùng cho nút nhấn để đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0xff, Port D, Port C xuất cho led đơn tức đưa tín hiệu từ Vi điều khiển ra ngoài nên khởi tạo là 0x00.
  • Khởi tạo timer0 Counter0 là đếm xung ngoài bằng lệnh t0_ext_h_to_l và sử dụng bộ chia 1, vì mỗi lần xung ngoài đưa vào chỉ có 1 xung nên bộ chia chỉ chọn được chia 1. Việc sử dụng hàm t0_div_1 là không cần thiết vì mặc định không khai báo là chia 1, ở đây khai báo để nói lên nội dung của đếm Counter0.
  • Bắt đầu đếm giá trị trả về bằng 0 và chờ tín hiệu từ chân RA4 gửi vào.
  • Khi nhận một xung từ chân RA4 thì hàm get_timer0(); tăng lên một giá trị, sau đó gán giá trị đó cho biến dem. Vì vậy biến dem bị phụ thuộc vào giá trị của Counter0.
  • Theo yêu cầu đề bài đưa ra, khi nhận được một xung thì giá trị sẽ tăng lên 50 lần.
  • Nếu số lượng sp lớn hơn 1000 cho các giá trị về 0 đồng thời phải khởi tạo lại giá trị ban đầu cho Counter0.
  • Sau đó xuất các giá trị hàng nghìn, trăm, chục, đơn vị ra cho 4 led 7 đoạn theo chương trình con đã viết ở trên bằng cách giải mã và truyền tham số vào.
Mo-rong-7447-4led-7doan-dem-xung-timer0-lap-trinh-pic-chuong-trinh-chinh

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

Điện tử Nhật Tùng
Ngắt Port B, Điều khiển hiệu ứng led đơn bằng nút nhấn, Lập trình PicHiển thị LCD1602 Tiếng Việt, Tạo xung PWM chỉnh nút nhấn, Lập trình Pic

Trả lời Hủy

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 *

Bình luận *

Tên *

Email *

Trang web

Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.

NHẬN THIẾT KẾ VÀ CODE MẠCH ĐIỆN TỬ & ĐỒ ÁN
  • Điện thoại     : 0967551477
  • Liên hệ Zalo : 0967551477
  • Liên hệ FB    : Huỳnh Nhật Tùng
  • ĐỒ ÁN ĐIỆN TỬ
    • Review Đồ án
    • Tổng hợp File
    • GIÁO TRÌNH
  • MÔN HỌC
    • Ngành Điện – Điện tử
      • Giải đề Vi điều khiển
      • Lập trình Vi điều khiển
      • Lập trình STM32
  • PHẦN MỀM
    • LẬP TRÌNH
      • CodeVisionAVR
      • Keil C
      • Pic C CCS
      • Visual Studio
      • Arduino IDE
      • Matlab
    • ĐIỆN TỬ
      • Proteus
      • Altium Designer
      • Cadence Orcad
      • Autodesk Eagle
      • NI Multisim & Ultiboard
    • KỸ THUẬT
      • SolidWorks
      • Eplan electric P8
      • Creo Parametric
      • Solid Edge
      • Altair SimSolid
      • Wolfram Mathematica
      • SketchUP Pro
    • BỘ AUTODESK
      • Autodesk Autocad
      • Autodesk Inventor
      • Autodesk Maya
      • Autodesk Revit
      • Autodesk Civil 3D
      • Autodesk 3DS MAX
      • Autodesk PowerShape
      • Autodesk InfraWorks
      • Autodesk Advance Steel
      • Autodesk Structural Bridge Design
      • Autodesk Alias AutoStudio
      • Autodesk Alias Surface
      • Autodesk Fabrication CADmep
      • Autodesk Fabrication CADduct
      • Autodesk Fabrication ESTmep
      • Autodesk Factory Design Utilities
      • Autodesk FeatureCAM
      • Autodesk HSMWorks
      • Autodesk Robot Structural Analysis
      • Autodesk Vred Pro
      • Autodesk InventoCAM
      • Autodesk MotionBuilder
      • Autodesk Navisworks Manage
      • Autodesk ReCap
      • Autodesk Inventor Nastran
    • DESIGN
      • CorelDRAW Graphics
      • Proshow Producer
      • Affinity Designer
      • Affinity Photo
      • Affinity Publisher
    • BỘ ADOBE
      • Adobe Photoshop
      • Adobe Premiere
      • Adobe illustrator
      • Adobe After Effects
      • Adobe Dreamweaver
      • Adobe InDesign
      • Adobe Prelude
      • Adobe Lightroom Classic
      • Adobe Acrobat
      • Adobe Bridge
      • Adobe Media Encoder
      • Adobe Auditsion
      • Adobe Animate
      • Adobe Dimension
    • VĂN PHÒNG
      • Microsoft Office
      • Mindjet MindManager
      • iMindMap
      • Quay màn hình
  • LIÊN HỆ
  • WooCommerce not Found
  • Newsletter
  • Địa chỉ 106/14 Đường số 51, P14, Gò Vấp, HCM
  • Hotline: 0967551477

Từ khóa » Cách Dùng 7447