Tài liệu lập trình c cho 8051 - Pdf 13

1
Cao Văn Hải – TBD – K51
II. Trình biên dịch Keil C (compiler)
2.1. Khởi tạo cho Project.
Để tạo 1 project mới chọn project → New project như sau:
1
2
Cao Văn Hải – TBD – K51

Hộp thoại create new project hiện ra như sau:
2
3
Cao Văn Hải – TBD – K51
Đánh tên và chuyển đến thư mục bạn lưu project.bạn nên tạo mỗi một thư mục cho 1
project. rồi chọn save.
Hộp thoại sau hiện ra:
Trong này có 1 loạt các hãng điện tử sản xuất 8051. bạn lập trình cho con nào thì chọn con
đấy, kích chuột vào dấu + để mở rộng các con IC của các hang. ở đây ta lập trình cho
AT89C51 của hang ATMEN nên ta chọn như trên.
Khi chọn chip thì ngay lập tức 1 bảng hiện ra 1 số tính năng của chip các bạn có thể nhìn
thấy: 8051 based fully static 24Mhz …. nhập OK, chọ câu trả lời NO khi được hỏi “copy
standard 8051 startup code to project and addfile to project” vì nếu chon YES chỉ làm cho
file lập trình của bạn thêm nặng.
3
4
Cao Văn Hải – TBD – K51
Để tạo một file code các bạn chọ file→new hoặc ấn ctrl+N. như sau:
Cửa sổ text1 hiện ra. Tiếp theo bạn chọn File → save As hoặc Ctrl+S, để lưu File mặc dù
chưa có gì như sau:
4
5

Cao Văn Hải – TBD – K51
2.3. Biên dịch một chương trình.
Sau khi soạn thảo xong nhấn Ctrl+S để nhớ. Nhớ xong các bạn biên dịch chương trình
bắng cách ấn phím F7 hoặc chọn Build target là biểu tượng ngay trên cửa sổ Workspace,
như trên hình:

9
10
Cao Văn Hải – TBD – K51
Để biên dịch chương trình thành file HEX các bạn chọn: Project→option for ‘target 1’
như hình vẽ:
Trong hộp thoại hiện ra, hãy check vào Creat HEX File như chỉ dẫn:
10
11
Cao Văn Hải – TBD – K51
chọn thẻ táp target nhập lại tần số thạch anh là 12Mhz.
Để mô phỏng các bạn chon Debug→Start/stop debug session hoặc ấn Ctrl+F5, hoặc nhấn
vào Icon chữ D màu đỏ trong cái kính lúp trên thanh công cụ.
11
12
Cao Văn Hải – TBD – K51
Để hiển thi các cổng, các thanh ghi các bạn chon trong peripherals.
Các bạn thấy 1 cửa sổ nhỏ Parallel Port xuất hiện đó là cái để mô phỏng cho 1 cổng của
AT89C51. dấu tick tương đương chân ở mức cao (5V), không tick chân ở mức thấp
0V.trong menu peripherals còn có các ngoại vi khác như timer, interrupt, serial.
12
13
Cao Văn Hải – TBD – K51
Để chạy chương trình các bạn ấn chuột phải vào màn hình soạn thảo, rồi ấn F11.mỗi làn ấn
sẽ chạy 1 lệnh.khi debug nếu các bạn chờ hàm delay lâu quá 1000 lần lặp các bạn nhấn

{
while(time );
}
/* ham chinh */
void main(void)
{
while(1)
{
Led = bat; // bat Led
delay(25000); // tre 1s
Led = tat; // tat Led
delay(25000); //tre 1s
}
}
II. Phối hợp Led và nút nhấn
1. Phối hợp Led đơn và nút nhấn
Bài toán: Một đèn Led được nối với chân P1.0 của vi điều khiển. Một công tắc
START nối với chân P3.0 và công tắc STOP nối với chân P3.1 của vi điều khiển. hãy
viết chương trình điều khiển để khi bật công tắc START thì Led sang, khi bật công tắc
STOP thì Led tắt.
15
Start
Led = tat
Start = 0
Stop = 0
Led = tat
Led = bat
16
Cao Văn Hải – TBD – K51
+ Lưu đồ thuật giải của bài toán:

hiển
thị
P1.0
g
P1.1
f
P1.2
e
P1.3
d
P1.4
c
P1.5
b
P1.6
a dp
số nạp hex
mov P1,#
0 1 0 0 0 0 0 0 1 81
1 1 1 1 1 0 0 1 1 cf
2 0 1 0 0 1 0 0 1 92
3 0 1 1 0 0 0 0 1 86
4 0 0 1 1 0 0 1 1 cc
5 0 0 1 0 0 1 0 1 a4
6 0 0 0 0 0 1 0 1 a0
7 1 1 1 1 0 0 0 1 8f
8 0 0 0 0 0 0 0 1 80
9 0 0 1 0 0 0 0 1 84
Bài toán:
Một Nút bấm được nối với chân P3.4, hãy lập trình điều khiển đếm số lần ấn

/* chuong trinh con kiem tra co phim nhan */
void phim_an(void)
{
if(ctac==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac==0); //Cho nha phim
delay(500); // chong rung phim
dem++; //tang bien dem
if(dem==10) dem=0;
}
}
/* hien thi so lan an phim */
void solan_an(void)
{
switch(dem)
{
case 0: {dataP=0x81;break;}
case 1: {dataP=0xcf;break;}
case 2: {dataP=0x92;break;}
case 3: {dataP=0x86;break;}
case 4: {dataP=0xcc;break;}
case 5: {dataP=0xa4;break;}
case 6: {dataP=0xa0;break;}
case 7: {dataP=0x8f;break;}
case 8: {dataP=0x80;break;}
case 9: {dataP=0x84;break;}
};
}
/* chuong trinh chinh */

6 E I/O Cho phép
7 DB0 I/O Bit dữ liệu
8 DB1 I/O Nt
9 DB2 I/O Nt
10 DB3 I/O Nt
11 DB4 I/O Nt
12 DB5 I/O Nt
13 DB6 I/O Nt
14 DB7 I/O Nt
Chân 15 và 16 là A và K. Nó được nối với 2 chân của 1 con Led dùng để sáng
LCD trong bóng tối chúng ta không sử dụng.
- Sơ đồ ghép nối LCD với vi điều khiển:
22
23
Cao Văn Hải – TBD – K51
2. Nguyên lí hoạt động của LCD.
- Chân V
CC
, V
ss
, và V
EE
: các chân V
CC
và V
SS
cáp dương nguồn 5v và mass tương
ứng. Chân V
EE
được dùng để điều khiển độ tương phản.

10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái
1c Dịch toàn bộ hiển thị sang phải
80 Ép con trỏ về đầu dòng thứ nhất
0c0 Ép con trỏ về đầu dòng thứ 2
38 Hai dòng và ma tận 5x7.

3. Phần luyện tập:
Hãy viết chương trình hiển thị trên LCD:
Dòng 1 chữ “VIETNAM” bằng cách hiển thị tưng kí tự
Dòng 2 chữ "VI DIEU KHIEN" bằng cách hiển thị cả chữ. Với sơ đồ mạch
cho dướí đây.
24
25
Cao Văn Hải – TBD – K51
Chương trình:
/*=========bo tien xu li===============*/
#include<AT89x51.h>
#include<string.h>
/*===========khai bao bien toan cuc============*/
sfr LCDdata = 0xA0; // cong P2, 8 bit du lieu.
sbit BF = 0xA7; // co ban, bit DB7.
sbit RS = P3^0; // chon thanh ghi
sbit RW = P3^1; // doc/ghi
sbit EN = P3^2; //cho phep chot du lieu
/*===========cac chuong trinh con cua LCD==========*/
/* kiem tra su san sang cua LCD */
void wait(void)
{


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status