Tải bản đầy đủ (.doc) (5 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (146.18 KB, 5 trang )

Lập trình hợp ngữ và điều khiển thiết bị

BÀI THỰC HÀNH
SỐ 4
Phần 1. Làm theo hướng dẫn
Bài 1. Lập trình xử lý ngắt phần cứng ngoài

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

Bước 2. Viết chương trình thực hiện xử lý ngắt ngoài 0 tương ứng sự kiện người
dùng bấm phím B2.
#include <at89x51.h>
//Khai bao bien toan cuc
int count=0;
//Chuong trinh tao do tre
void delay(int interval)
{
int i,j;
for(i=0;i<100;i++)
{
for(j=0;j}
}
//Chuong trinh hien thi den led 7 thanh
(khong dieu khien dot)
void output_7seg(unsigned char value)
{
unsigned char const mask[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,
Bài thực hành



Lập trình hợp ngữ và điều khiển thiết bị
0xF8, 0x80, 0x90};
if(value < 10){
P0=mask[value];
}
}
//Chuong trinh con xu ly ngat ngoai 0
void EXT0_Process() interrupt 0{
EA=0;
//Cam ngat
count++;
EA=1;
//Cho phep ngat
}
//Chuong trinh con hien thi so (<9999) ra module led 7 thanh
void display_number(int iNum){
int i;
unsigned char pos=0x08;
unsigned char temp;
for(i=0;i<4;i++){
temp=iNum%10;
iNum=iNum/10;
P2=pos;
output_7seg(temp);
delay(5);
pos=pos>>1;
}
}
//Chuong trinh khoi tao he thong
void init(){

P3_2=1; //Thiet lap chan P3_2 lam chan vao
IE=0x81; //Cho phep ngat ngoai 0
IT0=1; //Ngat theo suon
}
void main(){
init();
while(1){
display_number(count);
}
}
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.

Bài thực hành


Lập trình hợp ngữ và điều khiển thiết bị
Bài 2. Tạo độ trễ chính xác sử dụng bộ định thời

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

Bước 2. Viết chương trình
#include <at89x51.h>
//Chuong trinh tao do tre chinh xac su dung Timer
void delay_hardware_50ms(){
TMOD=TMOD & 0xF0;
//Xoa phan thiet lap cu cua Timer0
TMOD=TMOD | 0x01;
ET0=0;
//Khong phat sinh ngat
TH0=0x3C;

//Thiet lap gia tri khoi dau la 3CB0 (He 16)
TL0=0xB0;
//Tuong duong 15536 he 10
TF0=0; //Xoa co tran timer 0
TR0=1; //Khoi dong timer 0
while(TF0==0);
//Cho den khi tran
TR0=0; //Dung timer 0
}
//Chuong trinh tao tre chinh xac 1 s
void delay_hardware_1s(){
int i;
for(i=0;i<20;i++){
delay_hardware_50ms();
}
}
Bài thực hành


Lập trình hợp ngữ và điều khiển thiết bị
//Chuong trinh chinh
void main(){
while(1){
P0=0xAA;
delay_hardware_1s();
P0=0x55;
delay_hardware_1s();
}
}
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.


Phần 1. Làm theo hướng dẫn
Bài 4. Viết chương trình tạo trễ 1ms sử dụng bộ định thời
Bài 5. Xây dựng mô hình và viết chương trình mô phỏng hệ thống đèn giao
thông tại một ngã tư với các yêu cầu sau

 Có 2 cột đèn (mỗi cột có 3 đèn xanh, đỏ, vàng)
 Mỗi cột đèn có gắn một đồng hồ đếm ngược
Dưới đây là thiết kế tham khảo

Bài thực hành


Lập trình hợp ngữ và điều khiển thiết bị

Bài thực hành



×