ĐO ĐIỆN ÁP XOAY CHIỀU HIỂN THỊ LCD
Trang 1Giáo Viên Hướng Dẫn : Nguyễn Lan Hương
HỌC PHẦN ĐỒ ÁN I
GVHD: Nguyễn Thị Lan Hương
Trang 2ĐO ĐIỆN ÁP XOAY CHIỀU HIỂN THỊ LCD
Phần I : Cơ sở lý thuyết liên quan đến nội dung đồ án.
"NỘI DUNG"
Phần II : Trình tự thiết kế và hoàn chỉnh đồ án.
Phần III: Kết luận tổng quan về đồ án.
Trang 3LỜI MỞ ĐẦU
Ngày nay bộ vi điều khiển đã rât phổ bến trong các thiết bị điện và điện
tử dân dụng, các bộ vi điều khiển khống chế hoạt động của các thiết bị như
TV, máy giặt, đầu lọc laser, điện thoại,…Trong hệ thống sản xuất tự động,
vi điều khiển được sử dụng trong robot, day chuyền tự động Các hệ thống càng thông minh thì vai trò của vi điều khiển càng quan trọng Nhưng bộ vi điều khiển là gì, nó có tác dụng và hoạt động như thế nào?
Thực ra bộ vi điều khiển (Micro-controller) là một mạch tích hợp trên một bộ chíp có thể lập trình được, dùng để điều khiển hoạt động của hệ
thống Bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lí thông tin, đo lường thời gian và tiến hành đọc mở một cơ cấu nào đó Người lập trình có thể sử dụng nhiều ngôn ngữ để lập trình cho vi điều khiển Nhưng thông thường người ta sử dụng hai ngôn ngữ chính để lập trình là ngôn ngữ lập trình C và Assembly.
Trang 4Phần I : Cơ sở lý thuyết liên quan đến nội dung đồ án.
A, IC 89c51
1, Cấu trúc IC 89c51
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như nhau Ở đây giới thiệu IC8951 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất Chúng có các đặc điểm chung như sau:
• 8 KB EPROM bên trong
• 128 Byte RAM nội
• 4 Port xuất /nhập I/O 8 bit
• Giao tiếp nối tiếp
Trang 62, Sơ lược về các chân IC 89c51
8951 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có 24 chân
có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ
Trang 7Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951 Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó
có chức năng như các đường IO Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu
Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951 Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó
có chức năng như các đường IO Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu
• Port 1 là port IO trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1, P1.2, … có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài
Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng
Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng
• Port 3: Port 3 là port có tác dụng kép trên các chân 10 - 17 Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8951 như ở bảng trên
a.Các Port
Trang 8b.Các ngõ tín hiệu điều khiển :
Ngõ tín hiệu PSEN (Program store enable):
• PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nói đến chân 0E\
(output enable) của Eprom cho phép đọc các byte mã lệnh.
• PSEN ở mức thấp trong thời gian Microcontroller 89c51 lấy lệnh Các mã lệnh của chương trình được đọc từ Eprom qua
bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 89c51 để giải mã lệnh Khi 89c51 thi hành chương trình trong ROM nội PSEN sẽ ở mức logic 1.
Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
• Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu
và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.
• Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự
động Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong 89c51
Trang 9 Ngõ tín hiệu EA(External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1hoặc mức 0
Nếu ở mức 1, 895c51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte Nếu ở mức 0, 89c51 sẽ thi hành chương trình từ bộ nhớ mở rộng Chân EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 8951
Ngõ tín hiệu RST (Reset) : Ngõ vào RST ở chân 9 là ngõ vào Reset của 89c51 Khi ngõ vào tín hiệu này đưa
lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset
Các ngõ vào bộ dao động X1, X2: - Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951 người thiết
kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho
8951 là 12Mhz
Trang 10c Nguồn cung cấp
89c51 sử dụng nguồn cung cấp Vcc=5V được cấp vào chân 40, GND được nối vào chân 20
d Các thanh ghi có chức năng đặc biệt
Các thanh ghi nội cả 89c51 chiếm một phần của vùng nhớ nội, vì vậy mỗi thanh ghi đều có một địa chỉ.Các thanh ghi chức năng (FSRs) trong vùng nhớ cao từ 80H đến FFH.Lưu ý có một số bytes trong vùng này không được định nghĩa Chỉ có 21 địa chỉ thanh ghi chức năng được định nghĩa( 26 địa chỉ với 8052/8032)
• Các thanh ghi chương trình
• Thanh ghi B
• Con trỏ ngăn xếp
• Con trỏ dữ liệu
• Các thanh ghi Port
• Các thanh ghi bộ định thời
• Các thanh ghi cổng nối tiếp
• Các thanh ghi ngắt
• Thanh ghi PCON
Trang 11B Tổng quan LCD
Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị các dòng chữ hoặc số trong bảng mã ASCII.Không giống các loại LCD lớn, Text LCD được chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị một ký tự ASCII.Cũng vì lý do chỉ hiện thị được ký tự ASCII nên loại LCD này được gọi là Text LCD (để phân biệt với Graphic LCD có thể hiển thị hình ảnh) Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, việc kết hợp “ẩn” và “hiện” các chấm này sẽ tạo thành một ký tự cần hiển thị Trong các Text LCD, các mẫu ký tự được định nghĩa sẵn.Kích thước của Text LCD được định nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối đa 16 ký tự Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4…Hình 1 là một ví dụ Text LCD 16x2
Trang 121 Cấu tạo LCD
LCD được sử dụng trong đồ án là LCD hiển thị kí tự loại 16x2 và có 16 chân, các chân được cho trong bảng sau:
Trang 13a Chân Vcc, Vss và Vee
Các chân 1,2,3 là các chân Vss, Vcc,Vee trong đó Vss chân nối đất, Vee chân chọn độ tương phản chân này được chọn qua 1 biến trở 10K một đầu nối Vcc, một đầu nối mát Chan Vcc nối dương nguồn 5V
b Chân chọn thanh ghi RS ( Register Select):
Có hai thanh ghi quan trọng trong LCD là thanh ghi IR và DR Chân RS lựa chọn thanh ghi cho phép lựa chọn một trong hai thanh IR hoặc DR để làm việc Vì cả 2 thanh ghi nàu đều được kết nối với các chân data của LCD nên cần 1 bit để lựa chọn giữa chúng Khi RS=0 thì thanh ghi IR được chọn, nếu RS=1 thanh ghi
DR được chọn Thanh ghi IR là thanh ghi chứa mã lệnh cho LCD nên nếu muốn gửi lệnh lên LCD như xóa màn hình, dịch chuyển con trỏ, ta cần reset RS về 0 Còn khi muốn hiển thị lên LCD ta set RS=1 để chọn thanh ghi DR
Trang 14c Chân đọc/ghi (R/W)
Là chân lựa chọn giữa việc đọc( Read) và ghi( Write) Nếu R/W=0 thì dữ liệu sẽ được ghi từ bộ điều khiển vào LCD Nếu R/W=1 thì dữ liệu sẽ được đọc từ LCD ra ngoài Tuy nhiên chỉ có duy nhất một trường hợp mà dữ liệu được đọc từ LCD ra đó là đọc trạng thái LCD để biết LCD có bận hay không (cờ Busy Flag-BF) Dù vậy chúng ta có thể không cần điều này nếu sử dụng cách viết hàm delay một khoảng thời gian cố định nào đó, khi đó sẽ không cần đọc LCD, chân R/W không cần sử dụng và nối với GND Cách này sẽ khiến quá trình thao tác LCD bị chậm nếu delay quá lớn, và nếu delay quá nhỏ thì sẽ gây ra lỗi hiển thị
d Chân cho phép E (Enable)
Chân cho phép LCD hoạt động (Enable), chân này được kết nối với bộ điều khiển để
cho phép thao tác LCD Để đọc và ghi data từ LCD chúng ta cần tạo một xung từ cao xuống
thấp trên chân E,xung này rộng tối thiếu 450ns Hay nói theo cách khác , khi ghi dữ liệu vào
LCD, trước hết cần đảm bảo chân E=0, tiếp đến xuất dữ liệu đến các chân D0-D7, sau đó set
chân E=1 và cuối xùng là xóa E=0 để tạo xung cạnh xuống chốt dữ liệu
Trang 15e Chân D0-D7
Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lên LCD hoặc đọc nội dung các thanh ghi trong LCD Để hiển thị các chữ cái và các con số
chúng ta gửi các mã ASCII của các chữ cái và các con số tương ứng đến các
chân này khi bật RS=1 Cũng có các mã lệnh có thể gửi tới LCD để xóa màn
hình hoặc đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ.
f Cờ báo bận ( BF)
Khi thực hiện các hoạt động bên trong chip, mạch nội bên trong cần một khoảng thời gian để hoàn tất Khi đang thực thi các hoạt động bên trong chipnhư thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF ( thông qua
chân D7 khi có thiết lập (RS=0/RW=1) lên để báo cho biết nó đang bận Dĩ
nhiên khi xong việc nó sẽ đặt cơ BF lại mức 0.
g Bộ đếm địa chỉ AC( Address Counter
Trong sơ đồ khối LCD họ HD44780, thanh ghi IR không trực tiếp kết nối với vùng RAM(DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC Bộ đếm này lại nối với 2 vùng RAM theo kiểu rẽ nhánh Khi một địa chỉ lệnh được nạo vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong mã lệnh
Các mã lệnh LCD
Trang 162 Các lệnh giao tiếp LCD
Trang 17Ghi chú
Thời gian cực đại khi tần số fCP hoặc fOSC là 250KHz
Thời gian thực thay đổi khi tần số thay đổi Khi tần số fEP hay fOSC là 270KHz thì thời gian thực hiện được tính 250/270 x 4 = 35µs
• Các kí hiệu viết tắt trong bảng là
DDRAM : RAM dữ liệu hiển thị (Dislay Data RAM)
CGRAM : RAM máy phát kí tự (Character Generator RAM)
CGRAM address: địa chỉ CGRAM
DDRAM address: địa chỉ DDRAM phù hợp với đại chỉ con trỏ
Trang 18C Bộ chuyển đổi ADC0804:
1, Chức năng
Chuyển đổi tín hiệu Analog từ khối công suất thành tín hiệu Digital, đưa vào 89C51 89C51 sẽ
so sánh giá trị này với giá trị đặt
để điềukhiền góc kích SCR sao cho điện áp VDC luôn được ổn định
Trang 192, Thành phần chính trong khối:
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hang NationalSemiconductor Chip này cũng được nhiều hãng khác sản xuất Chip có điện áp nuôi +5V và độ phân giải 8 bit Ngoài độ phân giải thì thời gian chuyển đổi cũng là một tham số quan trọng khi đánh giá bộ
ADC.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 R và CLK IN và không bé hơn 110µs Các chân khác của
ADC0804 có chức năng như sau:
Trang 20•CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt Chip ADC0804 Để truy cập ADC0804 thì chânnày phải ở mức thấp.
•RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp Các bộchuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong RD được sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804 KhiCS = 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).
•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àotương tự Vin về số nhị phân 8 bit Khi việc chuyển đổi hoàn tất th chân INTRđược ADC hạ xuống thấp
Trang 21• CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồngoài được sử dụng để tạo thời gian.Tuy nhiên ADC0804 cũng có một bộ tạoxung đồng hồ riêng Để dùng đồng hồ riêng th các chân CLK IN và CLK R(chân số 19) được nối với một tụ điện và một điện trở (như h.nh vẽ)
Khi ấy tầnsố được xác định
Trang 22•Ngắt INTR (Interupt): Chân số 5, là chân ra tích cực mức thấp Bình thườngchân này ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp đểbáo cho CPU biết là dữ liệu chuyển đổi sẵn sàng để lấy đi Sau khi INTR
xuốngthấp, cần đặt CS = 0 và gửi một xung cao xuống thấp tới chân RD để đưa dữ liệu ra
•Vin(+) và Vin(-): Châ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ố
•Vcc: Chân số 20, là chân nguồn nuôi +5V Chân này c.n được dùng làm điện áp tham chiếu khi đầu vào Vref/2 để hở
•Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp thamchiếu Nếu chân này hở th điện áp đầu vào tương tự choADC0804 nằm trongdải 0 - +5V Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải 0 - +5V Chân Vref/2 được dùng để thực hiện các điện áp đầu rakhác 0 - +5V
Trang 23Bảng quan hệ điện áp Vref/2 với Vin:
•D0-D7: D0 - D7, chân số 18 – 11, là các chân ra dữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp nhất
LSB) 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 có thể sử dụng công thức sau:
là đầu ra dữ liệu số (dạng thập phân)
là điện áp đầu vào tương tự
Trang 24• CÁC BƯỚC CỦA QUÁ TRÌNH CHUYỂN ĐỔI.
Trang 25Bộ chuyển đổi ADC0804
Nguồn
Khối hiển thịLCD
Trang 26B Sơ đồ nguyên lí mô phỏng dùng proteus:
Trang 28Mạch In :
Trang 29RS EQU P2.5
RW EQU P2.6
E EQU P2.7MOV A,#38H ;bat man hinh LCD hien thi 2 dongLCALL LENH
MOV A,#0CH ;LCD hien thi o che do khong co con troLCALL LENH
Trang 30;Chuong trinh con dieu khien va lay du lieu chuyen doi
;tin hieu tuong tu sang tin hieu so 8bit Chuyen_doi_ADC:
SETB P2.3; WR=1 SETB P2.4; RD=1 CLR P2.3; xoa WR -> bat dau bien doi MOV R6,#50h ;tao tre
LP0: DJNZ R6,LP0 LP: JB P3.2,LP CLR P2.4; xoa RD=0 MOV R6,#070h LP1: DJNZ R6,LP1 MOV A,P1; chuyen du lieu MOV R0,A;
RET
Trang 31
X chia cho 100 lay phan nguyen
X chia cho 100 lay phan nguyen,nhan phan nguyen voi 100 =Y
X chia cho 10 lay phan nguyen,nhan phan nguyen voi 10=Z
Z-Y,lay ket qua chia cho 10
X chia cho 100 lay phan nguyen,nhan phan nguyen voi 100 =Y
X chia cho 10 lay phan nguyen,nhan phan nguyen voi 10=Z
Z-Y,lay ket qua chia cho 10
X chia cho 10 lay phan nguyen,nhan phan nguyen
voi 10=Z lay X-Z
X chia cho 10 lay phan nguyen,nhan phan nguyen
voi 10=Z lay X-Z
Hien thi so hang tram
Hien thi so hang chuc
Hien thi so hang don vi
Trang 32; Chuong trinh con thuc hien su li du lieu cho hien thi nen LCD
; Phuong phap hien thi quet LCD
Xu_ly:
; -Hang tram
MOV A,R0;
MOV B,#64H;
DIV AB; Chia A cho B ket qua luu vao A
ADD A,#30H; Cong A voi 30H hien thi hang tram
Trang 34; -Hang don vi MOV A,R0;
Trang 35LCALL DATA MOV A,#20H; Tao dau cach MOV P2,A;
LCALL DATA MOV A,#4BH; Ki tu K duoc hien thi MOV P2,A;
LCALL DATA MOV A,#35H; so 5 duoc hien thi MOV P2,A;
LCALL DATA MOV A,#36H; so 6 duoc hien thi MOV P2,A;
LCALL DATA