Báo cáo bài tập lớn vi xử lý: ứng dụng của họ vi điều khiển 8051

39 522 2
Báo cáo bài tập lớn vi xử lý: ứng dụng của họ vi điều khiển 8051

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

MỤC LỤC LỜ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 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, đó sự hiểu biết và khả ứ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 Được giúp đỡ bảo nhiệt tình thầy Phạm Văn Hùng chúng em thực tập lớn mơn Vì Xử Lý ứng dụng họ vi điều khiển 8051 Bài tập lớn giúp chúng em có nhìn tổng quan mơn học vi xử lý kỹ thuật vi xử lý mà chúng em gặp phải trình làm việc sau Mặ dù cố găng kiến thức có hạn chưa có kinh nghiệp thực tế nên tập khó tránh khỏi cịn nhiều thiếu sót, chúng em mong nhân ý kiến đóng góp quý báu thầy thầy khoa để chúng em rút đươc kinh nghiệm hồn thành tập lớn cách tốt CHƯƠ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ó bit có nghĩa là CPU chỉ có thể làm việc với bit tại một thời điểm Các dữ liệu lớn bit được chia thành các dữ liệu bit để cho xử lí            Các đặc điểm của 8051 được tóm tắt sau: KB ROM bên 12 Byte RAM nội Port xuất / nhập I/O 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 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 từng chân Cấu trúc vi xử lí 89c51 Vcc (chân 40): - Cung cấp nguồn cho chip - +5V 2.GND (chân 20): đất XTAL1 & XTAL2 (chân 19, 18) - chân cung cấp xung clock - Cách 1: dao động dùng thạch anh Tần số thạch anh thường dùng ứng dụng là: 11.0592 (giao tiếp với cổng COM máy tính) 12Mhz Tần số tối đa 24Mhz tần số lớn VĐK xử lý nhanh Dao động của thạch anh - Cách 2: dao động từ nguồn xung clock TTL bên - Quan hệ chu kỳ máy XTAL 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 chu kỳ máy - Giá trị ghi chịu tác động hoạt động reset - Mạch reset có chống rung /EA (chân 31): External Access - /EA nối mass định code lưu nhớ /PSEN & ALE (chân 29 30) dùng cho ROM - Với 8051, 8031, 8032 /EA nối Vcc - “/”: định tác động mức thấp a /PSEN (chân 29): Program Store Enable - Output, cho phép truy xuất nhớ chương trình ngồi - Nối tới chân /OE ROM/EPROM - Khi thực thi chương trình ROM nội, /EA gán mức 1, (khi /PSEN tự động giữ mức 1) b ALE (pin 30):Address Latch Enable - Là chân output cho phép chốt địa để giải đa hợp (de-multiplexing) bus liệu bus địa - ALE xuất tín hiệu để chốt địa (byte thấp địa 16-bit) vào ghi suốt nửa đầu chu kỳ nhớ (memory cycle) Trong nửa chu kỳ nhớ lại, P0 xuất/nhập liệu - ALE có f=1/6fclock - Có ngoại lệ: thời gian thực thi lệnh MOVX, xung ALE bị bỏ qua Cổng I/O: P0, P1, P2, & P3 Mỗi cổng: chân - cổng I/O Port (chân 32-39) :P0 (P0.0〜P0.7) Port (chân 1-8) :P1 (P1.0〜P1.7) Port (chân 21-28) :P2 (P2.0〜P2.7) Port (chân 10-17) :P3 (P3.0〜P3.7) Mỗi cổng có chân Đánh tên P0.X (X=0,1, ,7), P1.X, P2.X, P3.X Ex:P0.0 bit (LSB) P0 Ex:P0.7 bit (MSB) P0 bit cấu thành byte Mỗi cổng dùng input hay output Riêng cổng có hai chức năng: P3.0-RxD: chân nhận tín hiệu nối tiếp giao tiếp RS232 (cổng COM) P3.1-TxD: phân truyền liệu giao tiếp RS232 P3.2-INTO: intertupt 0, ngắt P3.3-INT1: interrupt 1, ngắt P3.4-T0: timer0, đầu vào timer P3.5-T1: timer1, đầu vào timer P3.6-WR: Write, điều khiển ghi liệu P3.7-RD: read, điều khiển đọc liệu II LED THANH Led được dùng nhiều các mạch hiển thị thông báo, hiển thị số các ký tự đơn giản … Led được cấu tạo từ các Led đơn sắp xếp theo các nét để có thể biểu diễn các chữ số đơn giản từ đến và hay A đến F Tùy vào kích thước của số và ký tự mà mỗi được cấu tạo bởi 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ó 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 led đơn Qua đó người ta chỉ cần bit tương ứng với led đơn để điều khiển được để hiển thị số từ đến hoặc A đến F Chia led thành 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 tín hiệu đặt vào các chân này ở mức 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 tín hiệu đặt vào các chân này bằng Hình ảnh led Sơ đồ chân đấu nối của loại led Vì led chứa bên nó các led đơn nên kết nối cần đảm bảo dòng qua mỗi led đơn 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í 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 đ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 • Ngõ nhận tín hiệu điều khiển led đoạn có đường, dùng Port Vi điều khiển để điều khiển led đoạn Như led đoạn nhận liệu bit từ Vi điều khiển để điều khiển hoạt động sáng tắt led đơn nó, liệu xuất điều khiển led đoạn thường gọi "mã hiển thị led đoạn" Có hai kiểu mã hiển thị led đoạn: mã dành cho led đoạn có Anode (cực +) chung mã dành cho led đoạn có Cathode (cực -) chung Chẳng hạn, để thị số cần làm cho led vị trí b c sáng, sử dụng led đoạn có Anode chung phải đặt vào hai chân b c điện áp 0V (mức 0) chân lại đặt điện áp 5V (mức 1), sử dụng led đoạn có Cathode chung điện áp (hay mức logic) hồn tồn ngược lại, tức phải đặt vào chân b c điện áp 5V (mức 1) Bảng mã hiển thị led đoạn: Phần cứng kết nối với Port Vi điều khiển, để thuận tiện cho việc xử lí sau phần cứng nên kết nối sau: Px.0 nối với chân a, Px.1 nối với chân b, theo thứ tự Px.7 nối với chân h • Dữ liệu xuất có dạng nhị phân sau: hgfedcba  Bảng mã hiển thị led đoạn dành cho led đoạn có Anode chung (các led đơn sáng mức 0): Số hiển thị Mã hiển thị led đoạn Mã hiển thị led đoạn dạng led đoạn dạng nhị phân thập lục phân hgfedcba 11000000 C0 11111001 F9 10100100 A4 10110000 B0 10011001 99 10010010 92 11000010 82 11111000 F8 10000000 80 10010000 90 A 10001000 88 B 10000011 83 C 11000110 C6 D 10100001 A1 E 10000110 86 10 CHAN1: CJNE A,#5,QQQ MOV LANAN,#0 LJMP KTNHAP QQQ: MOV XL,D3 MOV YL,#0E8H MOV YH,#03H LCALL BMW MOV R1,Z0 MOV R2,Z1 MOV XL,D2 MOV YL,#64H MOV YH,#0H LCALL BMW MOV YL,Z0 MOV YH,Z1 MOV XL,R1 MOV XH,R2 LCALL ADD16 MOV SH1H,ZH MOV A,D1 MOV B,#10 MUL AB ADD A,D0 ADD A,ZL MOV SH1L,A LJMP KTNHAP ;============================================================= SOHANG2: CLR SOF CJNE A,#0,MOTSO MOV D0,#0 MOV D1,#0 MOV D2,#0 MOV D3,#0 LJMP CHAN MOTSO: CJNE A,#1,HAISO MOV HDV,GT MOV D0,HDV 25 MOV MOV MOV SJMP HAISO: CJNE MOV MOV MOV MOV MOV SJMP BASO: CJNE MOV MOV MOV MOV MOV SJMP BONSO: CJNE MOV MOV MOV MOV SJMP CHAN: CJNE MOV LJMP PPP: MOV MOV MOV LCALL MOV MOV MOV MOV MOV D1,#0 D2,#0 D3,#0 CHAN A,#2,BASO D1,HDV HC,GT D0,HC D3,#0 D2,#0 CHAN A,#3,BONSO D2,HDV D1,HC HT,GT D0,HT D3,#0 CHAN A,#4,CHAN D0,GT D1,HT D2,HC D3,HDV CHAN A,#5,PPP LANAN,#0 KTNHAP XL,D3 YL,#0E8H YH,#03H BMW R1,Z0 R2,Z1 XL,D2 YL,#64H YH,#0H 26 LCALL MOV MOV MOV MOV LCALL MOV MOV MOV MUL ADD ADD MOV KTNHAP: JNB LCALL HET: RET BMW YL,Z0 YH,Z1 XL,R1 XH,R2 ADD16 SH2H,ZH A,D1 B,#10 AB A,D0 A,ZL SH2L,A BANGF,HET TINHTOAN ;=================================================== SOLANAN: JB DAANF,DUNG JNB ANF,KT1 SETB DAANF INC LANAN SJMP KT1 DUNG: JB ANF,KT1 CLR DAANF KT1: RET ;=========================================================== ;subrouinte HEXTOBCD ;bien doi so hex hai byte sang so BCD ;input : XH,XL ;Output : DIGIT4,DIGIT3,DIGIT2,DIGIT2,DIGIT1,DIGIT0 ;=========================================================== HEXTOBCD: MOV YH,#00H MOV YL,#0AH 27 LCALL DIV16 MOV D0,Z0 MOV XH,Z3 MOV XL,Z2 LCALL DIV16 MOV D1,Z0 MOV XH,Z3 MOV XL,Z2 LCALL DIV16 MOV D2,Z0 MOV XH,Z3 MOV XL,Z2 LCALL DIV16 MOV D3,Z0 RET ;================================================================ ;Subroutine Display ;hien thi ket qua ;Input :D3,D2,D1,D0 ;Output :none ;================================================================ HIENTHI: MOV DPTR,#segment MOV A,D0 MOVC A,@A+DPTR MOV D0,A MOV A,D1 MOVC A,@A+DPTR MOV D1,A MOV A,D2 MOVC A,@A+DPTR MOV D2,A MOV A,D3 MOVC A,@A+DPTR MOV D3,A ;================================================ led0: CJNE R5,#0,LED1 MOV P2,#01H MOV P0,D0 SJMP RA 28 LED1: CJNE MOV MOV SJMP R5,#1,LED2 P2,#02H P0,D1 RA CJNE MOV MOV SJMP R5,#2,LED3 P2,#04 P0,D2 RA MOV MOV P2,#08H P0,D3 INC CJNE MOV R5 R5,#4,NGHI R5,#0 LED2: LED3: RA: NGHI: RET ;================================================================ SEGMENT: db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;================================================================ DIV16: MOV a,YH ORL a,YL JNZ DIV_OK SETB ZOV RET DIV_OK: MOV r1,XH MOV r0,XL MOV XH,#0 MOV XL,#0 MOV r3,#0 MOV r2,#0 MOV r7,#16 DIV_LOOP: CLR C MOV a,r0 RLC a 29 MOV MOV RLC MOV MOV RLC MOV MOV RLC MOV r0,a a,r1 a r1,a a,XL a XL,a a,XH a XH,a LCALL SUB16 MOV c,ZOV CPL c JNC DIV_1 MOV XH,ZH MOV XL,ZL DIV_1: MOV a,r2 RLC a MOV r2,a MOV a,r3 RLC a MOV r3,a DJNZ r7,DIV_LOOP MOV Z3,r3 MOV Z2,r2 MOV Z1,XH MOV Z0,XL CLR ZOV RET ;========================================================== MUL16: PUSH acc PUSH b LCALL bmw ; XL * Y(YH:YL) MOV a,Z2 PUSH acc ; push Z2_1 MOV a,Z1 PUSH acc ; push Z1_1 30 MOV a,Z0 PUSH acc MOV XL,XH LCALL BMW MOV b,Z0 POP acc MOV Z0,a POP acc ADD a,b MOV b,Z1 MOV Z1,a POP acc ADDC a,b MOV b,Z2 MOV Z2,a CLR a ADDC a,b MOV Z3,a POP b POP acc RET ;========================================================== BMW: PUSH psw MOV psw,#0 MOV a,XL MOV b,YL MUL ab MOV Z0,a PUSH b MOV a,XL MOV b,YH MUL ab POP ADD a,r0 MOV Z1,a CLr a ADDC a,b MOV Z2,a POP psw RET 31 ;=========================================================== ;subroutine sub16 ; Z(ZH,ZL) = X(XH,XL) - Y(YH,YL) ; if (Y > X) ; ZOV = ;=========================================================== SUB16: PUSH acc MOV a,XL CLR c SUBB a,YL MOV ZL,a MOV a,XH SUBB a,YH MOV ZH,a MOV ZOV,c POP acc RET ;============================================================== ADD16: MOV a,XL ADD a,YL ;cong hai byte thap MOV ZL,a ;luu lai ket qua MOV a,XH ADDC a,YH ;cong hai byte cao MOV ZH,a ;luu lai ket qua MOV zov,c RET ;ket thuc ctc ;============================================================== QUETBANPHIM: MOV P1,#0FH MOV r0,p1 MOV ANF,#0 H1: CJNE R0,#0EH,H22 MOV MAHANG,R0 SJMP c1 H22: CJNE R0,#0DH,H3 MOV MAHANG,R0 SJMP c1 32 H3: CJNE MOV SJMP R0,#0BH,H4 MAHANG,R0 c1 H4: CJNE R0,#07H,C1 MOV MAHANG,R0 ;=======================QUET-COT-========== C1: MOV P1,#0F0H MOV R1,P1 CJNE R1,#0E0H,C2 MOV MACOT,R1 SJMP TMAPHIM C2: CJNE R1,#0D0H,C3 MOV MACOT,R1 SJMP TMAPHIM C3: CJNE R1,#0B0H,C4 MOV MACOT,R1 SJMP TMAPHIM C4: CJNE R1,#70H,TMAPHIM MOV MACOT,R1 SJMP TMAPHIM ;===============TINH-MA-PHIM-============ TMAPHIM: MOV A,MAHANG MOV B,MACOT ORL A,B ;================HIEN-THI-PHIM=========== PHIM1: CJNE A,#0EBH,PHIM2 MOV P3,#0F9H MOV GT,#1 SETB ANF SETB SOF LJMP KT PHIM2: CJNE A,#0DBH,PHIM3 33 MOV MOV SETB SETB LJMP PHIM3: CJNE MOV MOV SETB SETB LJMP PHIM4: CJNE MOV MOV SETB SETB LJMP PHIM5: CJNE MOV MOV SETB SETB LJMP PHIM6: CJNE MOV MOV SETB SETB SJMP PHIM7: CJNE MOV MOV SETB SETB SJMP PHIM8: P3,#0A4H GT,#2 ANF SOF KT A,#0BBH,PHIM4 P3,#0B0H GT,#3 ANF SOF KT A,#0EDH,PHIM5 P3,#99H GT,#4 SOF ANF KT A,#0DDH,PHIM6 P3,#92H GT,#5 SOF ANF KT A,#0BDH,PHIM7 P3,#82H GT,#6 SOF ANF KT A,#0EEH,PHIM8 P3,#0F8H GT,#7 SOF ANF KT 34 CJNE MOV MOV SETB SETB SJMP PHIM9: CJNE MOV MOV SETB SETB SJMP PHIM0: CJNE MOV MOV SETB SETB SJMP PHIMAC: CJNE MOV SETB SJMP PHIMBANG: CJNE MOV SETB SJMP PHIMCONG: CJNE MOV SETB SETB SJMP PHIMTRU: CJNE SETB MOV SETB A,#0DEH,PHIM9 P3,#80H GT,#8 SOF ANF KT A,#0BEH,PHIM0 P3,#90H GT,#9 SOF ANF KT A,#0D7H,PHIMAC P3,#0C0H GT,#0 SOF ANF KT A,#0E7H,PHIMBANG P3,#88H ACF KT A,#0B7H,PHIMCONG P3,#0BEH BANGF KT A,#077H,PHIMTRU P3,#8FH CTNCF CONGF KT A,#7BH,PHIMNHAN CTNCF P3,#0BFH TRUF 35 SJMP KT PHIMNHAN: CJNE A,#7DH,PHIMCHIA SETB CTNCF SETB NHANF MOV P3,#89H SJMP KT PHIMCHIA: CJNE A,#7EH,KT SETB CTNCF SETB CHIAF MOV P3,#0C6H KT: CJNE R0,#0FH,HH CLR ANF CLR ACF CLR CTNCF HH: RET ;============================================================== TINHTOAN: JNB CONGF,X MOV XL,SH1L MOV XH,SH1H MOV YL,SH2L MOV YH,SH2H LCALL ADD16 MOV XL,ZL MOV XH,ZH LCALL HEXTOBCD LJMP YY X: JNB TRUF,XX MOV XL,SH1L MOV XH,SH1H MOV YL,SH2L MOV YH,SH2H LCALL SUB16 MOV XH,ZH MOV XL,ZL LCALL HEXTOBCD 36 LJMP YY JNB MOV MOV MOV MOV LCALL MOV MOV LCALL LJMP NHANF,XXX XL,SH1L XH,SH1H YL,SH2L YH,SH2H MUL16 XL,Z0 XH,Z1 HEXTOBCD YY JNB MOV MOV MOV MOV LCALL MOV MOV MOV LCALL CHIAF,YY XL,SH1L XH,SH1H YL,SH2L YH,SH2H DIV16 D0,#Z0 XL,Z2 XH,Z3 HEXTOBCD XX: XXX: YY: RET 37 38 Mạch mô phỏng Proteus 39

Ngày đăng: 08/05/2016, 21:16

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • CHƯƠNG I: GIỚI THIỆU VỀ CÁC LINH KIỆN ĐƯỢC SỬ DỤNG

  • CHƯƠNG II: SƠ ĐỒ THUẬT TOÁN

  • CHƯƠNG III : CHƯƠNG TRÌNH ĐIỀU KHIỂN

  • KẾT LUẬN

  • Tài liệu tham khảo

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan