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

Thiết kế mạch đo điện áp một chiều trong dải ( +5 VDC đến +24 VDC )

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 (413.19 KB, 21 trang )

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ TÀU BIỂN
Bài Tập Lớp
MÔN :VI SỬ LÝ
ĐỀ BÀI: Đề số 7:
Thiết kế mạch đo điện áp một chiều trong dải ( +5 VDC đến +24 VDC )
Có hiển thị kế quả trên LCD
GV hướng dẫn : PHẠM TUẤN ANH
Sinh viên : PHAN VĂN TRUNG
Lớp : DTD49 - ĐH2
Hải Phòng , năm 2011
MỤC LỤC
Đặt vấn đề
Chương 1 : Giới thiệu về vấn đề đo điện áp
1.1. Khái niệm đo điện áp
1.2. Một số phương pháp đo điện áp một chiều
Chương 2 : Sơ đồ phần cứng
2.1. Sơ đồ khối
2.2. Chức năng các khối
Chương III: Thiết kế phần mềm
3.1 Xây dựng lưu đồ thuật toán
3.2 Viết code điều khiển thuyết minh nguyên lý hoạt động
3.3 Kết quả đạt được và mở rộng
Giáo viên hướng dẫn Sinh viên
PHẠM TUẤN ANH PHAN VĂN TRUNG
ĐẶT VẤN ĐỀ :
Điện khi nhắc tơi đều biết được sự quan trọng của nó trong mọi vấn đề về sinh
hoạt hay trong cong nghiệp… Nó có mặt ở khắp nơi là một điều tất yếu trong
đời sống hiện nay. Nhưng vấn đề sư dụng điện như nào luôn là một vần đề nan
giải, muốn sử dụng điện đươc hiệu quả trươc tiên ta phai hiểu và biết về nó.
Cách để sử dụng được điện đó chính la phải đo được giá trị điện áp của chúng,


lớn nhỏ hay sao để chung ta sủ dụng môt cách hiệu quả nhất.
Chính vì lẽ đó chúng ta phải làm ra nhũng thiết bị có thể đo được điện áp như :
động hồ van năng, mạch vi xử lý…Sau đây em xin trình bày một cách đẻ đo
điện áp.
CHƯƠNG 1 : GIỚI THIỆU VỀ VẤN ĐỀ ĐO ĐIỆN ÁP
1.1. Khái niệm đo điện áp
Đo điện áp là ta dung một thiết bị có khả năng chuyển từ tín hiệu tương tự
sang một tín hiệu khác ma chúng ta co the đọc nhín thay được gia tri của chúng
một cách cụ thể nhất
1.2. Các phương pháp đo điện áp
Có nhiều cách ma chúng ta có thể đo được điện áp 2 cách mà chúng ta thường
sử dụng đó là:
- Dung cac loại đồng hồ đo
- Sử dụng mach vi xử lý
CHƯƠNG 2 : THIẾT KẾ PHẦN CỨNG
2.1 Sơ đồ khối
Cấu trúc chung của hệ thống
- nút ấn: giao tiếp với vi sử lý ,dùng để nhập giá trị điện áp
- Bộ chuyển đổi ADC chuyển đổi tín hiệu Analog từ khối công suất thành tín
hiệu Digital
- Khối hiểu thi LCD hiển thị giá trị đặt và giá trị đo
- Vi sử lí : nhận tín hiệu từ bộ chuyển đổi ADC , giao tiếp với nút ấn , điều
khiển khối công suất , hiển thị dữ liệu trên LCD
- Khối công suất :thực hiện tín hiệu điều khiển từ vi sử lí
Ngoài các tín hiệu quan trọng trên chúng ta còn có khối qua trọng khác là khối
nguồn và mạch đồng bộ
+khối nguồn để cung cấp nguồn cho mạch điều khiển
+mạch đồng bộ :mạch này có tác dụng giúp vi sử lí tính toán góc kích cho triac
của công suất hoạt động
Nút nhấn

Bộ
chuyển đổi ADC
Khối hiển thị
LCD
Vi xử lí
Khối công suất
2.2.Chức năng của các khối
A. khối nguồn
- chức năng cung cấp nguồn cho mạch điều khiển
- sơ đồ nguyên lý của khối nguồn
- +
D 1
2
1
3
4
U 1
L M 7 8 0 5
I N
1
O U T
3
G N D
2
U 2
L M 7 9 0 5
G N D
1
O U T
3

