• 8 đường dữ liệu D0-D7 chứa dữ liệu hiển thị hoặc lệnh điều khiển LCD được ghi vào LCD thông qua vi mạch chốt 74x573, trong đó tín hiệu cho phép chốt CS được tạo ra từ mạch giải mã địa
Trang 1ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 21 Giao tiếp với LCD
2 Giao tiếp A/D
3 Giao tiếp D/A
4 Động cơ bước
Nội dung
Trang 31 Giao tiếp với LCD
2 Giao tiếp A/D
3 Giao tiếp D/A
4 Động cơ bước
Nội dung
Trang 5Giới thiệu
• Phần lớn các module LCD sử dụng giao tiếp 14 chân
trong đó có 8 đường dữ liệu, 3 đường điều khiển và 3
đường cấp nguồn Kết nối được bố trí dưới dạng 1 hàng
14 chân hoặc 2 hàng 7 chân.
Trang 6Chức năng các chân của LCD
Chân số Tên Chức năng
7 D0 Bit 0 của dữ liệu
8 D1 Bit 1 của dữ liệu
9 D2 Bit 2 của dữ liệu
10 D3 Bit 3 của dữ liệu
11 D4 Bit 4 của dữ liệu
12 D5 Bit 5 của dữ liệu
• Khi RS = 0 thì dữ liệu ghi vào LCD
được hiểu là các lệnh, dữ liệu đọc từ
LCD được hiểu là trạng thái của nó
• Chân 5 là đường điều khiển đọc
ghi R/nW, mức thấp sẽ cho phép ghi
vào LCD, mức cao cho phép đọc ra
từ LCD Chân 6 là đường điều khiển
cho phép E Các chân còn lại chứa
dữ liệu 8-bit vào hoặc ra LCD
Trang 7Lệnh điều khiển LCD
Command (Lệnh)
RS RW Nhị phân Hex
D7 D6 D5 D4 D3 D2 D1 D0
NOP(No operation = không làm gì cả)
0 0 0 0 0 0 0 0 0 0 00 Clear display(xóa hiển thị) 0 0 0 0 0 0 0 0 0 1 01 Display & Cursor home
(hiển thị và đặt cursor ở góc trái phía trên)
0 0 0 0 0 1 D/C R/L x x 10 đến 1F
Function set (Đặt chức năng)
Trang 8Chú thích
I/D: 1 =Increment * , 0=Decrement
S: 1 = Display shift on, 0 = Display shift off *
D: 1 = Display on, 0 = Diaplay off *
U: 1 = Cursor underline on, 0=Underline off *
B: 1 = Cursor blink on, 0 = cursor blink off *
D/C: 1 = Display shift, 0 = cursor move
R/L: 1 = Right shift, 0 = Left shift 8/4: 1 = 8 bit interface * , 0 = 4 bit interface 2/1: 1 = chế độ 2 hàng, 0 = chế độ 1 hàng *
10/7: 1=5x10 dot format, 0=5x7 dot format *
x = don’t care * = đặt ban đầu
Trang 9Bảng ký tự chuẩn của
LCD
Trang 10Địa chỉ trên LCD 16x2
Trang 11Kết nối phần cứng
• LCD được thiết kế để hoạt động với
cơ chế 3 bus
• 8 đường dữ liệu D0-D7 chứa dữ liệu
hiển thị hoặc lệnh điều khiển LCD được
ghi vào LCD thông qua vi mạch chốt
74x573, trong đó tín hiệu cho phép chốt
CS được tạo ra từ mạch giải mã địa chỉ
Trang 12Ví dụ
• Viết chương trình hiển thị “Hello World” lên
màn hình LCD
Trang 13Chương trình chính
ORG 2000H
EN BIT P3.4
RS BIT P3.5MOV TMOD, #01HLCALL LCD_INIT
MOV R1, #0HTHI:
MOV A, R1MOV DPTR, #MESSAGEMOVC A, @A+DPTR
CALL WR_DATACALL DELAY_400MSINC R1
CJNE R1, #12, HTHISJMP $
MESSAGE:
DB 'Hello World!'
Trang 14Các chương trình con
;; Chuong trinh con khoi dong LCD
LCD_INIT:
CLR ENCLR RSCALL DELAY_1SMOV DPTR, #8000HMOV A, #38H ; 8bit data + 2line + 5*7LCALL WR_INSTR
MOV A, #0EH ; Display on + Cursor onLCALL WR_INSTR
MOV A, #06H ; Increase the cursor after each byte written to displayLCALL WR_INSTR
MOV A, #80H ; Cursor to addr 0LCALL WR_INSTR
MOV A, #01H ; Clear displayLCALL WR_INSTR
LCALL DELAY_4MS
Trang 15; Chuong trinh con write instruction
WR_INSTR:
CLR RSSETB ENMOVX @DPTR, AACALL DELAY_160USCLR EN
RET
; Chuong trinh con write dataWR_DATA:
SETB RSSETB ENMOV DPTR, #8000HMOVX @DPTR, AACALL DELAY_160USCLR EN
RET
Trang 16Chương trình con delay
; Chuong trinh con tao DELAY
DELAY_160US:
PUSH 03MOV R3, #80DJNZ R3, $POP 03RET
DELAY_4MS:
CLR TR0MOV TH0, #HIGH(-4000)MOV TL0, #LOW(-4000)SETB TR0
JNB TF0, $CLR TF0RET
DELAY_400MS:
PUSH 04MOV R4, #100LOOP1:
CALL DELAY_4MSDJNZ R4, LOOP1POP 04
RETDELAY_1S:
PUSH 04MOV R4, #250LOOP2:
CALL DELAY_4MSDJNZ R4, LOOP2POP 04
RET
Trang 17A13 A14 A15
GND VDD
XTAL2 18
XTAL1 19
RST 9
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15
AD[0 7]
A[8 15]
ALE 30
EA 31PSEN 29
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
U1
8051 PROGRAM=lcd.hex
D0
3 Q0 2 D1
4
Q1 5D2
7 Q2 6 D3
8 Q3 9 D4
13 Q4 12 D5
14 Q5 15 D6
17
Q6 16D7
18 Q7 19 OE
1 LE 11
1
U3:A
74LS28
A 1 B 2 C 3 E1 6 E2 4 E3 5
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
U4
Trang 18Bài tập
Bài tập 1: Viết chương trình con khởi tạo LCD chế
8-bit, 2-line, con trỏ bắt đầu ở dòng thứ 2 và xóa
màn hình.
Bài tập 2: Viết chương trình hiển thị
Hello World!
My name is David
Trang 191 Giao tiếp với LCD
2 Giao tiếp A/D
3 Giao tiếp D/A
4 Động cơ bước
Nội dung
Trang 20Giới thiệu
• Vi mạch ADC (Analog to Digital Converter) được sử dụng
để chuyển đổi các tín hiệu từ dạng tương tự sang dạng số.
• Tín hiệu tương tự là các tín hiệu liên tục trong miền thời
gian và biên độ.
Trong thực tế, hầu hết các tín hiệu
vật lý đều tồn tại dưới dạng tương
tự Muốn xử lý được các tín hiệu
này bằng các hệ thống số thì cần
phải chuyển đổi các tín hiệu tương
tự này sang dạng số.
Trang 21Ứng dụng của ADC
Trang 22Phương trình chuyển đổi ADC
Trang 23Đặc tính vào ra của ADC
Trang 24Lấy mẫu tín hiệu tương tự
Trang 25Lượng tử hóa tín hiệu đã lấy mẫu
Trang 26Các thông số của ADC
Trang 27Vi mạch ADC 0809
• Là thiết bị CMOS với bộ chuyển đổi từ
tương tự sang số 8-bit và bộ logic
điều khiển tương thích với các loại vi
xử l{.
• Bộ ADC 8-bit sử dụng kỹ thuật chuyển
đổi xấp xỉ liên tiếp.
• Thiết bị này loại trừ khả năng hiệu
chỉnh điểm 0 bên ngoài và hiệu chỉnh
độ lớn tự nhiên Dễ dàng tương thích
với các loại vi xử l{.
• ADC 0809 cho tốc độ và độ chính xác
cao, tối thiểu khả năng phụ thuộc vào
nhiệt độ, tiêu thụ ít năng lượng.
Trang 29Đặc điểm nổi bật
• Độ phân giải: 8-bit
• Tổng sai số chưa hiệu chỉnh: ±1/2 LSB and ± 1 LSB
• Nguồn cung cấp: 5V DC
• Công suất thấp: 15mW
• Thời gian chuyển đổi: 100us
Trang 30Sơ đồ mạch tham khảo
• ADC0809 được thiết kế để giao tiếp với 8051 thông qua cơ chế 3 bus.
• Để chọn kênh, 3 đường địa chỉ thấp của bus địa chỉ (A0, A1, A2) đã được
sử dụng Như vậy, người lập trình có thể truy xuất đến 8 địa chỉ thấp nhất của nCS2 để truy xuất đến 8 kênh này.
Trang 31;Chinh xac la 5.1DIV AB
ANL A, #0EFHORL A, #0E0HCALL HTHISJMP LAP
Trang 32;Cac chuong trinh con
HTHI:
MOV DPTR, #0000HMOVX @DPTR, ACALL DELAY_1MSRET
DELAY_100US:
PUSH 02MOV R2, #50DJNZ R2, $POP 02RET
DELAY_1MS:
PUSH 05HMOV R5, #1LOOP1:
MOV TH0, #HIGH(-1000)MOV TL0, #LOW(-1000)SETB TR0
JNB TF0, $CLR TF0CLR TR0DJNZ R5, LOOP1POP 05H
RET END
Trang 331 Giao tiếp với LCD
2 Giao tiếp A/D
3 Giao tiếp D/A
4 Động cơ bước
Nội dung
Trang 34Giới thiệu
• Vi mạch chuyển đổi DAC được sử dụng để chuyển tín
hiệu từ dạng số sang dạng tương tự.
• DAC thường được dùng để tạo ngõ ra giao tiếp giữa hệ thống số với thế giới analog bên ngoài.
• Tín hiệu tương tự có thể là điện áp hay dòng điện.
• Ngõ vào số có thể được đọc vào nối tiếp hoặc song
song
Trang 35Phương trình chuyển đổi DAC
Trang 36Ví dụ DAC
Trang 37Các thông số của DAC
Trang 38Các thông số của DAC
Trang 39DAC MCP4922
• Vi mạch DAC MCP4922 là vi mạch chuyển đổi số sang tương tự 12-bit dùng giao tiếp SPI của
Microchip.
Trang 40DAC MCP492X
Trang 41Lệnh ghi (Write command)
Trang 42Kết nối tiêu biểu
Trang 43Mạch giao tiếp 8051
Vi mạch MCP4922 được thiết kế giao tiếp với MCU thông qua giao tiếp SPI
Vì tín hiệu điều khiển MCP4922 được kết nối trực tiếp đến các bit của port 1 nên các lệnh cho phép thao tác trên thanh ghi P1 Ví dụ đoạn mã sau có thể được
dùng để dịch 1 bit dữ liệu từ 8051 vào MCP4922
CLR SCK ; tạo xung clock MOV SDI, C ; dịch cờ C
SETB SCK ; vào MCP4922
Trang 441 Giao tiếp với LCD
2 Giao tiếp A/D
3 Giao tiếp D/A
4 Động cơ bước (Step Motor)
Nội dung
Trang 45Giới thiệu
• Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau
thành các chuyển động góc quay hoặc các chuyển động của rôto
có khả năng cố định rôto vào các vị trí cần thiết.
• Ưu điểm chính của động cơ bước là việc điều khiển vị trí mà
không cần tín hiệu hồi tiếp giống như động cơ DC.
• Rất hữu ích trong việc điều khiển vị trí chính xác của robot.
• Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.
Trang 46Hoạt động
• Động cơ bước không quay theo cơ chế thông thường,
chúng quay theo từng bước nên có độ chính xác rất cao
về mặt điều khiển học.
• Chúng làm việc nhờ các bộ chuyển mạch điện tử đưa
các tín hiệu điều khiển vào stato theo thứ tự và một tần
số nhất định
• Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.
Trang 47Hoạt động
Các đầu nối trung tâm thường được nối vào cực dương nguồn cấp,
và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ trường
tạo bởi cuộn đó
Trang 48Ứng dụng
• Trong điều khiển chuyển động kỹ thuật số, động cơ bước là một cơ cấu chấp hành đặc biệt hữu hiệu bởi nó có thể thực hiện trung thành các lệnh đưa ra dưới dạng số.
• Động cơ bước được ứng dụng nhiều trong ngành Tự động hoá, chúng được ứng dụng trong các thiết bị cần điều
khiển chính xác
– Ví dụ: Điều khiển robot, điều khiển tiêu cự trong các hệ quang học, điều
khiển định vị trong các hệ quan trắc, điểu khiển bắt, bám mục tiêu trong các khí tài quan sát, điều khiển lập trình trong các thiết bị gia công cắt gọt, điều khiển các cơ cấu lái phương và chiều trong máy bay
• Trong công nghệ máy tính, động cơ bước được sử dụng
cho các loại ổ đĩa cứng, ổ đĩa mềm, máy in
Trang 49Mạch điều khiển động cơ bước
m1
m3
m4 m2
m1 m2 m3 m4
1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8
1C 182C 173C 164C 155C 146C 137C 128C 11
ALE 30
EA 31PSEN 29RST 9
P0.0/AD0 39
P0.1/AD1 38
P0.2/AD2 37
P0.3/AD3 36
P0.4/AD4 35
P0.5/AD5 34
P0.6/AD6 33
P0.7/AD7 32
P1.0 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.7 8
P3.0/RXD 10
P3.1/TXD 11
P3.2/INT0 12
P3.3/INT1 13
P3.4/T0 14
P3.7/RD
17 P3.6/WR
16 P3.5/T115
P2.7/A15 28
P2.0/A8 21
P2.1/A9 22
P2.2/A10 23
P2.3/A11 24
P2.4/A12 25
P2.5/A13 26
P2.6/A14 27
Trang 50Tài liệu tham khảo
• Hồ Trung Mỹ, Vi xử l{, Nhà xuất bản Đại học
Quốc Gia Tp HCM - 2003
• I Scott MacKenzie , The 8051 Microcontroller,
2nd Edition, Prentice-Hall, 1995
• Slide bài giảng thầy Hồ Trung Mỹ
• Võ Kz Châu, tài liệu thí nghiệm Vi xử l{
• Và nhiều tài liệu trên mạng