Sinh viên không làm bài chuẩn bị theo đúng yêu cầu sẽ không được vào làm thí nghiệm và xem như vắng buổi thí nghiệm đó.. VÀO PHÒNG THÍ NGHIỆM SINH VIÊN PHẢI: 1.. Sinh viên làm hư hỏng má
Trang 1KHOA ðIỆN - ðIỆN TỬ
BỘ MÔN ðIỆN TỬ - VIỄN THÔNG
Tp.Hồ Chí Minh, tháng 4 - 2012
Trang 2NỘI QUY
PHÒNG THÍ NGHIỆM ĐIỆN-ĐIỆN TỬ
ĐIỀU I TRƯỚC KHI ĐẾN PHÒNG THÍ NGHIỆM SINH VIÊN PHẢI:
1 Nắm vững quy định an toàn của phòng thí nghiệm
2 Nắm vững lý thuyết và đọc kỹ tài liệu hướng dẫn bài thực nghiệm
3 Làm bài chuẩn bị trước mỗi buổi thí nghiệm Sinh viên không làm bài chuẩn bị theo đúng yêu cầu sẽ không được vào làm thí nghiệm và xem như vắng buổi thí nghiệm đó
4 Đến phòng thí nghiệm đúng giờ quy định và giữ trật tự chung Trễ 15 phút không được vào thí nghiệm và xem như vắng buổi thí nghiệm đó
5 Mang theo thẻ sinh viên và gắn bảng tên trên áo
6 Tắt điện thoại di dộng trước khi vào phòng thí nghiệm
ĐIỀU II VÀO PHÒNG THÍ NGHIỆM SINH VIÊN PHẢI:
1 Cất cặp, túi xách vào nơi quy định, không mang đồ dùng cá nhân vào phòng thí nghiệm
2 Không mang thức ăn, đồ uống vào phòng thí nghiệm
3 Ngồi đúng chỗ quy định của nhóm mình, không đi lại lộn xộn
4 Không hút thuốc lá, không khạc nhổ và vứt rác bừa bãi
5 Không thảo luận lớn tiếng trong nhóm
6 Không tự ý di chuyển các thiết bị thí nghiệm
ĐIỀU III KHI TIẾN HÀNH THÍ NGHIỆM SINH VIÊN PHẢI:
1 Nghiêm túc tuân theo sự hướng dẫn của cán bộ phụ trách
2 Ký nhận thiết bị, dụng cụ và tài liệu kèm theo để làm bài thí nghiệm
3 Đọc kỹ nội dung, yêu cầu của thí nghiệm trước khi thao tác
4 Khi máy có sự cố phải báo ngay cho cán bộ phụ trách, không tự tiện sửa chữa
5 Thận trọng, chu đáo trong mọi thao tác, có ý thức trách nhiệm giữ gìn tốt thiết bị
6 Sinh viên làm hư hỏng máy móc, dụng cụ thí nghiệm thì phải bồi thường cho Nhà trường và
sẽ bị trừ điểm thí nghiệm
7 Sau khi hoàn thành bài thí nghiệm phải tắt máy, cắt điện và lau sạch bàn máy, sắp xếp thiết
bị trở về vị trí ban đầu và bàn giao cho cán bộ phụ trách
ĐIỀU IV
1 Mỗi sinh viên phải làm báo cáo thí nghiệm bằng chính số liệu của mình thu thập được và nộp cho cán bộ hướng dẫn đúng hạn định, chưa nộp báo cáo bài trước thì không được làm bài kế tiếp
2 Sinh viên vắng quá 01 buổi thí nghiệm hoặc vắng không xin phép sẽ bị cấm thi
3 Sinh viên chưa hoàn thành môn thí nghiệm thì phải học lại theo quy định của phòng đào tạo
4 Sinh viên hoàn thành toàn bộ các bài thí nghiệm theo quy định sẽ được thi để nhận điểm kết thúc môn học
ĐIỀU V
1 Các sinh viên có trách nhiệm nghiêm chỉnh chấp hành bản nội quy này
2 Sinh viên nào vi phạm, cán bộ phụ trách thí nghiệm được quyền cảnh báo, trừ điểm thi Trường hợp vi phạm lặp lại hoặc phạm lỗi nghiệm trọng, sinh viên sẽ bị đình chỉ làm thí nghiệm và sẽ bị đưa ra hội đồng kỷ luật nhà trường
Trang 3Bài mở ñầu
Tổng quan về Proteus 7.7 v2
I.Tổng quan
Proteus là một chương trình mô phỏng các ứng dụng của mạch ñiện ,ñiện tử
.Chúng ta không cần phải làm mạch in cũng như gia công mạch ñiện mà vẫn có thể biết ñược chúng hoạt ñộng như thế nào
Trong thí nghiệm vi xử lý chúng tôi sẽ giới thiệu về phần mềm này và các bài tập ứng dụng của vi xử lý 89c51
II.Phần mềm Proteus
Trong phần này chúng tôi giới thiệu cho các bạn biết cách sử dụng phần mềm này như thế nào Mọi chi tiết các bạn có thể tham khảo qua mạng hay có thể gửi trao ñổi trực tiếp qua email: ngvandung85@gmail.com
Trang 4a.Giao diện
Các thành phần cơ bản của thanh công cụ
Phần 1: Sơ ñố kết nối của mạch
Hình linh
kiện
Tên linh
kiện
Trang 5III.Các bước ñể tạo mạch chạy mô phỏng trong Proteus
Bước 1: Lấy linh kiện trong Proteus
Bấm vào ñây ñể chọn lin kiện
Tên của thiết bị
Trang 6Các từ keywords cần nhớ
-ðiện trở : Resistor xxx (xxx là giá trị cần lấy )
-Tụ ñiện : Capacitor xxu (xx là giá trị cần lấy u là Micro )
Bước 2 : Lấy linh kiện sắp xếp theo sơ ñồ nguyên lý :
Các linh kiện ñiện tử
Hình linh kiện
Hình mạch in của linh kiện ,
Chọn linh kiện
Trang 7Bước 3 : Nối dây
Bước 4 : Cho mạch chạy ứng dụng
Nhấp chuột phải ñể lấy linh kiện
?1.Muốn xoay linh kiện ta phải làm sao ?
►Bấm nút phải tại linh kiện (Hãy quan sát chức năng Rotate và X-Mirror hay Y_Mirror )
Di chuyển cây bút tới
vị trị cần nối dây (thấy
cây bút thành màu xanh
) Bấm nút trái vào net
cần nối dây Kéo ñến vị
trí cần nối tiếp theo
bấm nút trái hoàn tất
việc nối dây
Cho mạch chạy ứng dụng
Trang 8?2 Thay ñổi giá trị của 1 linh kiện ( R hoặc C)
►
?3.Sử dụng label như thế nào ?
►
Nhấp ñúp trái chuột vào giá trị cần thay ñổi
ðiền giá trị cần thay ñổi
Trang 9Bài tập ứng dụng :
Bài 1: Lắp mạch như sau trong Proteus
:
Chọn chức năng label
Nhấp vào dây cần ñặt tên
ðiền tên cần ñặt
Trang 10Bài 2 : Thay R3 thành biến trở Dùng dao ñộng kí ño sóng (Lấy trong các thiết bị ño xem phần II )
Trigger
Chỉnh mức volt
Chỉnh thời gian
Trang 11Bài 1:
IN/OUT
I.Giới thiệu về 89c51 trong Proteus
Nhấp trái chuột vào vi xử lý
Dao ñộng của thạch anh Do ñó ta không cần mắc thạch anh cho mạch
Chứa file HEX ñể chạy vi xử lý
Trang 12II Trình biên dịch cho file asm
Ví dụ : Hiển thị số nhị phân 01011101 qua port 2
Trước tiên chúng ta sẽ lắp mạch như sau :
? Hãy tìm cách sử dụng Block Copy ñể vẽ mạch cho nhanh
Sau khi tạo xong phần cứng chúng ta tiến hành viết phần mềm
Bước 1 : Tạo file asm
Trang 13Sau ñó ñặt tên như sau :
Mở file mới tạo thành ,chúng ta tiến hành viết code cho vi xử lý
Trang 14Bước 1: Chọn Source/Add/Remove Source file
Ngôn ngữ biên dịch ASEM51
Chọn New Sau ñó chọn link ñến file asm cần biên dịch
Trang 15Bước 3:
Chọn RUN
Mở thư mục chứa file gốc ta ñược 3 file (1 file asm, 1 file lst, 1 file hex)
ðể ñọc file này ta chọn Open with …./ Notepad
Source File: E:\
Object File: E:\
Trang 16List File: E:\
Line I Addr Code Source
Sau khi tạo phần cứng và phần code xong chúng ta bắt ñầu cho chạy
Trước tiên chúng ta nạp file code vào Program File ( xem phần I )
File này dùng ñể kiểm tra xem có lỗi hay không Kiểm tra cẩn thẩn !!!!Nếu không mạch sẽ chạy sai
Trang 17IV.Nhập xuất dữ liệu :
Vẽ mạch như sau và thực hiện viết code với yêu cầu là nhập vào từ switch port 3 và xuất
ra từ port 2
Switch trong Protues có keywords là DIPSW-x (x là mấy công tắc )
ðiện trở thanh là Respack-x
Trang 18?Viết ñoạn code cho yêu cầu trên :
►
Trang 19
Bài tập áp dụng:
1 Viết ñoạn code làm cho LED sáng dần lên với thời gian delay 100ms?
2 Viết ñoạn code làm cho LED tắt dần lên với thời gian delay 100ms?
3 Viết ñoạn code làm cho led sáng dần lên rồi tắt dần ñi với thời gian delay 10ms?
4 Viết ñoạn code làm cho led sáng từ trong ra ngoài, rồi tắt dần ñi từ ngoài vào trong với thời gian delay 10ms?
Trang 20Bài 2:
HIỂN THỊ LED 7 ðOẠN
I Giới thiệu về LED 7 ñoạn
Có 2 loại Led 7 ñoạn như trên :
+ Cathode chung : thanh ñó ñược sáng nếu như mức vào của thanh là Vcc
+ Anode chung : thanh ñó ñược sáng nếu như mức vào của thanh là GND
Ví dụ :
Muốn hiển thị số 5 :
+ Cathode các thanh sáng là : acdfg hay 1011011
+Anode các thanh sáng là acdfg hay 0100100
IC-Giải mã led 7 ñoạn anode chung 7447 :
Trang 21Hoạt ñộng của IC tham khảo datasheet
II.Thực hành
Lắp mạch như sau và thưc hiện theo yêu cầu : ñếm từ 0-9 với thời gian delay là 1s Gơi ý thời gian delay 1 s ñược viết như sau :
(Dùng thạch anh 12Mhz )
Trang 22Vậy sau LAP3 ta có 10*100
Vậy sau LAP2 ta có 10*100*100
Vậy sau LAP1 ta có 10*100*100*10=1000000µs=1s
ðoạc code của bạn sẽ là :
Trang 23III.Led 7 ñoạn với chức năng counter (ñếm )
Giới thiệu về TMOD
ñộ
Chọn chế
ñộ
Bit mở cổng cho timer 1
C = counter
T=timer
Chọn chế
ñộ
Chọn chế
Trang 241 1 Tách timer
Giới thiệu về TCON ( Tự ñọc )
Yêu cầu :
+ Lắp mạch theo sơ ñồ trên
+ Hiển thị số lần bấm lên LED 7 ñoạn
ðoạn code của bạn là :
Trang 25
1 Viết ñoạn code hiển thị từ 0-99 sử dụng kĩ thuật tra bảng?
2 Viết ñoạn code hiển thị từ 0-99 sử dụng IC7447?
3 Viết ñoạn code hiển thị 4 số 1000-9999 sử dụng kĩ thuật quét LED 7 ñoạn?
Trang 26Bài 3:
LED MA TRẬN I.Giới thiệu
►Nhận xét : - Muốn ñiều khiển một hàng nào ñó ta cho hàng ñó nối với VCC
- Muốn ñiều khiển một cột nào ñó ta cho hàng ñó nối với GND II.Tiến hành kiểm tra led matrax
1.Kiểm tra led ma trân theo sơ ñồ sau:
Trang 272 Lắp mạch theo sơ ñồ sau :
?.Viết ñoạn code hiển thị chữ A lên led ma trận
Cột
Hàng
Trang 31III Ma trận chạy chữ
I Giới thiệu IC74HC595
- IC74595 là IC dịch SIPO (từ nối tiếp ra song song serial in parallei out)
- Các chân QA tới QH: các chân này ñưa tín hiệu ra ngoài khi có xung xuất (Latch clock), khi chưa có xung xuất thì tương ứng trong ñó có thanh ghi 8 bit lưu trữ giá trị sẽ xuất ra (xem sơ ñồ khối)
- Chân QH’ : dùng ñể ñẩy giá trị của bit dịch khi HC595 ñã ñẩy ra, luồng bit ñẩy vào theo sơ ñồ sau SER in QAQB…QHQH’
- Chân SER dữ liệu nối tiếp ñưa vào
- Chân SRCLK: dữ liệu muốn ñưa vào phải có xung vào ñể xác nhận
- Chân RCLK: dữ liệu muốn xuất ra ngoài thì phải có xung vào chân này
- Chân SRCLR: chân clear
- Chân OE cho phép dữ liệu xuất ra ngoài
Sơ ñồ chân
Nguyên lý hoạt ñộng
Sơ ñồ khối
Trang 34Bước 2: Xây dựng ñoạn code
Trang 35Bài tập 2: Chạy chữ A bằng 74595 với sơ ñồ mạch như trên
Xây dựng ñoạc code
Cách thô sơ:
Trang 36MOV R1,#6 MOV P2,#00010000B CALL HIENTHI MOV R1,#5 MOV P2,#00001000B CALL HIENTHI MOV R1,#4 MOV P2,#00000100B CALL HIENTHI MOV R1,#3 MOV P2,#00000010B CALL HIENTHI MOV R1,#2 MOV P2,#00000001B CALL HIENTHI DJNZ R2,L5 MOV R2,#200 L6:
MOV R1,#6 MOV P2,#00100000B CALL HIENTHI MOV R1,#5 MOV P2,#00010000B CALL HIENTHI MOV R1,#4 MOV P2,#00001000B CALL HIENTHI MOV R1,#3 MOV P2,#00000100B CALL HIENTHI MOV R1,#2 MOV P2,#00000010B CALL HIENTHI MOV R1,#1 MOV P2,#00000001B CALL HIENTHI DJNZ R2,L6
Trang 37MOV R7,#8 LAP:
RRC A MOV SERIAL,C CLR CLK NOP NOP NOP SETB CLK CLR LATCH NOP
NOP NOP SETB LATCH DJNZ R7,LAP RET
; -CHUONG TRINH HIEN THI RA
74595 -; GIA TRI HIEN THI VAO THANG GHI R1
-
; HANG TUONG UNG VAO R2
-
; - HIENTHI:
MOV A,R1 MOVC A,@A+DPTR CALL DICH
MOV R3,#200 DJNZ R3,$
RET BANG:
DB 83H,0F5H,0F6H,0F5H,83H,0FFH,0FFH END
Trang 38MOV R7,#8 LAP:
RRC A MOV SERIAL,C CLR CLK NOP NOP NOP SETB CLK CLR LATCH NOP
NOP NOP SETB LATCH DJNZ R7,LAP RET
; -CHUONG TRINH HIEN THI RA
74595 -; GIA TRI HIEN THI VAO THANG GHI R1
-
; HANG TUONG UNG VAO R2
-
; - HIENTHI:
MOV A,R1 MOVC A,@A+DPTR CALL DICH
MOV R3,#200 DJNZ R3,$
RET BANG:
DB 83H,0F5H,0F6H,0F5H,83H,0FFH,0FFH END
Trang 39Bài 4:
ADC 0804 / LCD 16x2
I.Giới thiệu về ADC
? Cõu hỏi : ADC là gỡ ? Chức năng
►Chíp ADC 804 là bộ chuyển đổi tương tự số trong họ các loạt ADC800 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 ADC0804 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 R và CLK IN nhưng không thể nhanh hơn 110às Các chân của ADC0804 đượ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 ADC0804 Để truy cập ADC0804 thì chân này phải ở mức thấp
Trang 402 Chân RD (đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp Cá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
ADC0804 Khi CS = 0 nếu một xung cao - xuống - thấp được áp đến chân RD thì đầ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 WR tạ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
4 Chân CLK IN và CLK R.Chân CLK IN là một chân đầu vào được nối tới một nguồn
đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian Tuy nhiên 804 cũng
có một máy tạo xung đồng hồ Để sử dụng máy tạo xung đồng hồ trong (cũng còn đợc gọi là máy tạo đồng hồ riêng) của 804 thì các chân CLK IN và CLK R được nối tới một tụ
điện và một điện trở Trong trường hợp này tần số đồng hồ được xác định bằng biểu thức:
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à 110às
II.Quỏ trỡnh ủọc giỏ trị ADC0804
Trang 41Quá trình cho phép ADC hoạt ñộng là :
1 Cho CS xuống mức thấp
2 Cho WR xuống mức thấp
4 Cho WR lên mức cao
5 Cho CS lên mức cao
6 Chờ tín hiệu INTR xuống mức thấp – dấu hiệu nhận biết ñã chuyển ñổi xong
? Dựa vào hướng dẫn trên bạn hãy viết code cho quá trình biến ñổi trong ADC0804 ?
Trang 42Quá trình ñọc giá trị ADC 0804
1 Cho CS xuống mức thấp
2 Cho RD xuống mức thấp
3 ðọc giá trị trả về
4 Cho RD lên mức cao
5 Cho CS lên mức cao
? Dựa vào hướng dẫn trên bạn hãy viết code cho quá trình ñọc giá trị từ ADC0804 ?
Trang 44Chú ý : Vì ADC0804 có 8 bit nên tạo ra 2 8 =256 mức ,và LM35 tạo ñiện áp 10mV cho 1 o C Vì vậy ñể tạo 0-2.56V thì Vref/2=1.28V Tham khảo Datasheet của LM35 ñể hiểu rõ vì sao ?
ðoạn code mẫu như sau :
JB INTR_ADC,WAIT RET
READ:
CLR CS_ADC CLR RD_ADC NOP
MOV A,P2 SETB RD_ADC SETB CS_ADC RET
HIENTHI:
MOV B,#10 DIV AB SWAP A ORL A,B MOV P3,A RET
END
Trang 45IV.Giao tiếp LCD
Các chân của LCD :
LCD có 2 chế ñộ hoạt ñộng là chế ñộ 8 bit và chế ñộ 4 bit Ở ñây chúng ta chỉ xem xét chế ñộ 8 bit còn chế ñộ 4 bít các bạn có thể tham khảo qua datasheet Bây giờ chúng ta sẽ xem xét mã lệnh của LCD
Trang 47ðịa chỉ con trỏ trên LCD là :
A.Quá trình viết câu lệnh lên LCD
Trước tiên chúng ta cần phân biệt thế nào là câu lệnh ,thế nào là dữ liệu ?
Câu lệnh là chúng ta muốn thiết lập LCD như thế nào, chế ñộ ra sao,…Còn dữ liệu là các chữ các số chúng ta muốn hiển thị lên LCD
Sự khác biệt trong quá trình lập trình là khi viết câu lệnh chúng ta ñặt RS=0 Ngược lại RS=1 là chúng ta ñang viết dữ liệu vào LCD
ðể viết câu lệnh lên LCD chúng ta làm theo các bước sau:
1.Viết dữ liệu ra Port
2.ðặt RS = 0
Trang 48Dựa vào trên code của bạn là :
B.Quá trình viết dữ liệu lên LCD
Các bước ñể viết dữ liệu lên LCD :
1 Viết dữ liệu ra port
2.Cho RS=1
3.Cho RW=0
4.Cho EN=1
5.Cho EN=0
Trang 49Các bạn xem lại bảng mã lệnh ở trên
Ví dụ như khi bạn viết lệnh sau :
MOV A,#01
CALL viếtcâulệnh
Có nghĩa là bạn ñang yêu cầu LCD xóa màn hình
Bây giờ chúng ta sẽ xem xét 1 vài câu lệnh thiết lập bắt buộc cho LCD
Ví dụ bạn viết MOV A,#3EH có nghĩa là
Giá trị mặc ñịnh
Trang 50? Tương tự bạn có hãy giải thích các câu lệnh sau :
06
0E
V.Phần thực hành
Lắp mạch sau :
Trang 53I.LCD và kĩ thuật tra bảng
Nêu bạn muốn viết mỗi chuỗi dữ liệu lên LCD thì bạn phải MOV A,#’kí tự’ rất nhiều lần gây tốn bộ nhớ và dài dòng
Ở ñây chúng tôi muốn giới thiệu cho các bạn kĩ thuật tra bảng dễ dàng sữ dụng và thực hành
Chúng ta chỉ cần thêm các câu lênh sau vào phần MAIN