I N
2
C 1
C 2
C 3
C 4
C 5
J 3
C O N 3
1
2
3
J 4
C O N 3
1
2
3
-các thành phần trong khối nguồn :
a) Diode bán dẫn:
- Khi đã có được hai chất bán dẫn là P và N , nếu ghép hai chất bán dẫn theo
một tiếp giáp P-N ta được một Diode, tiếp giáp P-N có đặc điểm: Tại bề mặt
tiếp xúc, các điện tử dư thừa trong bán dẫn N khuyếch tán sang vùng bán dẫn P
để lấp vào các lỗ trống => tạo thành một lớp Ion trung hoà về điện => lớp Ion
này tạo thành miền cách điện giữa hai chất bán dẫn.
Kí hiệu

- Các loại Diode: diode zener, diode quang, diode biến dung, diode nắn điện,…
- Diode dẫn khi được phân cực thuận (U
AK
> 0)

- Diode phát quang ( Light Emiting Diode: LED): là Diode phát ra
ánh sáng khi được phân cực thuận, điện áp làm việc của LED khoảng 1,7 đến
2,2V dòng qua LED khoảng từ 5mA đến20mA. Led được sử dụng để làm đèn
báo nguồn, đèn nháy trang trí, báo trạng thái có điện . vv…
- Trong mạch chỉnh lưu, Diode có thể được tích hợp thành Diode cầu.
b) Tụ điện:
-Tụ điện là một linh kiện điện tử thụ động, là phần tử có giá trị dòng điên qua nó
tỷ lệ với tốc độ biến đổi của điện áp trên nó theo thời gian. Tụ điện đươc chia
thành hai loại: tụ phân cực và tụ không phân cực.
-Tụ điện có hai bản cực làm bằng chất dẫn điện đặt song song, ở giữa có lớp
cách điện.
- Các loại tụ thường gặp ở hai nhóm có trị số cố định hay có trị số thay đổi được.
Theo đặc điểm laọi vật liệu sử dụng khi chế tạo, tụ điện đựơc phân chia thành
các loại sau:
+ Tụ gốm.
+ Tụ mica
+ Tụ polistiren.
+ Tụ polycacbonat.
+ Tụ poyeste
+ …
- Tụ điện có giá trị điện dung thay đổi được bao gồm hai dạng cơ bản.
+ Dạng tụ điều chuẩn dung điện môi là lớp không khí giữa 2 bộ cánh cách
kim loại nhôm lắp xen kẽ nhau một cách cố định, bộ kia có thể xoay 180
0
nhờ
một trục quay.
+ Dạng tụ tinh chỉnh dùng mica làm vật liệu điện môi cách ly giữa hai hay
nhiều phiến kim loại xen kẽ, điện dung thay đổi được nhờ xoay vít trục để đều
chỉnh phần điện tích trùng nhau giữa các phiến kim loại, phần trùng càng nhiều
thì giá trị tụ càng tăng.

- Kí hiệu:
c) IC ổn áp 7805: là loại IC dùng để
ổn định điện áp +5V đầu ra
- Output (3): Chân điện áp ra 5V.
- Command (2): Chân nối mass.
- Input (1) : Chân điện áp vào.
- Điện áp ngõ vào Vin>=5V (lớn hơn
từ 3V hay 4V), điện áp ngõ ra Vout =5V.
- Chân nối mass cũng rất quan trọng,
nếu chân này bị hở thì áp tại ngõ ra sẽ có thể bằng
với điện áp ngõ vào. Điều này sẽ rât nguy hiểm
nếu vi xử lý nhận được mức điện áp này.
+ IC ổn áp 7905:là loại IC dùng để ổn định điện áp -5V đầu ra

-Output(3):chân điện áp ra -5V
- Input(2): chân điện áp vào
- Command(1) chân nối mass
B. khối hiển thị LCD
- Chức năng của LCD trong hầu hết các mạch, các bộ điều khiển đảm nhân vai
trò hiển thị các thông số, các thông tin mà chúng ta muốn nhập vào hay các
thông tin xử lý mà bộ điều khiển đang hoạt động đựoc hiển thị ra màn hình, giúp
chúng ta giao tiếp gần hơn với quá trình hoạt đông của hệ thống. Loại LCD mà
chúng ta sử dụng là loại SD-DM1602A 2 dòng mổi dòng 16 kí tự, loại này do
Trung Quốc sản xuất .
Nó có
16 chân như hình vẽ.
Trong đó chúng ta có thể thấy 2 chân 1,2 được cấp nguồn cho LCD hoạt động,
chân thứ 3 (chân VEE) được nối vào đầu ra của biến trở dùng để điều chỉnh độ
tương phản (phải điều chỉnh VSS hợp lý thì LCD mới hiển thị được) 2 chân
15,16 đây là 2 chân cấp nguồn dung để bật đèn của LCD từ chân 4->14 là các

