Bài Tập Lớn môn Vi điều khiển,Điều khiển led quay 8 hiệu ứng.led 7 thanh quay nhiều hiệu ứng.tài liệu hướng dẫn làm mô phỏng trên proteus, .................................................................
Trang 1Lời nói đầu
Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đặc biệt là ngành Kỹ thuật Điện
tử, đời sống xã hội ngày càng phát triển hơn dựa trên những ứng dụng của khoa học vàođời sống Vì vậy mà những công nghệ điện tử mang tính tự động ngày càng được ứngdụng rộng rãi Trong đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển Các bộ viđiều khiển đang đựơc ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnhvực kỹ thuật và đời sống xã hội Hầu hết là các thiết bị được điều khiển tự động từ cácthiết bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiểnnhằm đem lại sự tiện ghi cho con người trong thời đại công nghiệp hóa hiện đại hóa.Cùng với đó hoạt động sản xuất và quảng cáo bằng đèn LED cũng ngày càng phát triển Nhóm em đã chọn đề tài: “ Ứng dụng họ vi điều khiển 8051 xây dựng hệ thống điềukhiển 8 LED phát quang dưới nhiều chế độ khác nhau ”, đề tài gồm có:
Chương 1: CƠ SỞ LÝ THUYẾT
Chương 2: XÂY DỰNG HỆ THỐNG
Chương 3: KẾT LUẬN
Qua một thời gian tìm hiểu và làm bài tập lớn cùng với sự chỉ bảo, hướng dẫn tận tình của thầy ĐỖ DUY PHÚ thì nhóm em đã hoàn thành bài tập lớn này Tuy nhiên do vốn hiểubiết còn có hạn và chưa có kinh nghiệm nên bài tập lớn của nhóm em còn nhiều thiếu xót
và hạn chế mong thầy chỉ bảo để bài tập được hoàn thiện hơn
Em xin chân thành cảm ơn !
MSV: hoàng : 0841040497
Trung : 0841040206
Nhóm sinh viênNHÓM 01
Trang 2CHƯƠNG I : CƠ SỞ LÝ THUYẾT
I Mục đích và yêu cầu
Ứng dụng họ vi điều khiển 8051 xây dựng hệ thống điều khiển 8 LED phát quang hoạt động dưới nhiều chế độ khác nhau Hệ thống gồm có :
+ 01 Vi điều khiển 89C51RD2
+ Mạch truyền thông chuẩn RS_232 ( Dùng vi mạch MAX232)
+ Ghép nối 08 LED với vi điều khiển
+ Ghép nối 4 phím bấm
+ Ghép nối 02 cảm biến hồng ngoại
Hoạt động : Khi ấn một trong các phím bấm hoặc tác động vào cảm biến hồng ngoại thì
các LED sẽ quay theo các chế độ khác nhau, khi cảm biến hồng ngoại tác động thì sẽ dừng quay
II Tổng quan về họ Vi điều khiển 8051
1 Cấu trúc và chức năng các khối trong 8051
Trang 3Hình 1: Sơ đồ cấu trúc của 8051
- ROM: là loại bộ nhớ không mất dữ liệu khi mất nguồn cung cấp, được gọi là bộ nhớ chương trình bên trong có dung lượng 4Kbytes dùng để lưu giữ các mã lệnh của chương trình (phần mềm ứng dụng)
- RAM: bộ nhớ dữ liệu bên trong có dung dung lượng 128 Bytes đối với 8051,
256 Bytes đối với 8052 dùng để lưu trữ dữ liệu như biến số, hằng số, bộ đệm truyền thông…
- Timer0, Timer1(T0,T1): là bộ đếm thời gian hoặc là bộ đếm xung với 8052 có thêm timer2
- Serial port: là cổng truyền thông nối tiếp có các đặc điểm: truyền song công (tức
là khả năng vừa truyển, vừa nhận số liệu tại cùng một thời điểm), với phương thức truyền không đồng bộ
- OSC: bộ phát xung nhịp nhằm tạo sự làm việc một cách đồng bộ cho cả hệ thống vi điều khiển
- BUS: Khối điều khiển các Bus địa chỉ (Address Bus), Bus dữ liệu (Data Bus) và Bus điều khiển (Control Bus)
2 Sơ đồ khối và ý nghĩa các chân của 8051
Trang 4Hình 2: Sơ đồ chân của 8051
Ngoài chức năng là các chân I/O số thì P0 còn là 8 bit (D0 ÷ D7) của bus dữ liệu hoặc là
8 bit thấp (A0 ÷ A7) của bus địa chỉ, P2 là 8 bit cao (A8 ÷ A15) của bus địa chỉ khi cần thiết mở rộng thêm các ngoại vi, bộ nhớ ngoài cho 8051
- RESET (tín hiệu vào): dùng để khởi động lại toàn bộ hệ thống khi chương trình đang chạy mà gặp lỗi (Ví dụ: Gặp phải vòng lặp vô hạn, chương trình bị treo, )
- RxD, TxD; là hai chân nhận và truyền số liệu của cổng truyền thông nối tiếp (mức tín hiệu TTL) RxD (Receive Data), TxD (Transmit Data)
- ∫´0, ∫´1 : là hai chân nhân tín hiệu yêu cầu ngắt từ bên ngoài
khiển
Trang 5- RD: (Tín hiệu ra ) cho phép đọc dữ liệu từ các ngoại vi, bộ nhớ dữ liệu ngoài vi ´điều khiển.
- X1, X2: Dùng để tạo xung nhịp cho vi điều khiển.
- Vcc, GND: cấp nguồn cho vi điều khiển (Vcc = 5VDC).
ALE = 1: P0 là bus địa chỉ;
ALE = 0: P0 là bus dữ liệu
- PSEN: Có chức năng giống chân RD nhưng chỉ để đọc bộ nhớ chương trình bên ngoài.´
3 Không gian địa chỉ của 8051
- 8051 có 16 bit địa chỉ (A0 ÷ A15) vậy có thể mà hóa được 216 trạng thái (địa chỉ) Hay còn gọi là không gian địa chỉ có 216 = 65536 địa chỉ, với địa chỉ đầu tiên là 0000H và địa chỉ cuối cùng là FFFFH Trong thực tế, bộ nhớ thường có cấu trúc theo kiểu mỗi ô nhớ
là một byte và có một địa chỉ cụ thể đọc/viết ô nhớ đó Nên không gian địa chỉ của 8051 còn được gọi là 65536 bytes bằng 64Kbytes
Đơn vị chỉ dung lượng bộ nhớ: 210 = 1K = 1024
216 = 26.210 = 64K
3 Cấu trúc bộ nhớ và các thanh ghi
8051 có hai không gian địa chỉ tách biệt cho bộ nhớ chương trình và bộ nhớ dữ liệu được phân biệt bởi các tín hiệu đọc/viết như phần trên đã trình bày
Trang 6- Bộ nhớ chương trình ( Program memory )
- Bộ nhớ dữ liệu ( Data memory)
Phần truy cập trực tiếp hoặc gián tiếp:
Phần này có địa chỉ 00H ÷ 7FH được chia làm nhiều phần:
a Bộ nhớ chương trình (Program Memory)
Hình 3: Không gian địa chỉ dành cho bộ nhớ chương trình bên trong, ngoài của 8051
b Bộ nhớ dữ liệu (Data Memory)
Trang 7Hình 4: Bộ nhớ dữ liệu trong, ngoài của 8051Phần truy nhập trực tiếp hoặc gián tiếp:
Phần này có địa chỉ 00H ÷ 7FH được chia ra làm nhiều phần:
- Phần 00H ÷ 1FH có 32 byte bao gồm 4 dãy thanh ghi, mỗi bank có 8 thanh ghi là R0 ÷ R7
- Phần 20H ÷ 2FH có 16 byte được đánh địa chỉ theo bit (có 128 bit) Có hai cách truy nhâp tới các bit như hình bên dưới
- Phần 30H ÷ 7FH có 80 byte dành cho người dung tự do sử dụng
Hình 5: Cách truy nhâp vùng nhớ được đánh địa chỉ theo bit
Trang 8Hình 6: Phần RAM truy nhập trực tiếp
4 Các thanh ghi đặc biệt (SFRs: Special Function Registers)
Bảng 1: Các thanh ghi đặc biệt
Trang 9*P0 Thanh ghi đệm cổng P0 80H
*IP Thanh ghi điều khiển mức ưu tiên ngắt 0B8H
*IE Thanh ghi cho phép/che chắc các ngắt 0A8H
TMOD Thanh ghi chọn chế độ cho Timer/Counter0,1 89H
*TCON Thanh ghi điều khiển Timer/Counter0,1 88H
*+T2CON Thanh ghi điều khiển Timer/Counter2 0C8H
TH0 Byte cao của bộ đếm trong Timer/Counter0 8CH
TL0 Byte thấp của bộ đếm trong Timer/Counter0 8AH
TH1 Byte cao của bộ đếm trong Timer/Counter1 8DH
TL1 Byte thấp của bộ đếm trong Timer/Counter1 8BH
+TH2 Byte cao của bộ đếm trong Timer/Counter2 0CDH+TL2 Byte thấp của bộ đếm trong Timer/Counter2 0CCH+RCAP2H Byte cao của thanh ghi Capture/Reload trong
*SCON Thanh ghi điều khiển cổng truyền thông nối tiếp 98H
SBUF Bộ đếm của cổng truyền thông nối tiếp 99H
PCON Thanh ghi điều khiển công suất tiêu thụ của 8051 87H
Chú ý : *: Chỉ các thanh ghi truy nhâp được theo bit
+: Chỉ các thanh ghi chỉ có trong 8052
Bảng 2 : Nội dung của các thanh ghi khi Reset hoặc Power on reset
Thanh ghi Nội dung (BIN)
DPTR DPH DPL 0000 0000B0000 0000B
Trang 10*: Chỉ các thanh ghi truy nhâp được theo bit.
- Thanh ghi PSW (program Status Word)
CY (PSW.7): Cờ nhớ
AC (PSW.6): Cờ nhớ phụ (dung khi tính toán số BCD)
F0 (PSW.5): Cờ dành cho người dùng
RS1 (PSW.4): Dùng để lựa chọn dãy thanh ghi được sử dụng
RS0 (PSW.3): Dùng để lựa chọn dãy thanh ghi được sử dụng
OV (PSW.2): Cờ tràn (dùng khi tính toán số nguyên có dấu)
- (PSW.1): Không dùng (dữ trữ)
P (PSW.0): Cờ chẵn lẽ
Bảng 3: Lựa chọn bank thanh ghi được sử dụng
00
01
Dãy 0Dãy 1
00H ÷ 07H08H ÷ 0FH
Trang 1101
Dãy 2Dãy 3
10H ÷ 17H18H ÷ 1FH
- Thanh ghi PCON (Power Control):
a Timer/ Counter 0 và Timer/ Counter 1
Khi ứng dụng các Timer/ Counter ta phải cài đặt chúng ở một chế độ làm việc xácđịnh Các thanh ghi đặc biệt được thiết kế để đặt các chế độ làm việc cho các Timer/ Counter là TMOD (Time Mode) và TCON ( Time Control)
Thanh ghi TMOD
Thanh ghi TMOD có 2 phần tử giống nhau dùng để cài đặt chế độ cho các T/C 0
và T/C 1 tương ứng như hình vẽ
T /C=1 Làm Counter (Đếm xung từ bên ngoài)
T /C=0 Làm Timer ( Đếm xung hệ thống)
GATE: Khi TRx=1 (x=0,1) nếu:
+ GATE=0 thì cho phép T/C làm việc
TMOD
Trang 12+ GATE=1 thì T/C được phép làm việc nếu INTx=1
Thanh ghi TCON
TF1 (TCON.7): Cờ báo bộ đếm Timer/Counter 1 bị tràn
TR1 (TCON.6): Bit cho phép T/C1 làm việc
TF0 (TCON.5): Cờ báo bộ đếm Timer/Counter 0 bị tràn
TR01 (TCON.4): Bit cho phép T/C0 làm việc
IE1 (TCON.3): Cờ báo có ngắt ngoài ở chân INT 1
IT1 (TCON.2), IT0 (TCON.0):
=1: Cho phép ngắt ngoài tương ứng ngắt theo sườn xuống
=0: Cho phép ngắt ngoài tương ứng ngắt theo mức “0”
IE0 (TCON.1): Cờ báo có ngắt ngoài ở chân INT 0
b Timer/Counter 2 ( chỉ có trong 89c52)
* Thanh ghi T2CON:
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON
T2CON
Trang 13TF2 (T2CON.7): Cờ tràn được dựng khi T/C2 tràn, Cờ phải được xóa bởi phần mền
TF2 (T2CON.6): Cờ tràn được dựng khi chân T2EX có sườn xuống với điều kiện bit EXEN2 =1 để báo ngăt
TF2 (T2CON.3): Bit cho phép Reload hoặc Capture khi có sườn xuống ở chân T2EX
TF2 (T2CON.2): Bit điều khiển cho phép T/C2 chạy hoặc dừng
TF2 (T2CON.1): Lựa chọn T/C2 làm việc ở chế độ Timer hoặc Counter
Ngắt cổng truyền thông nối tiếp: RI, TI
Ngắt bên ngoài vi điều khiển: INT 0 , INT 1
Ngắt của Timer 2: TF2
* Thanh ghi cho phép ngắt IE
EA : Cho phép/cấm tất cả ngắt ngoài
ET2:Cho phép/cấm ngăt Timer 2
ES: Cho phép/cấm ngắt cổng truyền thông nối tiếp
ET1: Cho phép/cấm ngăt Timer 1
IE
Trang 14EX1: Cho phép/cấm ngăt ngoài INT 1
ET0: Cho phép/cấm ngăt Timer 0
EX0: Cho phép/cấm ngăt ngoài INT 0
8.Cổng vào ra song song (I/O Port)
8051 có 4 cổng vào ra song song có tên lần lượt là P0, P1, P2, P3 tất cả các cổng này đều là cổng ra vào 2 chiều 8 bit Các bít của mỗi cổng là một chân trên chíp như vậymỗi cổng sẽ có 8 chân trên chíp Hướng dữ liệu dùng cổng đó làm cổng ra hay cổng vào
là độc lập giữa các cổng và giữa các chân trong cùng 1 cổng
Các chân P0 không có điện trở treo cao (pullup resistor) bên trong, mạch lái tạo mức cao chi có khi sử dụng cổng này với tính năng là bus dồn kênh địa chỉ/ dữ liệu Nhưvậy với chức năng ra thông thường, P0 là cổng ra open drain, với chức năng vào, P0 là cổng cao trở Nếu muốn sử dụng cổng P0 làm cổng vào /ra thông dụng thì ta phải thêm trở tử 4K7 đến 10K Các cổng P1, P2, P3 đều có điện trở pullup bên trong, do đó có thể dùng với chức năng cổng vào/ra thông thường mà không cần thêm điện trở bên ngoài.Cổng truyền thông nối tiếp ( Serial Port) :
Cổng nối tiếp trong 8051 chủ yếu được dùng trong các ứng dụng có yêu cầu /truyền thông với máy tính, hoặc với 1 vi điều khiển khác Liên quan đến cổng nối tiếp chủ yếu có 2 thanh ghi : SCON và SBUF Ngoài ra, một thanh ghi khác là thanh ghi PCON (không đánh địa chỉ bít) có bít 7 tên là SMOD quy định tốc độ truyền của cổng nối tiếp có gấp đôi lên (SMOD=1) hay không (SMOD=0)
Cổng có đặc điểm :
Trang 15Truyền song công : có nghĩa là tại một thời điểm có thể vừa truyền vừa nhận dữ liệu.
Phương thức truyền không đồng bộ: là dữ liệu được truyền đi theo từng kí tự
Bộ đệm truyền nhận dữ liệu đều có tên là SBUF
SCON là thanh ghi bit được dùng để lập trình việc đóng khung dữ liệu, xác định chế độ làm việc của cổng truyền thông nối tiếp
Bảng dưới đây mô tả chi tiết các bit khác nhau của thanh ghi SCON :
Bit Tên Địa chỉ Chức năng
7 SM0 9FH Xác định chế độ cổng nối tiếp (bit 0)
6 SM1 9EH Xác định chế độ cổng nối tiếp (bit 1)
5 SM2 9DH Cho phép truyền thông đa xử lý
4 REN 9CH Bít cho phép nhận
3 TB8 9BH Sử dụng trong chế độ 2 và 3
2 RB8 9AH Sử dụng trong chế độ 2 và 3
1 TI 99H Cờ truyền :nhận được sau khi truyền xong 1 byte
0 RI 98H Cờ nhận: Nhận được sau khi nhận đủ 1 byte
Các chế độ làm việc của cổng truyền thông
SM0 SM1 Chế độ Khung dữ liệu Tốc độ Baud
0 0 0 8-bit Shift Register Oscillator/12
0 1 1 8-bit UART Cài đặt bởi timer 1(*)
III Các linh kiện được sử dụng
1) Vi điều khiển:
Vi điều khiển được sử dụng trong bài là 1 chip 89C51 Đặc điểm chung của nó là :
- 8 KB EPROM bên trong
- 128 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ã hóa ngoài
- 64 KB vùng nhớ dữ liệu ngoại
Trang 16- 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.s cho hoạt động nhân hoặc chia
Sơ đồ chân của IC 89C51:
2) Mạch truyền thông chuẩn RS232 :
Là một chuẩn giao tiếp nối tiếp dùng định dạng
không đồng bộ, kết nối nhiều nhất là 2 thiết bị , chiều dài
kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến
25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một
số thiết bị đặc biệt Ý nghĩa của chuẩn truyền thông nối
tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi
đi dọc theo đường truyền
Có hia phiên bản RS232 được lưu hành trong thời
gian tương đối dài là RS232B và RS232C Nhưng cho đến nay thì phiên bản RS232B cũthì ít được dùng còn RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngẵngọn là chuẩn RS232
Ưu điểm của RS232:
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp
Vi mạch Max 232:
Trang 17Do hãng MAXIM sản suất, là vi mạch chuyên dùng trong giao diện nối tiếpvới máy tính Chúng có nhiệm vụ đổi mức TTL ở lối vào mức +10V hoặc -10V
ở phía truyền và các mức +3 +15V hoặc -3…-15V thành mức TTL ở phía nhận
Vi mạch Max 232 có hai bộ đếm và hai bộ nhận
Cách truyền dữ liệu đơn giản nhất là dùng 3 đường dẫn TxD, RxD và GND
Cổng Com 9 chân (DB9)
Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground ( SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu
Trang 18động khi sẵn sàng truyền dữ liệu.
+ chân 8 : Clear To Send (CTS) : Xóa để gửi ,bô nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung chuông
dao động khoảng +/- 5% trở lên
Trang 19Tụ gốm Tụ hóa
5) Thạch anh :
Thạch anh là bộ dao động khá ổn định để tạo ra tần số dao động cho vi điều khiển Các loại thạch anh hay sử dụng là: 8Mhz,12Mhz, 16Mhz….mỗi loại sẽ cho ra 1 xung nhịp khác nhau
6) LED :
7) Nút ấn:
Trang 20CHƯƠNG II : XÂY DỰNG HỆ THỐNG VI ĐIỀU KHIỂN
1 Sơ đồ khối
2 Sơ đồ nguyên lý
Trang 21Trang 22
3 Xây dựng thuật toán
KHỞI TẠO
Trang 23 PHỤC VỤ NGẮT TRÀN TIMER 2
Trang 26 THUẬT TOÁN CHẠY HIỆU ỨNG
Trang 27 THUẬT TOÁN ĐẢO TÍN HIỆU
Trang 28 THUẬT TOÁN HIỆU ỨNG
Trang 30 CHẠY HIỆU ỨNG
Trang 32mov T2CON,#00h ; timer 2 che do auto reload
mov TH2,#0D8h ; ngat tran 10ms
mov TL2,#0EFH
mov RCAP2H,TH2
mov RCAP2L,TL2
setb button1 ; ( button1 ) 1
setb button2 ; ( button2 ) 1
setb button3 ; ( button3 ) 1
setb button4 ; ( button4 ) 1
clr cambien1 ; ( cambien1 ) 0
mov dem,#0
setb TR2 ; cho phep timer 2 hoat dong
setb IE.5 ; cho phep ngat tran timer 2
Trang 33JNB cambien2,K1 ; nhay toi K1 neu ( cambien2 ) = 0
Trang 34JB cambien1,nut5 ; nhay toi nut5 neu ( cambien1 ) = 1
JB cambien2,nut6 ; nhay toi nut6 neu ( cambien2 ) = 1 sjmp down
nut1:
mov dn,#1 ;chương trinh con nut1: dn=1
sjmp down ; nhảy xuống chương trình con downnut2:
mov dn,#2 ; chương trinh con nut2: dn=2
sjmp down ; nhảy xuống chương trình con downnut3:
Trang 35mov dn,#3 ; chương trinh con nut3: dn=3
sjmp down ; nhảy xuống chương trình con downnut4:
mov dn,#4 ; chương trinh con nut4: dn=4
sjmp down ; nhảy xuống chương trình con down