Ngày nay khoa học kỹ thuật đang phát triển hết sức mạnh mẽ, đặc biệt là lĩnh vực điều khiển và tự động hóa. Để tăng tính năng điều khiển, các bộ vi điều khiển đã không ngừng được cải tiến và nâng cấp. Và một trong những họ vi điều khiển đang được ứng dụng rộng rãi ngày nay là họ vi điều khiển 8051. Các bộ vi điều khiển thuộc họ 8051 đầu tiên ra đời vào năm 1981. Các bộ vi điều khiển này mới chỉ có 128byte Ram, 4Kb Rom, 2 bộ định thời, một cổng nối tiếp và 4 cổng vào ra. Tất cả được đặt trên cùng 1 chip. Và của nhiều hãng sản xuất như vi điều khiển 8052, …
Trang 1E
BÁO CÁO ĐỀ TÀI
HIỂN THỊ LCD SỬ DỤNG
8051
Trang 2THÀNH VIÊN:
HOÀNG TRUNG KIÊN
MAI THỊ HƯƠNG
GIANG
LƯU THANH SƠN
HOÀNG ĐÌNH HẢI
BÙI THỊ NGỌC TRÂM NGUYỄN VĂN HIỀN DƯƠNG TÙNG LÂM
LÊ VĂN ĐẠT
Trang 3HIỂN THỊ LCD SỬ
DỤNG 8051
TÌM HIỂU ĐỀ TÀI
THỰC HIÊN MÔ HÌNH ĐỀ TÀI
Trang 48051
Trang 5n 1980 - 1990 8051
20, Atmel, Maxim IC,
NXP Dùng công nghệ MOSFET, CMOS Các thông số kỹ thuật: 8 bit ALU, 8 bit thanh ghi 8 bit dữ liệu bus 16 bit địa chỉ bus vì vậy không gian bộ nhớ tối đa cho ROM và RAM lên tới 64Kb Bộ nhớ dữ liệu SRAM 128 bytes Bộ nhớ chương trình ROM 4Kb 32 chân vào/ra đa hướng Giao tiếp nối tiếp UART Hai bộ timer/counter 16 bit Hai ngắt ngoài
Trang 6Dữ liệu
Chương trình
Bộ nhớ chương trình (ROM, EPROM) là bộ
nhớ chỉ đọc 64Kb
4Kb Thiết kế bộ nhớ bên
ngoài
Tồn tại độc lập
(RAM)
64Kb
128 byte
Bộ nhớ ngoài CPU đọc
và ghi dữ liệu nhờ tín hiệu trên các chân RD
và WR
Trang 7Thanh ghi chính
Thanh ghi phụ
Thanh ghi trạng thái (PSW)
Con trỏ dữ liệu DPTR
Thanh ghi các cổng P0=P3
Thanh ghi ngăn xếp
Thanh ghi bộ đếm truyền thống nối tiếp
Thanh ghi của bộ đếm
Thanh ghi điều khiển
Trang 81
0
2
3
Làm nhiệm vụ
xuất nhập
Có thể kéo được 8
ngõ TTL
Set mức logic 1
trc đó
Có thể kéo 4 ngõ TTL
Set mức logic 1
Khi không hoạt động xuất
nhập
Làm nhiệm vụ xuất
nhập
Có thể kéo 4 ngõ
TTL
Set mức logic 1
trước đó
Xuất nhập giao
tiếp với thiết bị
bên ngoài
Trang 9LCD
Trang 10L
Trang 11Tập
Trang 12MẠCH
Trang 13N
Trang 14N
Trang 15L
Trang 16CODE
Trang 17#include <htc.h>
#define E P11
#define RS P10
#define DATA P2
void delay_us(unsigned int t);
void delay_ms(unsigned int t);
void delay_ms(unsigned int t)
{
unsigned int x,y;
for(x = 0;x<t;x++)
{
for(y=0;y<125;y++);
}
}
void delay_us(unsigned int t)
{
while(t );
}
void lcd_cmd(unsigned char cmd) {
RS=0;
DATA=cmd;
E=0;
delay_us(40);
E=1;
} void lcd_data(unsigned char data) {
RS=1;
DATA=data;
E=0;
delay_us(40);
E=1;
} void lcd_string(char *string) {
unsigned char i=0;
while(string[i]!=0) //neu khong rong {
lcd_data(string[i]);
i++;
} }
void main() {
lcd_cmd(0x01); // xoa tat ca lcd_cmd(0x38); // chon 8bit 2 dong lcd_cmd(0x0c); // bat hien thi tat con tro lcd_cmd(0x80); //dua ve dong 1
lcd_string("Hello EveryOne !");
lcd_cmd(0x01);
lcd_string(" Today I want says: ");
lcd_cmd(0x01);
lcd_string(" You only live once, but if you
");
lcd_cmd(0x01);
lcd_string("do it right,once is enough
^^^^");
lcd_cmd(0x01);
lcd_cmd(0xC0);
while(1) {
lcd_string(" GOOD.BYE ");
lcd_cmd(0x80);
lcd_string("Thanks for watch");
delay_ms(500);
lcd_cmd(0x01);
} }