Nhờ tính năng u việt của bộ vi điều khiển nh : khả năng lập trình phù hợp với thiwts kế nhỏ và lớn cũng nh giao tiếp với các thiết bị ngoại vi và máy tính sẽ đem lại sự hoàn hảo, độ chín
Trang 1Lời Nói Đầu
Ngày nay,khoa học công nghệ ngày càng phát triển Cùng với sự phát triển đó công nghệ tự động hoá ngày càng đợc u tiên đầu t nghiên cứu phát triển.Đại đa số các lĩnh vực sản xuất, điều khiển ,giám sát, do lờng, dều đợc trang bị hệ thống điều khiển hẹ thống tự động hoá Một trong số vi mạch đợc
sử dụng dố là Kỹ thuật Vi điều khiển Nhờ tính năng u việt của bộ vi điều khiển nh : khả năng lập trình phù hợp với thiwts kế nhỏ và lớn cũng nh giao tiếp với các thiết bị ngoại vi và máy tính sẽ đem lại sự hoàn hảo, độ chính xác
đièu khiển các thiết bị bên ngoài hoạt động theo đúng thông số và yêu cầu của
hệ thống Ngoài ra vi điều khiển cũng có mặt nhiều trong các sản phẩm cong nghiệp và tiêu dung
Để hiểu đợc phần nào về chức năng và ứng dụng của vi diều khiển
nhóm em chon thực hiện đề tài Thiết kế mô hình Voltmet điện tử hiển thị
bằng màn hình tinh thể lỏng (LCD).
Đợc sự hóng dẫn tận tình của thầy Nguyễn Anh Dũng trong thời gian
học tập chúng em đã biết đợc rất nhiều kiến thúc về lập trình vi điều
khiển.Chúng em tin rằng những kiến thức này sẽ giúp ích rất nhiều cho công việc sau này
Nhng do lợng kiến thức có hạn, nên trong quá trình tìm hiểu về đề táI chúng em còn có rất nhiều thiếu sót và hạn chế nên rất mong nhận đợc sự chỉ bảo và đóng góp của thầy để chúng em hoàn thành tốt hơn
Trang 21 Kiến trúc phần cứng………5
2 Chức năng các chân……….6
3 Các thanh ghi 9
4 Hoạt động của bộ định thời……… 10
5 Hoạt động của port nối tiếp……… 11
Chơng II: Voltmet hiển thị LCD………12
I. Cơ sở lý thuyết……….13
1 Giao tiếp với ADC 0804……… 13
2 Giao tiếp với LCD………15
II. Nguyên lý hoạt động- sơ đồ mạch……… 20
1. Nguyên lý hoạt động……….20
2. Sơ đồ mạch nguyên lý ……… 21
3. Sơ đồ mô phỏng ……… 22
III. Chơng trình điều khiển……… 22
Chơng III: kết luận……… 30
Nhận Xét Của Giáo Viên
Trang 3
Chơng I Giới thiệu chung về bộ vi điều khiển I.Giới thiệu chung về bộ vi điều khiển: Bộ vi điều khiển viết tắt là Micro-contronller, là mạch tích hợp trên một chíp có thể lập trình đợc, dùng để điều khiển hoạt động của hệ thống Theo các tập lệnh của ngời lập trình, bộ vi điều khiển tiến hành đọc, lu 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 đó Trong các thiết bị điện và điện tử dân dụng, thiết bị tự động hoá các bộ vi điều khiển, điều khiển hoạt đọng của các thiết bị này Trong hệ thống sản xuất tự động, bộ vi điều khiển đợc sử dụng trong điều khiển robot, dây 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 II Gi i thiệu cung về bộ ới thiệu cung về bộ vi điều khiển 8051(89S52)
Họ vi điều khiển 8051 (còn gọi là họ C51) là một trong những họ vi
điều khiển thông dụng nhất Đây là các bộ vi điều khiển 8bits, có kiến trúc
theo kiểusản xuất theo công nghệ CMOS, Một số loại vi điều khiển thuộc họ
8051 thông dụng có thể kể ra : AT89C2051(20 chân), AT89C4051(20 chân),
Trang 4AT89C51(40 chân), AT89C52(40 chân), AT89S51(40 chân), AT89S52(40 chân), AT89S53(40 chân)
Trong chơng trình môn học này chúng ta tập trung nghiên cứu về bộ vi
điều khiển 89S52 Đây là một bộ vi điều khiển thông dụng, giá rẻ có khá nhiều chức năng hay đặc biệt là có tích hợp sẵn bộ nạp trên chip giúp sinh viên có thể dễ dàng tự thực hiện các bài thí nghiệm với chi phí rất thấp
Cụ thể họ vi điều khiển 8051 có các đặc điểm sau :
-8 kbyte ROM (đợc lập trình bởi nhà sản xuất chỉ có ở 8051 )
- Thanh ghi tích luỹ A
-Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học (ALU: arithmetic logical unit)
- Tủ trạng thái chơng trình (PSW: program status word
- Bốn băng thanh ghi
- con trỏ ngăn xếp
Trang 5
Hình 1.1 : Sơ đồ khối 89s52 Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn
có khả năng đa một tín hiệu giữ nhịp từ bên ngoài.Chơng trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong Các nguồn ngắt cóthể là: các biến cố ở bên ngoài, sự tràn của bộ đếm định thời hoặc cũng có thể
là giao diện nối tiếp.ba bộ định thời 16 Bit hoạt động nh một bộ đếm
Các cổng(Port 0, Port 1 Port 2 Port 3) Sử dụng vào mục đích điều khiển
ở cổng 3 có thêm các đờng dẫn điều khiển dùng để trao đổi với bộ nhớ ở bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng nh các đờng ngắt dẫn ở bên ngoài
Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là bộ nhớ
và các thanh ghi:
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lu trữ dữ liệu và mã lệnh Các thanh ghi sử dụng để lu trữ thông tin trong quá trình xử lý Khi CPUlàm việc nó thay đổi nội dung các thanh ghi
b) Chức năng các chân của vi điều khiển 8051
1 Port 0.
Port 0 gồm 8 chân, ngoài chức năng xuất nhập ra, Port 0 còn là Bus đa hợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ đợc sử dụng khi 89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus
Hình 2.4 Cấu trúc của các chân trên port 0
2 Port 1.
Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập, cũng nh các Port khác, Port 1 có thể xuất nhập theo bit và theo byte
Trang 6Hình 2.2 Cấu trúc của các chân trên port 1 và port 3.
Riêng dòng 89Sxx, 4 chân P1.4, P1.5, P1.6, P1.7 đợc dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 đợc dùng cho bộ Timer 2 Trên hình 2.3
là một sơ đồ kết nối 89S52 với cổng song song để nạp chơng trình (file mã -
*.hex) từ máy tính
Trên sơ đồ này các đờng dẫn DO, DI, SCK, RTS lần lợt là các đờng dẫn dữ liệu lên máy tính, xuống nối tiếp từ máy tính, đờng dẫn xung Clock và đ-ờng dẫn xung Reset từ máy tính xuống sau khi nạp xong chơng trình
3 Port 2.
Port 2 có hai tác dụng, hoặc làm nhiệm vụ là cổng xuất nhập, hoặc là phần byte cao của bus địa chỉ 16-bit cho các thiết kế hệ thống cần nhiều hơn 256 byte bộ nhớ ngoài
Hình 2.7 Cấu trúc của các chân trên port 2
Trang 7P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
5 PSEN (Program Store Enable ).
Chân này thờng đợc nối với chân cho phép xuất /OE (Output Entable) của EPRROM (hoặc của ROM) để cho phép đọc các byte lệnh Tín hiệu /PSEN ở lôgic ‘0‘ trong suốt thời gian tìm nạp lệnh Các mã nhị phân của chơng trình (opcode) đợc đọc từ EPROM, qua bus dữ liệu v đợc chốt vo thanh ghi lệnh IR của 8051 để đợc giải m! Khi thực thi một chơng trình trong ROM nội, /PSEN
đợc duy trì ở lôgic
6 ALE (Address Latch Enable )
Là tín hiệu xuất ra để giải đa hợp bus địa chỉ v bus dữ liệu Trong 1/2 chu
kỳ đầu bộ nhớ, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của bus địa chỉ 16 bit) vo thanh ghi ngoi khi ta sử dụng port 0 lm byte thấp địa chỉ Trong 1/2 chu kỳ bộ nhớ còn lại port 0 sẽ xuất/nhập dữ liệu Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip vi điều khiển v có thể lm xung clock cho các phần còn lại của hệ thống (trờng hợp ngoại lệ khi thực hiện lệnh MOVX, một xung ALE (vàs cả /PSEN) sẽ bị bỏ qua) Chân ALE còn đợc dùng để nhập xung ngõ vo lập trình cho
EPROM hoặc Flash ROM trên chip đối với chip có loại ROM này
7 EA (External Access)
Chân này đợc nối lên 5V khi thực thi chơng trình trong ROM nội v đợc nối
đất khi thực thi chơng trình bộ nhớ ngoi Chú ý đối với các chip không có ROM nội /EA phải đợc nối đất Các chip họ 8051 có EPROM còn nhận chân /ALE làm chân
nhận điện áp cấp điện 12V cho việc lập trình (nạp) cho EPROM nội
1 Các thanh ghi Port xuất nhập:
Các Port cua 8051 bao gồm port 0 ỏ địa chỉ 80H.port1 ỏ dịa chỉ
90H,port2 ỏ địa chỉ A0H và port 3 ỏ địa chỉ B0H.Tất cả các port dều đợc địa chỉ hoá tùng bit Điều đó cung cấp một khả năng giao tiếp thuận lợi
2.Các thanh ghi TIMER:
8051 chứa 2 bộ định thời đếm 16bit đợc dùng trong việc định thời hoạc
đém sự kiện.Timer0 địa chỉ 8AH(TLO:byte thấp) và 8CH (THO:byte
cao)Timer1 ở địa chỉ 8BH (TL1 byte thấp)và 8DH(TH1:byte cao).Việc vận
Trang 8hành của Timer đợc set bởi thanh ghi Timer MODE(TMOD)ở địa chỉ 89H cà thanh ghi điều khiển timer(TCON)ở địa chỉ 88H.Chỉ có TCON đợc địa chỉ hoá từng bit.
3.Các thanh ghi Port nối tiếp:
8051 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối tiếp nh máy tính, Modern hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (có bộ chuyển đổi A/D,các thanh ghi dịch ) Một thanh ghi gọi la bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ dữ cả hai vai trò truyền và nhận dữ liệu.Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các MODE vận hành khác nhau đợc lập trình qua thanh ghi diều khiển Port nối tiếp (SCON) đợc dịa chỉ hoá từng bit ở địa chỉ 98H
4.Các thanh ghi ngắt :
8051 có cấu trúc 5 nguồn ngắt , 2 mức u tiên.Các ngắt bị cấm sau khi reset hệ thống và sẽ đợc cho phép bằng việc thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH Cả hai thanh ghi đợc địa chỉ hoá từng bit
5.Hoạt động của bộ định thời(timer)
8051 có 3 timer 16 bit, mỗi timer có 4 cách làm việc Ngời ta sử dụng các timer để :
Định khoảng thời gian
Đếm sự kiện
Tạo tốc độ BAUD cho Port nối tiếp trong 8051
+:Thanh ghi chế độ timer(TMOD)
Thanh ghi TMOD chứa 2 nhóm 4bit dùng để đặt chế dộ làm việc cho timer0
và timer1
Trang 9+Thanh ghi điều khiển timer(TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer
MSB của giá trị trong các thanh ghi timer là bit7 của THx và LBS là bit 0 của
TLx Các thanh ghi timer (TLx/THx)có thể đọc hoặc ghi bắt cứ lúc nào bằng
phần mềm
báo tràn
- Chế độ 2 –chế độ 8 bit tự nạp lại
TLx hoạt động nh một timer 8 bit,trong khi đó THx vẫn giữ nguyên giá
trị đợc nạp Khi số đếm tràn từ ffH đến 00H,không những cờ timer đợc set mà
giá trị trong THx động thời đợc nạp vào TLx Việc đếm tiếp tục từ giá trị naỳ
đến ffH xuống 00Hvà nạp lại CHế độ này rất thông dụng vì sự tràn timer sảy
a trong khoảng thời gian nhất định và tuần hoàn khi đã khởi động TMOD và
Timer 1 ngng ở chế độ 3 , nhng có thể đợc khởi động bằng cách chuyển sang
chế độ khác Giới hạn duy nhất là cờ báo tràn TF1 không còn bị tác động khi
timer 1 bị tràn vì nó đẫ đợc nối tới TH0
Khi timer 0 ở chế độ 3 có thể cho timer 1 chạy và ngng bằng cách chuyển nó
ra ngoài và vào chế độ 3 Nó vẫn có thể đợc sử dụng bằng port nối tiếp nh bộ
tạo tốc độ baund hoặc nó có thể đợc sử dụng bằng bất cứ cách nào không cần
ngắt (vì nó không còn đợc nối với TF1)
6 Hoạt động port nối tiếp
Trang 10 Các chế độ hoạt động của PORT nối tiếp
Port nối tiếp có 4 chế độ hoạt động :
I Giao tiếp với ADC 0804:
Chíp ADC (bộ chuyển với ADC biến đổi tơng tự số) với 8051
1 Các thiết bị ADC:
Các bộ chuyển đổi ADC thuộc trong những thiết bị đợc sử dụng rộng rãi nhất
để thu dữ liệu Các máy tính số sử dụng các giá trị nhị phân, nhng trong thế giới vật lý thì mọi đại lợng ở dạng tơng tự (liên tục) Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít trọng những đại lợng vật lý của thế giới thực mà ta gặp hàng ngày Một đại lợng vật lý đợc chuyển về dòng
điện hoặc điện áp qua một thiết bị đợc gọi là các bộ biến đổi Các bộ biến đổi cũng có thể đợc coi nh các bộ cảm biến Mặc dù chỉ có các bộ cảm biến nhiệt,tốc độ, áp suất, ánh sáng và nhiều đại lợng tự nhiên khác nhng chúng đều cho
ra các tín hiệu dạng dòng điện hoặc điện áp ở dạng liên tục Do vậy, ta cần một bộ chuyển đổi tơng tự số sao cho bộ vi điều khiển có thể đọc đợc chúng Một chíp ADC đợc sử dụng rộng rãi là ADC 804
2 Chíp ADC 804:
Chíp ADC 804 là bộ chuyển đổi tơng tự số trong họ các loạt ADC 800
từ hãng National Semiconductor Nó cũng đợc nhiều hãng khác sản xuất, nó làm việc với +5v và có độ phân giải là 8 bít Ngoài độ phân giải thì thời gian chuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộ ADC Thời gian chuyển đổi đợc định nghĩa nh 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 Trong ADC 804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ đợc cấp tới chân CLK và CLK IN nhng không thể nhanh hơn 110s Các chân của ADC 804 đợc mô tả
nh sau:
1 Chân CS- chọn chíp: Là một đầu vào tích cực mức thấp đợc sử dụng
để kích hoạt chíp ADC 804 Để truy cập ADC 804 thì chân này phải ở mức
thấp.
2 Chân RD(đọc): Đây là một tín hiệu đầu vào đợc tích cực mức thấp
Trang 11Các bộ ADC chuyển đổi đầu vào tơng tự thành số nhị phân tơng đơng với nó
và giữ nó trong một thanh ghi trong RDđợc sử dụng để nhận dữ liệu đợc chuyển đổi ở đầu ra của ADC 804 Khi CS = 0 nếu một xung cao - xuống - thấp đợc áp đến chân RDthì đầu ra số 8 bít đợc hiển diện ở các chân dữ liệu D0 - D7 Chân RD cũng đợc coi nh cho phép đầu ra
3 Chân ghi WR(thực ra tên chính xác là “Bắt đầu chuyển đổi”) Đây làchân đầu vào tích cực mức thấp đợc dùng để báo cho ADC 804 bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WRtạo ra xung cao - xuống - thấp thì bộ ADC 804 bắt đầu chuyển đổi giá trị đầu vào tơng tự Vin về số nhị phân 8 bít Lợng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đa đến chân CLK IN và CLK R Khi việc chuyển đổi dữ liệu đợc hoàn tất thì chân INTR đợc ép xuống thấp bởi ADC 804
1
f
giá trị tiêu biểu của các đại lợng trên là R = 10k và C= 150pF và tần
số nhận đợc là f = 606kHz và thời gian chuyển đổi sẽ mất là 110s
Hình 12.5: Kiểm tra ADC 804 ở chế độ chạy tự do
5 Chân ngắt INTR(ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi’)
Đây là chân đầu ra tích cực mức thấp Bình thờng nó ở 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
đợc chuyển đổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, ta đặt CS = 0 và gửi một xung cao 0 xuống - thấp tới chân RDlấy dữ liệu ra của 804
6 Chân Vin (+) và Vin (-).
Đây là các đầu vào tơng tự vi sai mà Vin = Vin (+) - Vin (-) Thông ờng Vin (-) đợc nối xuống đất và Vin (+) đợc dùng nh đầu vào tơng tự đợc chuyển đổi về dạng số
th-7 Chân VCC.
Trang 12Đây là chân nguồn nuối +5v, nó cũng đợc dùng nh điện áp tham chiếu khi đầu vào Vref/2 (chân 9) để hở.
8 Chân Vref/2.
Chân 9 là một điện áp đầu vào đợc dùng cho điện áp tham chiếu Nếu chân này hở (không đợc nối) thì điện áp đầu vào tơng tự cho ADC 804 nằm trong dải 0 đến +5v (giống nh chân VCC) Tuy nhiên, có nhiều ứng dụng mà
đầu vào tơng tự áp đến Vin cần phải khác ngoài dải 0 đến 5v Chân Vref/2 ợcdùng để thực thi các điện áp đầu vào khác ngoài dải 0 - 5v Ví dụ, nếu dải
đ-đầu vào tơng tự cần phải là 0 đến 4v thì Vref/2 đợc nối với +2v
9 Các chân dữ liệu D0 – D7
Các chân dữ liệu D0 – D7 (D7 là bít cao nhất MSB và D0 là bít thấp nhất LSB) là các chân đầu ra dữ liệu số Đây là những chân đợ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 RDbị
đa xuống thấp Để tính điện áp đầu 12auk có thể sử dụng công thức sau:
buoc thuoc kich
10.Chân đất tơng tự và chân đất số
Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tơng tự
Đất tơng tự đợc nối tới đất của chân Vin tơng tự, còn đất số đợc nối tới đất củachân Vcc Lý do mà ta phải có hai đất là để cách ly tín hiệu tơng tự Vin từ các
điện áp ký sinh tạo ra việc chuyển mạch số đợc chính xác Trong phần trình bày của chúng ta thì các chân này đợc nối chung với một đất Tuy nhiên, trongthực tế thu đo dữ liệu các chân đất này đợc nối tách biệt
Từ những điều trên ta kết luận rằng các bớc cần phải thực hiện khi chuyển đổi dữ liệu bởi ADC 804 là:
a) Bật CS = 0 và gửi một xung thấp lên cao tới chân WRđể bắt đầu chuyển
đổi
b) Duy trì hiển thị chân INTR Nừu INTRxuống thấp thì việc chuyển đổi đợc hoàn tất và ta có thể sang bớc kế tiếp Nừu INTRcao tiếp tục thăm dò cho
đến khi nó xuống thấp
3 Kiểm tra ADC 804.
Chúng ta có thể kiểm tra ADC 804 bằng cách sử dụng sơ đồ mạch trên thiết lập này đợc gọi là chế độ kiểm tra chạy tự do và đợc nhà sản xuất khuyếncao nên sử dụng Hình 12.5 trình bày một biến trở đợc dùng để cắp một điện
áp tơng tự từ 0 đến 5V tới chân đầu vào
Vin(+) của ADC 804 các đầu ra nhị phân đợc hiển thị trên các đèn LEDcủa bảng huấn luyện số Cần phải lu ý rằng trong chế độ kiểm tra chạy tự do thì đầu vào CS đợc nối tới đất và đầu vào WRđợc nối tới đầu ra INTR Tuy nhiên, theo tài liệu của hãng National Semiconductor “nút WR và INTR phải
đợc tạm thời đa xuống thấp kế sau chu trình cấp nguồn để bảo đảm hoạt