MỤC LỤCLỜI NÓI ĐẦU2CHƯƠNG I: GIỚI THIỆU VỀ CÁC LINH KIỆN ĐƯỢC SỬ DỤNG3I.IC 80513II.LED 7 THANH8CHƯƠNG II: SƠ ĐỒ THUẬT TOÁN12CHƯƠNG III : CHƯƠNG TRÌNH ĐIỀU KHIỂN19KẾT LUẬN38Tài liệu tham khảo39
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG I: GIỚI THIỆU VỀ CÁC LINH KIỆN ĐƯỢC SỬ DỤNG 3
I IC 8051 3
II LED 7 THANH 8
CHƯƠNG II: SƠ ĐỒ THUẬT TOÁN 12
CHƯƠNG III : CHƯƠNG TRÌNH ĐIỀU KHIỂN 19
KẾT LUẬN 38
Tài liệu tham khảo 39
Trang 2LỜI NÓI ĐẦU
Trong những năm gần đây, những tiến bộ khoa học kĩ thuật đã đóng góp rất nhiều vào trong các lĩnh vực đời sống xã hội, khoa học quân sự Cùng với đó là những tiến bộ vượt bậc về công nghệ và giải pháp, trong đó sự hiểu biết và khả năng ứng dụng kĩ thuật vi xử lý nói chung và kĩ thuật vi điều khiển nói riêng là điều rất cần thiết với công nhân và kĩ sư hiện nay.
Được sự giúp đỡ và chỉ bảo nhiệt tình của thầy Phạm Văn Hùng chúng
em đã thực hiện bài tập lớn môn Vì Xử Lý về ứng dụng của họ vi điều khiển
8051 Bài tập lớn đã giúp chúng em có một cái nhìn tổng quan về môn học vi xử lý cũng như kỹ thuật vi xử lý mà chúng em gặp phải trong quá trình làm việc sau nay.
Mặ dù đã cố găng hết sức nhưng do kiến thức có hạn cũng như chưa có kinh nghiệp thực tế nên bài tập này khó tránh khỏi còn nhiều thiếu sót, chúng
em rất mong nhân được những ý kiến đóng góp quý báu của thầy và các thầy
cô trong khoa để chúng em có thể rút ra đươc kinh nghiệm và có thể hoàn thành bài tập lớn này một cách tốt hơn.
Trang 3CHƯƠNG I: GIỚI THIỆU VỀ CÁC LINH KIỆN ĐƯỢC SỬ DỤNG
I IC 8051
8051 là một bộ vi xử lí có 8 bit có nghĩa là CPU chỉ có thể làm việc với
8 bit tại một thời điểm Các dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lí.
Các đặc điểm của 8051 được tóm tắt như sau:
4 KB ROM bên trong
12 Byte RAM nội.
4 Port xuất / nhập I/O 8 bit
Giao tiếp nối tiếp
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại
Xử lí Boolean (hoạt đông trên bit đơn)
210 vị trí nhớ có thể định vị bit
4μs cho hoạt động nhân hoặc chia.
Cấu trúc IC 8051, chức năng từng chân
Trang 41 Vcc (chân 40):
- Cung cấp nguồn cho chip
- +5V
2.GND (chân 20): đất
3 XTAL1 & XTAL2 (chân 19, 18)
- 2 chân cung cấp xung clock ngoài
Trang 5- Cách 1: dao động dùng thạch anh
Tần số thạch anh thường dùng trong các ứng dụng là: 11.0592 (giao tiếp với cổng COM máy tính) và 12Mhz Tần số tối đa là 24Mhz tần số càng lớn VĐK xử lý càng nhanh.
Dao động của thạch anh
- Cách 2: dao động từ nguồn xung clock TTL bên ngoài
- Quan hệ giữa chu kỳ máy và XTAL
4 RST (chân 9): reset
- input & kích hoạt mức cao
- Để đảm bảo hoạt động reset xảy ra, xung kích khởi phải kéo dài ít nhất là 2 chu kỳ máy
- Giá trị các thanh ghi chịu tác động bởi hoạt động reset
- Mạch reset có chống rung
5 /EA (chân 31): External Access
- /EA nối mass chỉ định rằng code lưu trên bộ nhớ ngoài
6 /PSEN & ALE (chân 29 và 30) dùng cho ROM ngoài
- Với 8051, 8031, 8032 thì /EA nối Vcc
- “/”: chỉ định tác động mức thấp
Trang 6- Output, cho phép truy xuất bộ nhớ chương trình ngoài
- Nối tới chân /OE của ROM/EPROM
- Khi thực thi chương trình ở ROM nội, /EA được gán mức 1, (khi đó /PSEN được tự động giữ ở mức 1)
b ALE (pin 30):Address Latch Enable
- Là chân output cho phép chốt địa chỉ để giải đa hợp (de-multiplexing) bus dữ liệu và bus địa chỉ
- ALE xuất tín hiệu để chốt địa chỉ (byte thấp địa chỉ 16-bit) vào 1 thanh ghi ngoài trong suốt nửa đầu của chu kỳ bộ nhớ (memory cycle) Trong nửa chu
kỳ bộ nhớ còn lại, P0 sẽ xuất/nhập dữ liệu
- ALE có f=1/6fclock.
- Có 1 ngoại lệ: trong thời gian thực thi lệnh MOVX, một xung ALE bị bỏ qua.
7 Cổng I/O: P0, P1, P2, & P3 Mỗi cổng: 8 chân.
Trang 7Mỗi cổng có 8 chân
Đánh tên P0.X (X=0,1, ,7), P1.X, P2.X, P3.X
Ex:P0.0 là bit 0 (LSB) của P0
Ex:P0.7 là bit 7 (MSB) của P0
8 bit này cấu thành 1 byte
Mỗi cổng có thể được dùng như input hay output
Riêng cổng 3 có hai chức năng:
P3.0-RxD: chân nhận tín hiệu nối tiếp khi giao tiếp RS232 (cổng COM) P3.1-TxD: phân truyền dữ liệu khi giao tiếp RS232
P3.2-INTO: intertupt 0, ngắt ngoài 0.
P3.3-INT1: interrupt 1, ngắt ngoài 1.
P3.4-T0: timer0, đầu vào timer 0.
P3.5-T1: timer1, đầu vào timer 1.
P3.6-WR: Write, điều khiển ghi dữ liệu.
P3.7-RD: read, điều khiển đọc dữ liệu.
Trang 8II LED 7 THANH
Led 7 thanh được dùng nhiều trong các mạch hiển thị thông báo, hiển thị số các ký tự đơn giản … Led 7 thanh được cấu tạo từ các Led đơn sắp xếp theo các thanh nét để có thể biểu diễn các chữ số đơn giản từ 0 đến 9 và hay như A đến F Tùy vào kích thước của số và ký tự mà mỗi thanh được cấu tạo bởi 1 hay nhiều Led đơn Các Led đơn đó được ghép và được đặt tên bằng các chữ cái a đến g và có 1 dấu chấm dot (dấu chấm này có thể sáng hay tắt thì tùy theo yêu cầu) được tạo bởi 1 led đơn Qua đó người ta chỉ cần 8 bit tương ứng với 8 led đơn để điều khiển được để hiển thị số từ 0 đến 9 hoặc A đến F Chia led thành 2 loại Anode (cực +) chung và Cathode (cực -) chung Đầu chung của led được nối với +Vcc nếu là loại Anode chung, các chân còn lại dùng để điều khiển trạng thái led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0 Khi nối Cathode chung thì đầu chung sẽ được nối xuống Ground (Mass),các chân còn lại dùng để điều khiển trạng thái tắt của led đơn Led chỉ sáng khi tín hiệu đặt vào các chân này bằng 1.
Hình ảnh led 7 thanh
Trang 9Sơ đồ chân đấu nối của 2 loại led
Vì led chứa bên trong nó các led đơn nên khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA đến 20mA để bảo vệ led Nếu kết nối với nguồn 5V thì có thể hạn dòng bằng điện trở 330Ω trước các chân tín hiệu điều khiển.
Sơ đồ được bố trí như sau:
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân tín hiệu a điều khiển led a sáng tắt, ngõ vào chân b để điều khiển led
b Tương tự với các chân còn lại
Kết nối với Vi điều khiển
Trang 10Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường được gọi là "mã hiển thị led 7 đoạn" Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode (cực +) chung và mã dành cho led 7 đoạn có Cathode (cực -) chung Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí
b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân
b và c điện áp là 0V (mức 0) các chân còn lại được đặt điện áp là 5V (mức 1), nếu sử dụng led 7 đoạn có Cathode chung thì điện áp (hay mức logic) hoàn toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V (mức 1) Bảng mã hiển thị led 7 đoạn:
Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
Dữ liệu xuất có dạng nhị phân như sau: hgfedcba
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn sáng ở mức 0):
Trang 12Máy tính (10ms)
Quét bàn phím
Số lần ấn
Xử lí phím
Biến đồi HEX→BCD
Hiển thị
RETI
CHƯƠNG II: SƠ ĐỒ THUẬT TOÁN
Trang 13Quét bàn phím
Quét hàng
Cột = 1 Hàng = 0
Cột 1=0
Cột 2=0
Cột 3=0
Cột 4=0
MC=0EH
MC=0DH
MC=0BH
MC=07H Hàn
g 1=0 Hàn
g 2=0 Hàn
g 3=0 Hàn
g 4=0
MH=E0H MH=D0H
Trang 14MP=BDH
Phím 1 Setb ANF Setb SOF Phím 2 Setb ANF Setb SOF Phím 3 Setb ANF Setb SOF Phím 4 Setb ANF Setb SOF Phím 5 Setb ANF Setb SOF Phím 6 Setb ANF Setb SOF Phím 7 Setb ANF Setb SOF Phím 8 Setb ANF Setb SOF Phím 9 Setb ANF Setb SOF Phím 0 Setb ANF Setb SOF
Đ S
Trang 15MP=B7H Phím bằng
Setb BANGF
Phím cộng Setb CONGF Setb CTNCF
Phím trừ Setb TRUF Setb CTNCF
Phím chia Setb CHIAF Setb CTNCF
Phím nhân Setb NHANF Setb CTNCF
Trang 16Số lần ấn
SOLANAN
DAANF=0
ANF = 1 ANF = 0
INC LANAN DAANF = 1 DAANF = 1
Trang 17Xử lý phím
XULYPHIM
SOF=1
SH1F=1CTNCF=1
SH1=P0+P1.10+
P2.100+P3.1000 XL=? YL=?
Nhập số hạng 2 SH2=P0+P1.10+
P2.100+P3.1000 XL=? YL=?
RET
S Đ
Trang 18HIENTHI Hiển thị
Từ BCD tra mã 7 thanh
Hiển thị Dn
n = n + 1
RET S
Đ
Trang 19CHƯƠNG III : CHƯƠNG TRÌNH ĐIỀU KHIỂN
;========================================================
ORG 0000H ; VECTOR RESET
LJMP INIT ; NHAY TOI CHUONG TRINH KHOI TAO
ORG 0003H ; VECTOR NGAT NGOAI EX0
ORG 002BH ; VECTOR NGAT TRAN TF2
Trang 21; VOI CHU KI NGAT LA 10s
Trang 28;================================================================DIV16:
Trang 30ADD a,YL ;cong hai byte thap
Trang 31MOV ZL,a ;luu lai ket qua
ADDC a,YH ;cong hai byte cao
MOV ZH,a ;luu lai ket qua
;==============================================================QUETBANPHIM:
Trang 36LCALL HEXTOBCD
YY:
RET
Trang 37Mạch mô phỏng trên Proteus
Trang 38KẾT LUẬN
Qua việc thực hiện bài tập lớn này chúng em đã tìm hiểu thêm được khá nhiều về bộ môn vi xử lý nói chung và về IC 8051 nói riêng Chúng em thấy được rằng việc sử dụng IC 8051 có rất nhiều hiệu quả và không quá phức tạp Cùng với việc sử dụng phần mềm mô phỏng Proteus thì việc thực hiện để đưa
ra kết quả chính xác theo đúng yêu cầu càng dễ dàng hơn rất nhiều Tuy vậy
do chưa có nhiều thời gian nghiên cứu nên không thể tránh khỏi những thiếu sót Cuối cùng, một lần nữa chúng em xin cảm ơn sự chỉ bảo và giúp đỡ tận
tình của thầy giáo Phạm Văn Hùng đã giúp chúng em hoàn thiện bài tập lớn
này.
Trang 39Tài liệu tham khảo
1 Giáo trình Kỹ Thuật Vi Xử Lý (2011), Trường Đại Học Công Nghiệp Hà Nội, Đỗ Duy Phú
2 Tài liệu trên mạng