Điều khiển 1 dòng quang báo bằng bàn phím matrix thông qua vi điều khiển IC 89V51RB2

MỤC LỤC

Tổ chức bộ nhớ của chip 89V51RB2

  • LOW Voltage Level

    Chõn 18,19(G1,G2):cỏc ngừ vào cho phộp IC hoạt động,trong một thời điểm chỉ cú 1 ic hoạt động,ic bị cấm hoạt động thỡ tất cả ngừ ra đều ở mức logic cao (bất chấp ngừ vào ở trạng thỏi nào). Tuỳ thuộc vào trạng thỏi của cỏc đường địa chỉ mà ta cú ngừ ra t ương ứng,khi cả hai ngừ vào G1,G2 ở mức logic thấp thỡ ic hoạt động bỡnh thường ,tại một thời điểm chỉ cú một ngừ ra ở mức logớc thấp ,tất cả cỏc ngừ cũn lại đều ở mức logic cao. Dựa vào bảng trạng thái ta th ấy :chỉ cần ch ân G1,G2 ỏ trạng thái cấm (kh ụng cho phộp IC hoạt động)thỡ tất cả ngừ ra của Ic 74ls154 đều ở mức logic cao bất chấp trạng thái ở các chân địa ch ỉ (A,B,C,D).Chẳng hạn như khi chân G1 ở mức logic cao thỡ tất cả cỏc ngừ ra của IC đều ở mức logic cao bất chấp trạng thái của các ch ân còn lại như G2,A,B,C,D.

    SƠ ĐỒ CHÂN IC74LS154
    SƠ ĐỒ CHÂN IC74LS154

    ĐIỀU KHIỂN

    Khối vi điều khiển

    IC 89V51RB2 là khối điều khiển trung tâm ,khối này nhận tín hiệu điều khiển từ bàn phím thông qua Port 0 đồng thời cũng xuất dữ liệu cho khối phân kênh thông qua Port 2 để quét hàng và xuất dữ liệu hiển thị ra cột thông qua Port 1.

    Khối Led Matrix

    Các Led ma được thiết kế theo kiểu cột nối chung(cột hiển thị màu đỏ riêng ,cột hiển thị màu xanh riêng) được nối với Port 1 để hiển thị ký tự,còn các hàng đuợc nối riêng theo từng Led để cấp tín hiệu quét.

    Khối phím Matrix

    Khối bàn phím này được thiết kế dựa vào cấu trúc hàng và cột của ma trận. Các hàng và cột của ma trận phím này được kết nối với vi điều khiển thông qua đầu nối jack 8.

    NGUYÊN LÝ HOẠT ĐỘNG

      -Loại Led ma trận sử dụng là Led 24 chân gồm 8 hàng và 8 cột.Ma trận Led có 2 màu chính là xanh và đỏ,ngoài ra còn có 1 màu phụ là màu cam khi kết hợp 2 màu trờn lại.Mừi điểm Led trờn ma trận cú cấu tạo gồm 2 Led xanh và đỏ ghép lại theo nguyên tắc Anode chung còn Cathode để riêng.Ma trận Led 8 hàng x 8 cột gồm 24 chân được chia làm 3 nhóm chân : 8 hàng từ R0-R7( là các anode chung của các Led trên cùng 1 hàng, 8 cột đỏ C0R-C7R ( là các Cathode chung của các led màu đỏ trên cùng 1 cột) , 8 cột xanh C0X-C7X ( là các Cathode chung của các led màu xanh trên cùng 1 cột).Sự kết hợp các mức logic cao/thấp thích hợp trên các hàng và cột theo một quy luật nhất định mà ta sẽ có hình ảnh như mong muốn. -Phương pháp điều khiển: đầu tiên ta cấp tín hiệu sao cho hàng 1 sáng có nguồn rồi đưa ra mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra các cột.Kế tiếp ta cấp tín hiệu cho hàng 2 có nguồn rồi đưa mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra cột.Quá trình cứ diễn ra một cách tuần tự và liên tục như vậy và do hiện tượng lưu ảnh của mắt mà ta thấy được các Led dường như sáng như cùng một lúc để tạo ra hình ảnh mong muốn trên Led ma trận. -Cỏc ngừ vào điều khiển hàng và cột đều sử dụng mức thấp để điều khiển.

      Để điều khiển bàn phím ma trận nhày ta sử dụng phương pháp quét phím. Để điều khiển quét phím này ta xuất 1 dữ liệu 4 bit( trong đó 1 bit ở mức logic thấp và 3 bit ở mức logic cao) ra các cột của ma trận phím, đọc 4 bit dữ liệu các hàng của ma trận phím vào để kiểm tra xem có phím nào được ấn không.Nếu có phím ấn thì trong 4 bit đọc vào sẽ có một bit ở mức logic thấp và dựa trên cơ sở đó để thiết lập mã ấn phím.Nếu không có phím ấn thì 4 bit đọc vào đều ở mức logic cao,khi đó ta chuyển mức logic thấp sang cột kế tiếp để dò tìm phím khác.

      Bảng trạng thái IC74LS154
      Bảng trạng thái IC74LS154

      LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH

        Trước tiên khi bước vào gọi chương trình chính của chương trình hiển thị con trỏ trên con Led thứ nhất.Tiếp tục gọi chương trình chính 1 để thực hiện các bước lấy và lưu dữ liệu vào RAM,tại cuối bước này ta thực hiện việc tăng R2 ( R2 là biến đếm để dịch chuyển vị trí con trỏ sang vị trí con Led kế tiếp).Thời gian để chuyển từ con Led này sang con Led kế tiếp được xác định bởi biến đếm R4 (R4 là biến đếm quy định thời gian để qua con Led kế tiếp). Trong chương trình kiểm tra phím,sau khi dùng chương trình quét phím ma trận để coi cú phớm nào được nhấn hay khụng.Trong chương trỡnh này,mừi phím trên bàn phím ma trận đều được lưu bằng 1 ô nhớ từ 21H đến 2DH trong bộ nhớ RAM nội con 89V51RB2.Mừi phớm được dựng cho ra 2 chữ cỏi,thứ tự cỏc chữ cỏi mà phớm ấn được được ghi trờn bề mặt bàn phớm ma trận.Mừi phớm lưu được 2 chữ cái khi bấm là do ta dùng biến đếm R7 để xác định chữ cái cần hiển thị ra.Chẳng hạn như chúng ta muốn nhấn chữ A,ta nhấn vào bàn phím nút hiển thị chữ A,nếu ta muốn hiển thị chữ B ta tiếp tục ấn vào phím vừa ấn sẽ hiển thị được chữ B.Lí do ở đây là chúng ta so sánh biến đếm R7,nếu R7 = 1 ( tương đương với phím đó được ấn 1 lần) sẽ hiện thị lên chữ A,khi ta ấn tiếp tức R7 = 2 thì chữ sẽ nhảy sang chữ B.Ta chỉcho phép một phím hiển thị 2 chữ cái nên khi ta ấn tiếp sau chữ B sẽ trở về hiện thị lại chữ A và cứ thế tiếp diễn.Trong. Ở cuối đoạn chương trình này chúng ta tăng biến đếm R4 để xác định thời gian dịch qua con Led kế tiếp .Chương trình dùng Port 0 để quét phím tạo mã.

        Trong chương trình hiện thị chữ,ta dùng Port 1 làm Port xuất dữ liệu và Port 2 làm Port quét.Port 2 kết nối với khối phân kênh để điều khiển việc quét Led. Đây là chương trình dùng hiển thị các chữ cái có trong bảng mã có sẵn trong ROM nội IC 89V51RB2( từ A đến Z).Mừi lần quột qua được lưu vào trong 1 ô nhớ,tổng cộng cò 32 ô nhớ từ 40H đến 5FH để lưu các byte của các chữ cái được ấn trong chương trình kiểm tra phím. Chương trình chạy là chương trình hiển thị ra các Byte của các chữ cái đã được lưu trữ trong RAM sau đó được cho dịch cột,giống như chương trính chạy lấy cơ sở dữ liệu từ ROM học lúc trước.

        Để khỏi bị lem trong quá trình dich cột thì ta phải nạp giá trị cho các ô nhớ từ 60H đến 7FH là 0FFH.