hiển thị nhiệt độ trên LCD
Trang 1Giảng viên: Vũ Chiến Thắng
Bài thảo luận: hiển thị nhiệt độ trên LCD
Nhóm 3
Trang 2Phần 1: giới thiệu phần mềm mô phỏng
proteus
1.giới thiệu :
Proteus là phần mềm của hãng Labcenter dùng để vẽ
sơ đồ nguyên lý, mô phỏng và thiết kế mạch điện
Gói phần mềm gồm có phần mềm chính:
ISI dùng để vẽ sơ đồ nguyên lý và mô phỏng
ARES dùng để thiết kế mạch in
Sau khi tải về quá trình cài đặt chương trình bình
thường , sau khi cài đặt thành công bạn sễ thấy
chương trình trong start menu
Trang 32.Hướng dẫn sử dụng:
a Vẽ sơ đồ nguyên lý với ISIS :
* Giới thiệu giao diện sử dụng :
Để vẽ sơ đồ nguyên lý , vào start menu khởi động chương trình ISIS như hình dưới đây :
Trang 4Giao diện của chương trình như sau
Trang 5Thanh trình đơn: bao gồm các menu như: file, view, edit ta có thể thực hiện hầu hết các lệnh ISIS tại
đây( trừ các lệnh thanh công cụ)
Thanh tác vụ: chứa một số lệnh của thanh trình đơn ở dạng shortcut như: new, save open, và các nút sau:
Trang 7Thanh công cụ:
Trang 8Vùng làm việc chính:
Dây là nơi thực hiện toàn bộ các thao tác để hoàn thành bản vẽ
Trang 9Sử dụng thư viện ISIS
Để mở thư viện ISIS ta chọn nút Component nhấp trái lên nút P
Thư viện ISIS được mở:
Trang 10Ta lần lượt nhấp đôi vào các linh kiện cần dùng, các linh kiện này sẽ xuất hiện ở vùng lấy thiết bị Khi lấy
đủ linh kiện, bấm Close để đóng thư viện
Trên vùng đã chọn nhấp trái để chọn linh kiện sau đó nhấp trái lên vùng làm việc để đặt lên mạch
Trang 11Ngoài ra ISIS còn hỗ trợ công cụ tìm kiếm khá
nhanh, trong lúc đang vẽ mạch bấm phím P để xuất hiện cửa sổ tìm kiếm
Ví dụ ta tìm IC 555:
Trang 12Phần 2: Mạch điện mô phỏng trên proteus
I.Sơ đồ nguyên lí :
Trang 13Nguyên lý hoạt động
Khối càm biến nhiệt độ ic lm35 có nhiệm vụ thay đổi giá trị điện áp ở đầu ra theo nhiệt độ mà cụ thể là 10mv/độ.Tín
hiệu tương tự ở đầu ra của lm 35 sẽ được đưa vào bộ
chuyển đổi ADC0804.
Tại ADC0804 tín hiệu tương tự nhận được sẽ được chuyển đổi thành tín hiệu số để đưa vào vi điều khiển 8051.
Vi điều khiển nhận được tín hiệu từ cổng p0 sau đó sẽ xử lý tín hiệu số này trước khi xuất ra lcd
LCD nhận được dữ liệu và lệnh từ vi điều khiển sẽ hiển thị
dữ liệu trên màn hình
Trang 14II.Các khối chức năng của mạch
1.Khối cảm biến nhiệt độ LM35:
+Bộ cảm biến chuyển đổi các đại lương vật lí như :
nhiệt độ, cường độ ánh sáng thành các tín hiệu
điện Phụ thuộc vào bộ cảm biến mà đầu ra có thể là tín hiệu dạng điện áp, dòng, trở kháng hay dung
kháng
Trang 15
+Bảng trở kháng của bộ cảm biến nhiệt theo nhiệt độ.
Trang 16+LM35 là họ cảm biến nhiệt, mạch tích hợp, chính xác cao có điện áp đầu ra tỷ lệ tuyến tính với nhiệt độ
theo thang độ Celsius Họ này không yêu cầu căn
chỉnh ngoài
+LM35 cho ra điện áp 10mV ứng với thay đổi nhiệt độ
10C
Trang 172.Khối chuyển đổi ADC :
+ Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng National Semiconductor
+Chip có điện áp nuôi +5V và độ phân giải 8 bit
+Thời gian chuyển đổi đ ược định nghĩa là thời gian mà
bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân
+Đối với ADC0804 th ì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK
IN và không bé hơn 110µs
Trang 18Chân số 2, là một tín hiệu vào, tích cực ở mức thấp
RD đ ược sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804
Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7)
Trang 19+WR (Write):
Chân số 3, đây là chân vào tích cực mức thấp được dùng để báo cho ADC biết bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WR tạo ra xung cao xuống thấp
th ì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bit
Trang 20Chân số 6 và chân số 7, đây là 2 đầu vào tương tự
vi sai, trong đó : Vin = Vin (+) –Vin(-)
Thông thường Vin (-) được nối tới đất và Vin (+) được dùng làm đầu vào tưộng tự và sẽ được chuyển đổi về dạng số
Trang 21ra khác 0 - +5V.
Trang 22Bảng quan hệ điện áp Vref/2 với Vin
Trang 23+D0 - D7:
D0 - D7, chân số 18 – 11, là các chân ra dữ liệu số
Các chân này được đệm ba trạng thái và dữ liệu đã
được chuyển đổi chỉ được truy cập khi chân CS = 0
và chân RD đưa xuống mức thấp Để tính điện áp đầu
ra ta tính theo công thức sau:
Dout = Vin / kích thước bước
Dout: đầu ra dữ liệu số dạng thập phân
Vin: điện áp đầu vào tương tự
Kích thước bước: là sự thay đổi nhỏ nhất được tính
bằng (2 x Vref/2) chia cho 256 đối với ADC 8 bit
Trang 243.Khối xử lí VDK 8051: :
Dựa trên những kiến thức về vi điều khiển,màn hình LCD và lập trình ghép nối giữa vi điều khiển với thiết bị ngoại vi , cụ thể là ghép nối vi điều khiển 8051 với màn hình LCD để hiện thị nhiệt độ trên LCD
Để lập trình 8051 có thể dùng các ngôn ngữ bậc cao
như: Forth, BASIC, Pascal, PL/M и Modula 2, nhưng phổ biến là sử dụng trình biên dịch lập trình C và
Assembler
Trang 25Chíp 8051(80C51) là bộ vi điều khiển đầu tiên của họ
vi điều khiển MCS-51 bao gồm :
Trang 26Hình ảnh thực tế và sơ đồ chân
Trang 274.Khối hiển thị LCD HD44780 :
Sử dụng LCD HD44780 là thiết bị hiển thị được sử dụng trong rất nhiều các ứng dụng của VĐK LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và
kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo
nhiều giao thức giao tiếp khác nhau, tốn rất ít tài
nguyên hệ thống và giá thành rẻ …
Trang 29Các thanh ghi :
+ Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor Register) và thanh ghi
dữ liệu DR (Data Register)
+ Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7 Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó + Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM hoặc
CGRAM
Trang 30Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU
Bảng sau đây tóm tắt lại các thiết lập đối với hai
Trang 32 {
}
Trang 33void LCD_write(unsigned char x) // gui du lieu len man hinh
P1_0=1; //chon thanh ghi du lieu
P1_1=0; // chon che do ghi du lieu
P2= x ; // dua ra tren cong P0 gia tri du lieu
P1_2=1; // dua chan cho phep tu cao xuong thap de chot du lieu
Trang 34void LCD_cmd( unsigned char x) //gui lenh len man hinh
P1_0=0; //chon thanh ghi lenh
P1_1=0; // chon che do ghi du lieu
P2= x; // dua ra tren cong P0 gia tri du lieu
P1_2=1; // dua chan cho phep tu cao xuong thap de chot du lieu
P1_2=0;
delay(); //cho cho den khi lenh gui da hoan tat
}
Trang 35void LCD_init()
LCD_cmd(0x38); // hai hang ma tran 5x7
LCD_cmd(0x0c); // bat man hinh tat con tro
LCD_cmd(0x01); // xoa man hinh
LCD_cmd(0x06); // dich con tro sang phai mot don vi
Trang 36 void giatri(char k)
{WR=0; // Bat dau chuyen doi gia tri tu ADC
delay2(100); // Tao tre de cap nhat du lieu tu ADC
Trang 37void hienthihaihang(void)
unsigned char i;
char H1[20]=" CAC THANH VIEN ";
char H2[20]="Nhiet Do: ";
LCD_cmd(0x80); // dua con tro toi vi tri 0x80 tren man hinh
for(i=0;i<strlen(H1);i++)
Trang 39void hienthihaihang1(void)
unsigned char i;
char H1[20]="1.TRAN VAN DUC ";
char H2[20]="2.DINH THI THUY ";
Trang 41void hienthihaihang2(void)
unsigned char i;
char H1[20]=" 3.NGUYEN THI ";
char H2[20]=" MINH HIEN ";
Trang 43void hienthihaihang3(void)
unsigned char i;
char H1[20]="4.DOAN THI VE ";
char H2[20]=" BAI DO NHIET DO ";