chân điều khiển được nối với vi điều khiển, các chân 4,5,6 được để điều khiển
hoạt động của LCD, các chân còn lại là 8 bit Data dùng để truyền nhận dữ liệu.
Trong bài tập này ta sử dụng một LCD để giới thiệu cũng như hiển thị những
thông tin cần thiết khác, đồng thời học cách giao tiếp giữa hai vi xử lý. Do LCD
tiêu thụ dòng khá lớn đặc biệt là khi bật đèn nền, làm mau hết ắcquy nên chỉ sử
dụng LCD với những trường hợp cụ thể. Để bật tắt đèn nền,sử dụng một bóng
thuận A1015, được điều khiển bởi chân P0.7 của vi điều khiển. Khi P0.7=0 thì
bóng thông, cực A của LCD được nối với nguồn 5V, đèn nền sáng và ngược lại.
Ngoài ra trong khối còn sử dụng một biến trở 10k tạo điện áp ra đưa vào chân
VEE của LCD để điều chỉnh độ tương phản. Khi điện áp
EE
0
V
U

thì độ tương
phản là lớn nhất,
EE
5
V
U

V thì độ tương phản là nhỏ nhất.
*sơ đồ nguyên lý của khối hiển thị LCD
LCD hiển thị đợc 2 hàng mỗi hàng hiển thị đợc 16 ký tự (LCD có 14
chân) nh đợc minh hoạ trên hình.
Thông số của LCD :
+Kích thớc hiển thị : 16 ký tự x 2 dòng.
+Màu hiển thị: đen/trắng
+Chế độ giao tiếp : 8 bít và 4 bít

+Cỡ chữ hiển thị : 5x7 hoặc 5x10
1. Cấu trúc của LCD
1a. Giới thiệu sơ đồ chân LCD .
_ LCD có tổng số 14 chân chia làm 3 nhóm:
Nhóm 1: (3 chân) Cấp nguồn VDD, VSS : cấp 5V, 0V
VEE: thay đổi điện áp để thay đổi độ tơng phản
Nhóm 2: (8 chân) Vào ra thông tin với VĐK : Từ chân D0-D7
Nhóm 3 : (3 chân) Điều khiển việc vào ra thông tin : E,RS,R/W
E :(bật /tắt ) (cho phép/ không cho phép trao đổi thông tin với
VĐK )
RS :(loại thông tin trao đổi)Thông tin trao đổi là lệnh điều khiển
hay à dữ liệu để hiển thị
R/W : (hớng truyền của thông tin) đọc trạng thái từ LCD hay thông
tin do VĐK gửi vào LCD để hiển thị
Cụ thể tên gọi và mô tả chức năng các chân đợc tổng kết trong bảng
sau:
Interface Pin Connections
Chân
số

hiệu
Tên Mô tả chức năng
1 VSS
Cấp nguồn
0V (GND)
2 VDD
Cấp nguồn
Nối với dơng nguồn (+4.5V~+5.5V)
3 VEE Contrast
điều chỉnh điện áp chân này sẽ tăng giảm độ tơng phản

của LCD. cho nên nó thờng đợc nối với biến trở.
4 RS
Chọn thanh ghi
Nếu RS=0 : LCD nhận lệnh từ VĐK
Nếu RS=1: LCD nhận dữ liệu từ VĐK để hiển thị
5 RW Read/Write
Chọn chức năng ghi/ đọc
RS=1 : chọn chức năng đọc dữ liệu từ LCD vào VĐK
RS=0 : chọn chức năng ghi dữ liệu từ VĐKvào LCD để
hiểnt thị
6 E Read Write enable
Cho phép/ ko cho phép LCD trao đổi thông tin với
VĐK.
Chỉ khi E chuyển từ 10 thì tín hiệu ở các chân D0-D7
mới đợc đa vào LCD.
7 D0
Data bus 0-7
8 chân này đợc nối với
VĐK để vào/ra thông tin
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7
_ Từ những đặc điểm và chức năng đã đợc đề cập ở trên ta có thể đi tới việc
hình thành việc ghép nối của LCD với vi điều khiển nh sau:
Nh trên hình minh hoạ ta có thể thấy các chân D0-D3 là đờng tín hiệu 2
chiều (để trao đổi thông tin Vi điều khiển và LCD). 3 chân điều khiển RS,

