1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình hợp ngữ và điều khiển thiết bị - BÀI THỰC HÀNH SỐ 5

6 382 4

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thử chuyển tất cả các công tắc gạt SW1->SW4 sang nối đất sau đó nhấn các phím, quan sát kết quả.. Thử chuyển tất cả các công tắc gạt sang nối dương nguồn VCC sau đó nhấn các phím, quan s

Trang 1

BÀI THỰC HÀNH

SỐ 5

Phần 1 Làm theo hướng dẫn

Bài 1 Kiểm tra cơ chế hoạt động của bàn phím

Bước 1 Thiết kế mạch theo sơ đồ dưới đây

Bước 2 Thử chuyển tất cả các công tắc gạt SW1->SW4 sang nối đất sau đó nhấn các phím, quan sát kết quả

Bước 3 Thử chuyển tất cả các công tắc gạt sang nối dương nguồn VCC sau đó nhấn các phím, quan sát kết quả

Bước 4 Mỗi thời điểm chỉ cho một công tắc gạt nối đất rồi nhấn các phím và quan sát kết quả

Bài 2 Điều khiển hiển thị dữ liệu trên LCD

Bước 1 Thiết kế mạch theo sơ đồ dưới đây

Trang 2

Bước 2 Viết chương trình điều khiển LCD hiển thị hai dòng chữ

XIN CHAO K6 TIN

****************

#include <at89x51.h>

#include "string.h"

//Dinh nghia mot so chan de dieu khien den LCD

#define LCD_DATA P2

sbit EN=P0^2;

sbit RS=P0^0;

sbit RW=P0^1;

//Khai bao prototype cho cac ham

void Init_System();

void Delay_ms(int interval);

void LCD_init();

void Wait_For_LCD();

void LCD_Send_Command(unsigned char x);

void LCD_Write_One_Char(unsigned char c);

Trang 3

void LCD_Write_String(unsigned char *s);

void main()

{

Init_System();

LCD_init();

LCD_Write_String("Xin chao K6 Tin"); LCD_Send_Command(0xC0);

LCD_Write_String("***************"); while(1){

}

}

void Init_System()

{

//Thiet lap LCD o che do ghi

RW=1;

}

void Delay_ms(int interval)

{

int i,j;

for(i=0;i<1000;i++)

{

for(j=0;j<interval;j++);

}

}

//Ham thuc hien gui mot lenh xuong LCD void LCD_Send_Command(unsigned char x) {

LCD_DATA=x;

RS=0; //Chon thanh ghi lenh

RW=0; //De ghi du lieu

EN=1;

Delay_ms(1);

EN=0;

Wait_For_LCD(); //Doi cho LCD san sang

}

//Ham khoi tao LCD o che do ghi

Trang 4

//Ham kiem tra va cho den khi LCD san sang

void Wait_For_LCD()

{

//Delay_By_Timer_0(80);

Delay_ms(10);

}

void LCD_init()

{

LCD_Send_Command(0x38); //Chon che do 8 bit, 2 hang cho LCD LCD_Send_Command(0x0E); //Bat hien thi, nhap nhay con tro LCD_Send_Command(0x01); //Xoa man hinh

LCD_Send_Command(0x80); //Ve dau dong

}

//Ham de LCD hien thi mot ky tu

void LCD_Write_One_Char(unsigned char c)

{

LCD_DATA=c; //Dua du lieu vao thanh ghi

RS=1; //Chon thanh ghi du lieu

RW=0;

EN=1;

Delay_ms(1);

EN=0;

Wait_For_LCD();

EN=1;

}

//Ham de LCD hien thi mot xau

void LCD_Write_String(unsigned char *s)

{

unsigned char length;

length=strlen(s); //Lay do dai xau

while(length!=0)

{

LCD_Write_One_Char(*s); //Ghi ra LCD gia tri duoc tro boi con tro s++; //Tang con tro

}

}

Trang 5

Bước 3 Quan sát kết quả, nhận xét và đặt câu hỏi với giáo viên để nhận giải đáp Chú ý xem các hàm

- Khởi tạo cho LCD

- Gửi mã lệnh tới bộ điều khiển LCD

- Gửi dữ liệu tới hiển thị trên LCD

Phần 2 Tự thực hành

Trang 6

Bài 3 Viết chương trình ghép nối bàn phím với vi điều khiển 8051

Dưới đây là sơ đồ mạch Trong sơ đồ này, chúng ta không cần liên tục hỏi vòng các phím bấm mà sử dụng cơ chế ngắt Các cột của ma trận phím được nối với một mạch AND 4 đầu vào Đầu ra của mạch AND này được nối với chân ngắt ngoài 0 (INT0) Khi chưa có phím nào được nhấn, tín hiệu đưa đến chân ngắt ở mức cao Khi có phím được bấm, tín hiệu đưa đến chân ngắt được chuyển xuống mức thấp -> kích hoạt ngắt.

Bạn hãy viết chương trình để bắt sự kiện người dùng bấm các phím số

(0->9) trên bàn phím và hiển thị số tương ứng lên led 7 thanh

Ngày đăng: 21/04/2016, 18:08

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w