R/W, E là chân đa tín hiệu điều khiển từ Vi điều khiển tới LCD nên nó chỉ là đ-
ờng tín hiệu 1 chiều thôi.
Vì chân Contrast (VEE) điều chỉnh độ tơng phản của LCD nên ta cấp
nguồn cho nó thông qua biến trở (nh hình vẽ)
1b. Cấu trúc bộ nhớ trong LCD.
Màn hiển thị của LCD nói chung có thể lên tới hơn 40 ký tự trên một dòng
và một màn có thể có tới 4 dòng.Trong đó có một bộ RAM để chứa mã 80 ký
tự gọi là bộ nhớ DDRAM(display data ram),màn hiển thị có thể dịch cả màn
để quan sát đợc các ký tự khác.
Bộ ký tự hiển thị : Bộ hiển thị có thể hiển thị đợc các ký tự đã đợc lập trình
trớc hoặc các ký tự do ngời dùng định nghĩa.Trong bộ điều khiển hiển thị có
một bộ nhớ ROM dùng để phát ký tự, trong Rom này chứa 192 ký tự,khi cần
chọn những ký tự này thì nó đợc chọn thông qua từng mã của nó, có tới 96 mã
ký tự ASCII, 64 mã ký tự tiếng Nhật, 32 ký tự đặc biệt khác. Trong bộ điều
khiển LCD cũng có một bộ RAM gọi là CGRAM(character generator ram)
trong bộ nhớ này lu 8 ký tự do ngời dùng định nghĩa, các ký tự đầu tiên phải
viết vào CGRAM trớc rồi sau đó mới hiển thị ra màn hiển thị đợc.
C.Nỳt nhn :
1) Chc nng: dựng nhp giỏ tr in ỏp cn chnh lu.
2) S nguyờn lý mch nỳt nhn:
1 'S
1 0 'S
1 0 0 'S
E N T E R
P 2 .4P 2 .5P 2 .6
S W 0
P 2 .3 P 2 .7
S W 1
S W 2
S W 3

S W 4
C 4
1 0 3 p F
C 5
1 0 3 p F
C 6
1 0 3 p F
C 7
1 0 3 p F
C 1 1
1 0 3 p
D. Vi xử lí - AT89C51:
1) Chức năng: nhận tín hiệu từ bộ chuyển đổi ADC0804 và nút nhấn.
Sau đó tính toán và xuất tín hiệu điều khiển cho khối công suất. Đồng thời xử lí
tín hiệu để hiển thị lên LCD
2) Các thành phần trong khối:
Thành phần chính của khối là MCU AT89C51
a) Tổng quát về AT89C51:
8951 là IC vi điều khiển (Microcontroller) do hãng Intel sản xuất.
IC này có đặc điểm như sau:
- 4k byte ROM,128 byte RAM
4 Port I/O 8 bit.
- 2 bộ đếm/ định thời 16 bit.
- Giao tiếp nối tiếp.
- 64k byte không gian bộ nhớ chương trình mở rộng.
- 64k byte không gian bộ nhớ dữ liệu mở rộng.
- Một bộ xử lý luận lý (thao tác trên các bít đơn).
- 210 bit được địa chỉ hóa.
- Bộ nhân / chia trong 4µs.
E.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ều
khiền góc kích SCR sao cho điện áp VDC luôn được ổn định.
2) Thành phần chính trong khối:
a) Tổng quan về ADC0804:
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng
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:
- 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ân
nà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. 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).
- 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. Khi việc chuyển đổi hoàn tất thì chân INTR
được ADC hạ xuống thấp.
- 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ạo
xung đồ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ần

số được xác định bằng biểu thức:

RC
f
11
1

=
- Ngắt INTR (Interupt): Chân số 5, là chân ra tích cực mức thấp. Bình thường
châ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ống
thấ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 tham
chiếu. Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong
dả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 ra
khác 0 - +5V.
- Bảng quan hệ điện áp Vref/2 với Vin:

3) Tính toán linh kiện:
- Chân Vin(+) được nối với cầu phân áp tạo bởi R16 và R17,
sao cho VDC = 0 - 250V tương ứng với Vin(+) = 0 - 5V. Ta suy ra công
thức:


1716
17
)(
RR
RVDC
Vin
+

=+
với Vin(+) = 5V, VDC = 250V
Suy ra: R16 = 50R17. Chọn R17 = 10KΩ thì R16 = 500KΩ.
Chọn R16 = 510 KΩ
Nhưng thực tế, các giá trị điện trở đều có sai số nên ngỏ vào
của ADC0804 không như tính toán. Sai số trên điện trở cộng với sai số trong
quá trình tính toán chọn linh kiện sẽ tạo ra sai số không nhỏ đối với ADC0804.
Điều này sẽ tạo ra sai lệch giữa giá trị hiển thị trên Led 7 đoạn và giá trị thực tế
(ở đây là giá trị VDC thực tế).
Để giảm sai số ở ngỏ vào của ADC0804, ta cần mắc thêm
biến trở RV2 như sơ đồ nguyên lý. Theo tính toán thì R17 = 10 KΩ, ta chọn R17
= 4.7 KΩ nên chọn RV2 = 10 KΩ.
- Chân Vref/2 được nối với biến trở RV1 để có thể điều
chỉnh điện áp từ 1.6V đến 3.75V. Theo tính toán thì chân Vref/2 = 2.5V nhưng
do chân Vin(+) thực tế có sai số (sai số chủ yếu trên cầu phân áp R16 và R17)
nên chân Vref/2 thực tế sẽ không bằng 2.5V. Do đó biến trở RV1 được sử dụng
để giảm sai số này. Thay đổi Vref/2 đồng nghĩa với việc thay đổi dãy điện áp
ngỏ vào.
- Tốc độ chuyển đổi ADC0804 (T
C
):
f

T
CLK
C
1
66
=
Chọn T
C
= 100µs = 0.1ms. Suy ra f
CLK
= 660KHz
Ta lại có:
RC
f
CLK
1.1
1
=
với f
CLK
= 660KHz = 660000Hz
Suy ra, RC ≈ 1.4×10
-6
. Chọn R = 10KΩ suy ra C = 1.4×10
-10
F.
Chọn C = 150pF
- Diode D4
- Bảng tỉ lệ giữa VDC, Vin(+) và ngỏ ra DB:
VDC (V) Vin(+) (V) DB(Hex)

0 0 0
1 5x(1/250) = 0.02 1
2 5x(2/250) = 0.04 2
3 5x(3/250) = 0.06 3
4 5x(4/250) = 0.08 4
5 5x(5/250) = 0.1 5
10 5x(10/250) = 0.2 A (10D)
50 5x(50/250) = 1 32(50D)
100 5x(100/250) = 2 64(100D)
200 5x(200/250) = 4 C8(200D)

Ta có ADC0804 có độ phân giải là 2
8
= 256 (0 - 255) tương ứng (0 - 5V). Gọi n
là kích thước bước 1 bước (V). Ta có:
Vn 0196.0
255
5
≈=
(chia 255 vì từ 0 - 255 có 255 bước)
Ta chọn lại n = 0.02V để tìm ra số bước mới tương ứng (0 - 5V).
Với n = 0.02V thì số bước = 5/0.02 = 250 (nghĩa là (0 - 5V) tương ứng (0 - 250)
với n = 0.02V).
Lúc này, Vin(+) = 0 - 5V được biểu diển bằng ngỏ ra DB = 0 – 250
4) Sơ đồ nguyên lý:
RD
WR
VREF/2
P1.0
P1.1

P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
VREF/2
INTR
ADC 1
ADC 2
VIN+
6
VIN-
7
VREF/2
9
CLK IN
4
A GND
8
RD
2
WR
3
INTR
5
CS
1
D GN D
10

DB7(MSB)
11
DB6
12
DB5
13
DB4
14
DB3
15
DB2
16
DB1
17
DB0(LSB)
18
CLK R
19
VCC
20
U4
ADC 0804
RV1
5K HOAC 10K
R10
2K
R14
1k
R15
10K

C15
150pF
R16
510K
R17
4.7k
C12
10uF
RV2
10K
D3
D4
CHƯƠNG 3 : THIẾT KẾ PHẦN MỀM
Viết code điều khiển thuyết minh nguyên lý hoạt động
;Chuong trinh phan mem lap cho vi dieu khien 89C52 dieu khien chip
ADC0804 va man hinh LCD
;Muc dich do dien ap mot chieu sau chinh luu
;Ngon ngu lap trinh asm
;
$MOD51
ORG 000H
RS EQU P0.0
RW EQU P0.1
E EQU P0.2
MOV A,#38H ;bat man hinh LCD hien thi 2 dong
LCALL CSTROBE
MOV A,#0CH ;LCD hien thi o che do khong co con tro
LCALL CSTROBE
MAIN:
While:

LCALL Chuyen_doi_ADC;
LCALL Su_ly;
LJMP While;
;
;Chuong trinh con dieu khien va lay du lieu chuyen doi
;tin hieu tuong tu sang tin hieu so 8bit
Chuyen_doi_ADC:
SETB P0.7;
MOV R6,#50h
LP0: DJNZ R6,LP0
CLR P0.7;
MOV R6,#070h
LP1: DJNZ R6,LP1
MOV A,P1;
MOV R0,A;
RET
;
; Chuong trinh con thuc hien su li du lieu cho hien thi nen LCD
; Phuong phap hien thi quet LCD
Su_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
MOV P2,A;
LCALL DSTROBE



; Hang chuc
MOV A,R0;
MOV B,#64H;
DIV AB; Chia A cho B
MOV B,#64H;
MUL AB; Nhan A voi B
MOV R1,A;
MOV A,R0;
MOV B,#0AH;
DIV AB;
MOV B,#0AH;
MUL AB;
SUBB A,R1; Tru A cho R1 ket qua luu vao A
MOV B,#0AH;
DIV AB;
ADD A,#30H;
MOV P2,A;
LCALL DSTROBE
; Hang don vi
MOV A,R0;
MOV B,#0AH;
DIV AB;
MOV B,#0AH;
MUL AB
MOV R1,A;
MOV A,R0;
SUBB A,R1;
ADD A,#30H;
MOV P2,A;
LCALL DSTROBE

; Hien thi don vi von
MOV A,#20H; Tao dau cach
MOV P2,A;
ACALL DSTROBE
MOV A,#56H; Ki tu V duoc hien thi
MOV P2,A;
LCALL DSTROBE
; Logo Dien K9
MOV A,#0C0H;
LCALL CSTROBE;
MOV A,#44H; Ki tu D duoc hien thi
MOV P2,A;
LCALL DSTROBE
MOV A,#69H; Ki tu i duoc hien thi
MOV P2,A;
LCALL DSTROBE
MOV A,#65H; Ki tu e duoc hien thi
MOV P2,A;
LCALL DSTROBE
MOV A,#6EH; Ki tu n duoc hien thi
MOV P2,A;
LCALL DSTROBE
MOV A,#20H; Tao dau cach
MOV P2,A;
LCALL DSTROBE
MOV A,#4BH; Ki tu K duoc hien thi
MOV P2,A;
LCALL DSTROBE
MOV A,#39H; Ki tu 9 duoc hien thi
MOV P2,A;

LCALL DSTROBE
; Quet lai LCD
MOV A,#80H;
LCALL CSTROBE;

RET;
;
;Chuong trinh con gui lenh ra LCD
CSTROBE:
LCALL READY ;
MOV P2,A ;xuaT ma lenh
CLR P0.0 ;RS=0: nhan lenh
CLR P0.1 ;R/W=0: ghi ra LCD
SETB P0.2 ;E=1 -> chuen du lieu tu vi dieu khien vao LCD
CLR P0.2 ;E=0 ,chot du lieu
RET
;
;Chung trinh con gui du lieu hien thi len man hinh LCD
DSTROBE:

LCALL READY
MOV P2,A ;xuat du lieu ra P1
SETB P0.0 ;RS=1: nhan du lieu
CLR P0.1 ;R/W=0 ghi ra LCD
SETB P0.2 ;E=1 -> chuen du lieu tu vi dieu khien vao LCD
CLR P0.2 ;E=0, chot du lieu

RET
READY: ;Chuong chinh kiem tra LCD da san sang nhan
lenh chua

SETB P2.7 ;dinh vi tri con tro cho DDRAM
CLR P0.0 ;RS=0: nhan lenh
SETB P0.1 ;R/W=1: che do LCD chuyen tin den vi dieu khien
BACK: CLR P0.2 ;E=0 ->
SETB P0.2 ;E=1
JB P2.7,BACK ;kiem tra LCD xem da san sang nhan lenh
chua,neu P1.7= 1 xuat ma lenh
RET
;
;Chuong trinh tao tre
DELAY:
MOV R6,#80H;
VONG1: DJNZ R6,VONG1;
RET

END

×