1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

phần cứng của cpu 8051

42 218 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 1,79 MB

Nội dung

BÀI GIẢNG Phần Cứng Của CPU MỤC LỤC GIỚI THIỆU CHUNG Vi xử lý (viết tắt µP hay uP), gọi vi xử lý, linh kiện điện tử máy tính chế tạo từ tranzito thu nhỏ tích hợp lên vi mạch tích hợp đơn Khối xử lý trung tâm (CPU) vi xử lý nhiều người biết đến ví não máy tính nhiều thành phần khác máy tính có vi xử lý riêng nó, ví dụ cạc hình, ổ đĩa cứng… có bộ vi xử lý Vi điều khiển coi máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển, thực chất, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, module vào ra, ADC, DAC, timer, ngắt Ở máy tính mô đun thường xây dựng chíp mạch Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v Hầu hết vi điều khiển ngày xây dựng dựa kiến trúc Harvard, kiến trúc định nghĩa bốn thành phần cần thiết hệ thống nhúng Những thành phần lõi CPU, nhớ chương trình (thông thường ROM nhớ Flash), nhớ liệu (RAM), vài định thời cổng vào/ra để giao tiếp với thiết bị ngoại vi môi trường bên - tất khối thiết kế vi mạch tích hợp Vi điều khiển khác với vi xử lý đa chỗ hoạt động với vài vi mạch hỗ trợ bên Đề tài thiết kế xe chạy theo đường vẽ sẵn chúng em thực dựa kiến thức mạch điện tử, vi xử lý nói chung vi điều khiển họ 8051 nói riêng thầy giáo hướng dẫn lớp Thực đề tài tiền đề để chúng em nắm kiến thức vi điều khiển 8051, từ tạo sở để tiếp tục nghiên cứu họ vi điều khiển khác AVR, PIC, ARM… phục vụ trình học tập làm việc sau Chúng em chân thành cảm ơn thầy Nguyễn Hồng Quang hướng dẫn chúng em hoàn thành tập Nhóm – TĐH – K50 MÔ TẢ KĨ THUẬT THIẾT KẾ MẠCH Hai mạch sử dụng tập mạch SENSORS để dò đường mạch VI XỬ LÝ VÀ ĐỘNG CƠ để thu tín hiệu, xử lý đưa tín hiệu điều khiển hai động để dẫn hướng Ngoài ra, để nạp chương trình cho vi điều khiển, chúng em sử dụng mạch nạp ISP loại đơn giản tự làm theo sơ đồ mạng Internet a MẠCH SENSORS Đường xe vẽ vạch đen nằm trắng Để xe nhận đường đi, chúng em sử dụng cặp led thu phát hồng ngoại đặt gần Các led phát phát ánh sáng đỏ, led thu có điện trở phụ thuộc vào có nhận ánh sáng phản xạ từ đường hay không Khi cặp thu phát vị trí trắng, ánh sáng từ led phát phát phản xạ trắng tới led thu Led thu thu ánh sáng điện trở giảm xuống, điện áp cực Anot led thu gần Ngược lại, vị trí vạch đen, ánh sáng từ led phát phát không phản xạ lại bị vạch đen hấp thụ Led thu không nhận ánh sáng nên điện áp cực Anot gần V Điện áp từ led thu đem so sánh với điện áp chuẩn tinh chỉnh hợp lý qua IC LM324 mức logic 0-1, đưa vào vi điều khiển xử lý Hình ảnh minh họa sau: IC LM324 gồm so sánh Mỗi so sánh minh họa hình bên Trong đó, đầu vào đảo nối với cực Anot led thu đầu vào không đảo nối với điện áp so sánh từ chiết áp Khi led trắng, mức điện áp led thu đo 3.0V, ngược lại, mức điện áp thu đo bắt vào vạch đen 4.6 V Điện áp so sánh (Vref) đặt qua biến trở 10k 3.8 V Khi trắng: Vled thu Vref nên Output=0 Để bắt đường tốt, chúng em sử dụng cặp led thu phát bố trí sau (LT: Led thu; LP: Led phat): LT3 LP3 LT1 LP1 LT2 LP2 LT5 LT6 LP5 LP6 LT4 LP4 Sơ đồ nguyên lý mạch SENSORS: Sơ đồ mạch in: b) MẠCH VI ĐIỀU KHIỂN VÀ ĐỘNG CƠ  Khối NGUỒN: Trong khối nguồn sử dụng bình ắc quy khô 12V.Mặt khác hệ thốngiều khiển cần phải có nguồn 5V để cung cấp cho khối VI ĐIỀU KHIỂN khối SENSORS Để tạo nguồn 5V DC sử dụng IC ổn áp 7805, với đầu vào gồm đất chung toàn hệ thống nguồn 12 VDC lấy trực tiếp từ nguồn ắc quy IC ổn áp LM7805 lắp tản nhiệt loại nhỏ để tản bớt nhiệt hoạt động giúp khối nguồn toàn mạch hoạt động ổn định Mạch nguồn sau: Trong mạch nguồn có sử dụng cầu chì kí hiệu SW2 phòng xảy cố chập mạch, nhằm bảo vệ cho mạch nguồn khối liên quan khác  Khối VI ĐIỀU KHIỂN Khối gồm có Vi điều khiển AT89S52, mạch RESET, mạch tạo dao động, led báo vạch từ mạch SENSORS, Jumpers đầu vào dùng để nạp ISP + Vi điều khiển AT89S52 sử dụng có đầy đủ chức vi điều khiển AT89C51 Ngoài có thêm timer (timer2) có nhớ Flash, công nghệ nạp ISP (In System Programming) tức nạp mà không cần tháo chip khỏi mạch, giúp việc lập trình test thuận tiện Giá thành chí rẻ AT89C51 + Mach RESET có chức reset lại hoạt động vi điều khiển, nối vào chân số vi điều khiển chân tích cực cao Khi chân số set lên vi điều khiển reset lại Để chống rung ấn nút, dùng tụ hóa nối song song với nút ấn + Mạch DAO ĐỘNG sử dụng thạch anh 12Mhz, chu kì máy 1us, thuận tiện cho việc tính toán lập trình Tuy nhiên có hạn chế truyền thông với máy tính qua cổng COM (đòi hỏi thạch anh 11.0592Mhz) Thạch anh nối đất với tụ gốm 33p để lọc nhiễu + Các Jumpers dùng để nạp ISP sử dụng mạch nạp ISP loại đơn giản, cần dùng chân: GND, MOSI, MISO, SCK, RESET nối với cổng LPT máy tính thông qua jack DB25 Sử dụng kiểu nạp ISP thuận tiện lập trình test xe tháo chip (hạn chế hỏng, gẫy chân chip), tốc độ nạp chấp nhận được, bị lỗi, chi phí thấp + Các led báo vạch dùng để phản ánh tình trạng led thu phát mạch SENSORS Khi cặp thu-phát bắt vào vạch đen led báo tương ứng sáng lên ngược lại Nói cách khác, led báo phản ánh vị trí lệch xe so với vạch đen, từ giúp debug chương trình thuận tiện nhiều  Khối LCD HIỂN THỊ Trong tập sử dụng LCD để giới thiệu hiển thị thông tin cần thiết khác, đồng thời học cách giao tiếp hai vi xử lý Do LCD tiêu thụ dòng lớn đặc biệt bật đèn nền, làm mau hết ắcquy nên sử dụng LCD với trường hợp cụ thể Để bật tắt đèn nền, sử dụng bóng thuận A1015, điều khiển chân P0.7 vi điều khiển Khi P0.7=0 bóng thông, cực A LCD nối với nguồn 5V, đèn sáng ngược lại Ngoài khối sử dụng biến trở 10k tạo điện áp đưa vào chân VEE LCD để điều chỉnh độ tương phản Khi điện áp phản lớn nhất, UVEE ≈ UVEE ≈ độ tương V độ tương phản nhỏ  Khối ĐỘNG CƠ Để điều khiển động quay thuận ngược nhanh chậm, dùng trực tiếp chân vi điều khiển dòng chân vi điều khiển nhỏ Do sử dụng IC L293D gồm hai mạch cầu H bên trong, mạch cầu H dùng điều khiển động có sơ đồ khối hình vẽ: ;************************************************************* ;chuong trinh duong ;============================================================= /*so bo tri Sensors: truoc trai1 trai0 phai0 phai1 sau +thu tu cac bit tuong ung: +neu sensor bat vao vach den thi logic bao ve la va led tuong ung tren mach vi xu ly se sang */ ;============================================================ dithang1: MOV A,P3 ANL A,#01111110b ;chi lay bit tuong ung sensors CJNE A,#01100110b,dithang2 ;led truoc sau bat vach LCALL tien ;banh trai, phai quay thuan MOV xung_trai,#70 ;bam xung 70% MOV xung_phai,#70 ;bam xung 70% LJMP thoatdo dithang2: MOV A,P3 ANL A,#01111110b CJNE A,#01111110b,dithang3 ;khong led nao bat vach LCALL tien MOV xung_trai,#30 MOV xung_phai,#60 LJMP thoatdo dithang3: MOV A,P3 ANL A,#01111110b CJNE A,#01011010b,lechtrai1 ;led trai0,truoc,sau,phai0 bat LCALL tien MOV xung_trai,#70 MOV xung_phai,#70 LJMP thoatdo lechtrai1: MOV A,P3 ANL A,#01111110b CJNE A,#01001110b,lechtrai2 ;led truoc,trai0 LCALL tien MOV xung_trai,#70 ;banh trai quay cham hon MOV xung_phai,#90 ;banh phai LJMP thoatdo lechtrai2: MOV A,P3 ANL A,#01111110b CJNE A,#01010110b,lechtrai3 LCALL tien MOV xung_trai,#50 MOV xung_phai,#90 LJMP thoatdo lechtrai3: MOV A,P3 ANL A,#01111110b CJNE A,#01011110b,lechtrai4 LCALL tien MOV xung_trai,#30 MOV xung_phai,#90 LJMP thoatdo lechtrai4: MOV A,P3 ANL A,#01111110b CJNE A,#00011110b,lechtrai5 LCALL tien MOV xung_trai,#10 MOV xung_phai,#90 LJMP thoatdo lechtrai5: MOV A,P3 ANL A,#01111110b CJNE A,#00111110b,lechtrai6 LCALL cua_trai_manh ;led trai0,sau bat vach ;banh trai quay cham hon ;banh phai ;led trai bat vach ;banh trai quay cham hon ;banh phai ;led trai0, trai1 bat vach ;banh trai quay cham hon ;banh phai ;led trai1 bat vach ;banh trai quay nguoc, ;banh phai quay thuan LJMP thoatdo lechtrai6: MOV A,P3 ANL A,#01111110b CJNE A,#00010110b,lechphai1 ;led trai0,trai1,sau bat vach LCALL cua_vuong_trai ;ham cua vuong trai LJMP thoatdo ;************************************************************* ;Lech phai - can cua phai lechphai1: MOV A,P3 ANL A,#01111110b CJNE A,#01101010b,lechphai2 ;led truoc,phai0 bat vach LCALL tien MOV xung_trai,#90 ;banh trai quay nhanh hon ;banh phai MOV xung_phai,#70 LJMP thoatdo lechphai2: MOV A,P3 ANL A,#01111110b CJNE A,#01110010b,lechphai3 LCALL tien MOV xung_trai,#90 MOV xung_phai,#50 LJMP thoatdo lechphai3: MOV A,P3 ANL A,#01111110b CJNE A,#01111010b,lechphai4 LCALL tien MOV xung_trai,#90 MOV xung_phai,#30 LJMP thoatdo lechphai4: MOV A,P3 ANL A,#01111110b CJNE A,#01111000b,lechphai5 LCALL tien MOV xung_trai,#90 MOV xung_phai,#10 LJMP thoatdo lechphai5: MOV A,P3 ANL A,#01111110b CJNE A,#01111100b,lechphai6 LCALL tien LCALL cua_phai_manh ;led sau,phai0 bat vach ;banh trai quay nhanh hon ;banh phai ;led phai0 bat vach ;banh trai quay nhanh hon ;banh phai ;led phai0,phai1 bat vach ;banh trai quay nhanh hon ;banh phai ;led phai1 bat vach ;banh trai quay thuan ;banh phai quay nguoc LJMP thoatdo lechphai6: MOV A,P3 ANL A,#01111110b CJNE A,#01110000b,vach_dich ;led sau,phai0,phai1 bat vach LCALL cua_vuong_phai ;ham cua vuong phai LJMP thoatdo vach_dich: MOV A,P3 ANL A,#01111110b CJNE A,#00000000b,thoatdo ;vach dich-cac led deu bat vach INC dem_vong ;tang so vong di duoc CJNE dem_vong,#1,v_2;so vong=1 nhay den nhan VONG_1 SJMP VONG_1 v_2: CJNE dem_vong,#2,v_3;so vong=2 nhay den nhan VONG_2 SJMP VONG_2 v_3: CJNE dem_vong,#3,thoatdo SJMP VONG_3 ;so vong=3 nhay den nhan VONG_3 vong_1: LCALL HET_VONG_1 ;goi chuong trinh HET_VONG_1 SJMP thoatdo vong_2: LCALL HET_VONG_2 ;goi chuong trinh HET_VONG_2 SJMP thoatdo vong_3: LCALL HET_VONG_3 ;goi chuong trinh HET_VONG_3 SJMP thoatdo thoatdo: LJMP dithang1 ;do lai tu dau ;============================================================= ;************************************************************* ;Ham chuyen dong ;============================================================= tien: SETB thuan_trai ;IN1=1 CLR dao_trai ;IN2=0 SETB thuan_phai ;IN3=1 CLR dao_phai ;IN4=0 RET lui: CLR thuan_trai ;IN1=0 SETB dao_trai ;IN2=1 CLR thuan_phai ;IN3=0 SETB dao_phai ;IN4=1 MOV xung_trai,#60 MOV xung_phai,#60 RET dung: ;dung tam thoi 20ms CLR banh_trai ;EN1=0 CLR banh_phai ;EN2=0 LCALL delay20ms SETB banh_trai ;EN1=1 SETB banh_phai ;EN2=1 RET dung_han: ;dung han CLR banh_trai ;EN1=0 CLR banh_phai ;EN2=0 RET cua_trai: CLR thuan_trai ;IN1=0 SETB dao_trai ;IN2=1 SETB thuan_phai ;IN3=1 CLR dao_phai ;IN4=0 MOV xung_trai,#100 ;banh trai MOV xung_phai,#100 ;banh phai RET cua_phai: SETB thuan_trai ;IN1=1 CLR dao_trai ;IN2=0 CLR thuan_phai ;IN3=0 SETB dao_phai ;IN4=1 MOV xung_trai,#100 ;banh trai MOV xung_phai,#100 ;banh phai RET cua_trai_manh: CLR thuan_trai SETB dao_trai SETB thuan_phai CLR dao_phai MOV xung_trai,#30 ;banh trai MOV xung_phai,#100 ;banh phai RET cua_phai_manh: SETB thuan_trai CLR dao_trai CLR thuan_phai SETB dao_phai MOV xung_trai,#100 ;banh trai MOV xung_phai,#30 ;banh phai RET cua_vuong_trai: LCALL cua_trai_manh loop1: MOV A,P3 ANL A,#00010000b CJNE A,#00000000b,cua_trai_tiep ;neu sensor dang truoc chua bat vach ;thi tiep tuc quay trai JMP thoat_cua_trai cua_trai_tiep: LCALL cua_trai_manh JMP loop1 thoat_cua_trai: RET dung im quay thuan 100% quay thuan 100% dung im quay nguoc 70% quay thuan 100% quay thuan 100% quay nguoc 70% cua_vuong_phai: LCALL cua_phai_manh loop2: MOV A,P3 ANL A,#00010000b CJNE A,#00000000b,cua_phai_tiep ;neu sensor dang truoc chua bat vach ;thi tiep tuc quay phai JMP thoat_cua_phai cua_phai_tiep: LCALL cua_phai_manh JMP loop2 thoat_cua_phai: RET quay_xe: ;quay nguoc xe lai LCALL cua_phai_manh loop3: MOV A,P3 ANL A,#00000010b CJNE A,#00000000b,quay_tiep ;neu sensor chua bat vach ;thi tiep tuc quay phai JMP thoat_cua_phai quay_tiep: LCALL cua_phai_manh JMP loop3 RET HET_VONG_1: ;xe di het vong thi goi ham LCALL tien MOV xung_trai,#100 ;can tien len mot chut de MOV xung_phai,#100 ;thoat khoi truong hop LCALL delay200ms ;tranh lap lai CLR LCD_light ;bat den LCD LCALL dung_han ;dung lai de hien thi MOV DPTR,#STR19 ;hien thi”HET VONG” LCALL HIEN_THI_STRING LCALL delay2s ;tre 2s LCALL XOA_MAN_HINH ;xoa man hinh SETB LCD_light ;tat den LCD SETB banh_trai ;EN1=1 SETB banh_phai ;EN2=1 RET HET_VONG_2: ;xe di het vong thi goi ham LCALL tien MOV xung_trai,#100 MOV xung_phai,#100 LCALL delay200ms CLR LCALL MOV LCALL LCALL LCALL SETB SETB SETB RET HET_VONG_3: LCALL MOV MOV LCALL CLR LCALL MOV LCALL LCALL LCALL LCALL LCD_light dung_han DPTR,#STR20 HIEN_THI_STRING delay2s XOA_MAN_HINH LCD_light banh_trai banh_phai ;hien thi“HET VONG” ;xe di het vong thi goi ham tien xung_trai,#100 xung_phai,#100 delay200ms LCD_light dung_han DPTR,#STR21 ;hien thi “HET VONG” HIEN_THI_STRING dung_han delay2s XOA_MAN_HINH LCALL MOV LCALL LCALL LCALL MOV LCALL LCALL LCALL NHAP_NHAY_TAT_BAT;den LCD tat roi bat len DPTR,#STR22 ;hien thi “MET QUA !” HIEN_THI_STRING delay2s ve_dau_dong_2 DPTR,#STR23 ;hien thi “NGHI TI DA !” HIEN_THI_STRING delay4s XOA_MAN_HINH LCALL MOV LCALL LCALL SETB MOV SETB SETB LCALL NHAP_NHAY_TAT_BAT DPTR,#STR24 ;hien thi ”QUAY DAU DI TIEP !” HIEN_THI_STRING XOA_MAN_HINH LCD_light ;tat den LCD dem_vong,#0 ;reset so vong dem banh_trai ;EN1=1 banh_phai ;EN2=1 QUAY_XE ;goi ham quay dau xe de di theo ;chieu nguoc lai RET ;============================================================= ;************************************************************* ;Chuong trinh Bam xung - Ngat Timer ;============================================================= ngattimer0: ;thanh ghi A làm bien dem de tao rong xung ;R0 la bien dem ;bam vao IN1 va IN3 CLR TR0 ;Dung bo dem CLR TF0 ;xoa TF0 MOV nho_a,A CJNE R0,#100,trai MOV R0,#0 SJMP thoat trai: CLR C MOV A,xung_trai ;A=do rong xung trai SUBB A,R0 ;R0 C=0 ;R0>A (da du rong vao IN1) => C=1 CPL C ;dao C de dua vao IN1 MOV thuan_trai,C phai: CLR C MOV A,xung_phai ;A=do rong xung phai SUBB A,R0 ;R0 C=0 ;R0>A (da du rong vao IN3) => C=1 CPL C ;dao C de dua vao IN3 MOV thuan_phai,C thoat: INC R0 MOV A,nho_a SETB TR0 RETI ;============================================================= ;************************************************************* ;Hien thi tren LCD ;============================================================= LCD_INIT: MOV A,#38H ;2 line 5x7 ACALL COMMAND MOV A,#0CH ;LCD on cursor on ACALL COMMAND MOV A,#01H ;clear LCD ACALL COMMAND MOV A,#06H ;shift cursor right ACALL COMMAND CLR LCD_light ;bat den LCD RET GIOI_THIEU_TREN_LCD: MOV DPTR,#str1 ;DH BACH KHOA HN LCALL hien_thi_string LCALL delay1_5s LCALL ve_dau_dong_2 MOV DPTR,#str1b ;BAI TAP LON VDK LCALL hien_thi_string LCALL delay1_5s LCALL XOA_MAN_HINH LCALL MOV LCALL LCALL LCALL MOV LCALL LCALL LCALL NHAP_NHAY_TAT_BAT DPTR,#STR2 ;DE TAI: HIEN_THI_STRING delay1_5s ve_dau_dong_2 DPTR,#str3 ;XE DO DUONG hien_thi_string delay1_5s XOA_MAN_HINH LCALL MOV LCALL LCALL LCALL MOV LCALL LCALL LCALL NHAP_NHAY_TAT_BAT DPTR,#STR4 ;GV HUONG DAN HIEN_THI_STRING delay1_5s ve_dau_dong_2 DPTR,#str5 ;NG HONG QUANG hien_thi_string delay1_5s XOA_MAN_HINH LCALL MOV LCALL LCALL LCALL MOV LCALL LCALL LCALL NHAP_NHAY_TAT_BAT DPTR,#STR6 ;THUC HIEN HIEN_THI_STRING delay1_5s ve_dau_dong_2 DPTR,#str7 ;NHOM 2-TDH4 hien_thi_string delay1_5s XOA_MAN_HINH LCALL MOV LCALL LCALL NHAP_NHAY_TAT_BAT DPTR,#STR8 ;DANG DINH HOANG HIEN_THI_STRING delay1_5s LCALL MOV LCALL LCALL LCALL ve_dau_dong_2 DPTR,#str9 ;NGUYEN DUC NGHIA hien_thi_string delay1_5s XOA_MAN_HINH LCALL MOV LCALL LCALL LCALL NHAP_NHAY_TAT_BAT DPTR,#STR10 ;LE CAO SON HIEN_THI_STRING delay1_5s ve_dau_dong_2 MOV LCALL LCALL LCALL DPTR,#str11 ;LUU BACH TAN hien_thi_string delay2s XOA_MAN_HINH MOV LCALL LCALL LCALL LCALL LCALL DPTR,#STR12 ;3 DICH_CON_TRO NHAP_NHAY_TAT_BAT HIEN_THI_STRING delay1s XOA_MAN_HINH MOV LCALL LCALL LCALL LCALL LCALL DPTR,#STR13 ;2 DICH_CON_TRO NHAP_NHAY_TAT_BAT HIEN_THI_STRING delay1s XOA_MAN_HINH MOV LCALL LCALL LCALL LCALL LCALL DPTR,#STR14 ;1 DICH_CON_TRO NHAP_NHAY_TAT_BAT HIEN_THI_STRING delay1s XOA_MAN_HINH MOV DPTR,#STR15 ;START LCALL DICH_CON_TRO LCALL NHAP_NHAY_TAT_BAT LCALL HIEN_THI_STRING LCALL delay2s LCALL XOA_MAN_HINH SETB LCD_light ;tat den LCD RET HIEN_THI_STRING: ;hien thi chuoi ki tu CLR A MOVC A,@A+DPTR JZ HET_STRING ;neu ki tu cuoi la thi thoat LCALL data_display INC DPTR LJMP HIEN_THI_STRING HET_STRING: RET ;************************************************************* ;Thu vien ham LCD XOA_MAN_HINH: MOV A,#01H LCALL command RET TRO_VE_DAU_DONG: MOV A,#02H LCALL command RET DICH_CON_TO_SANG_TRAI: MOV A,#04H LCALL command RET DICH_CON_TO_SANG_PHAI: MOV A,#06H LCALL command RET DICH_HIEN_THI_SANG_PHAI: MOV A,#05H LCALL command RET DICH_HIEN_THI_SANG_TRAI: MOV A,#07H LCALL command RET TAT_CON_TRO_TAT_HIEN_THI: MOV A,#08H LCALL command RET BAT_CON_TRO_TAT_HIEN_THI: MOV A,#0A0H LCALL command RET TAT_CON_TRO_BAT_HIEN_THI: MOV A,#0CH LCALL command RET NHAP_NHAY_CON_TRO: MOV A,#0EH LCALL command RET DICH_CON_TRO_SANG_TRAI: MOV A,#10H LCALL command RET DICH_CON_TRO_SANG_PHAI: MOV A,#14H LCALL command RET DICH_TOAN_BO_SANG_TRAI: MOV A,#18H LCALL command RET DICH_TOAN_BO_SANG_PHAI: MOV A,#01CH LCALL command RET VE_DAU_DONG_1: MOV A,#80H LCALL command RET VE_DAU_DONG_2: MOV A,#0C0H LCALL command RET COMMAND: ;Ham viet lenh ACALL READY ;cho den LCD san sang MOV LCD,A ;dua code lenh cong LCD CLR RS ;RS=0 truy cap ghi lenh CLR RW ;R/W=0 viet SETB E ;E=1 H-to-L CLR E ;chot du lieu RET DATA_DISPLAY: ;Hien thi ki tu ACALL READY ;cho den LCD san sang MOV LCD,A ;dua code du lieu cong LCD SETB RS ;RS=1 truy cap ghi du lieu CLR RW ;R/W=0 viet SETB E ;E=1 xung H-to-L CLR E ;E=0 chot RET READY: ;Ham cho co LCD san sang nhan lenh SETB BUSY ;Bit BUSY lam dau vao CLR RS ;RS=0 truy cap ghi lenh SETB RW ;R/W=1 doc BACK: CLR E ;L-to-H SETB E ;chot du lieu doc vao JB BUSY,BACK ;cho den flag=0 RET NHAP_NHAY: SETB LCD_light LCALL delay1s CLR LCD_light RET DICH_CON_TRO: MOV R5,#6 dich: LCALL DICH_CON_TRO_SANG_PHAI DJNZ R5,dich RET ;============================================================= ;************************************************************* ;Cac ham delay ;============================================================= delay1: MOV MOV ;Ham tre 50ms TH1,#03Ch TL1,#0B0h SETB wait: JNB CLR CLR DJNZ RET delay2: MOV MOV TR1 SETB wait1: JNB CLR CLR DJNZ RET TR1 ;FFFF-3CB0=49999+1 chu ki ;quay vong=50000us=50ms ;bat timer1 TF1,wait TR1 TF1 R7,delay1 ;Ham tre 10ms TH1,#0FFh TL1,#0F5h TF1,wait1 TR1 TF1 R7,delay2 ;FFFF-FFF5=49999+1 chu ki ;quay vong=50000us=50ms ;bat timer1 delay20ms: MOV R7,#2 LJMP delay2 delay50ms: MOV R7,#1 LJMP delay1 delay100ms: MOV R7,#2 LJMP delay1 delay200ms: MOV R7,#4 LJMP delay1 delay300ms: MOV R7,#6 LJMP delay1 delay500ms: MOV R7,#10 LJMP delay1 delay1s: MOV R7,#20 LJMP delay1 delay1_5s: MOV R7,#30 LJMP delay1 delay2s: MOV R7,#40 LJMP delay1 delay4s: MOV R7,#80 LJMP delay1 ;============================================================= ;************************************************************* ;Khai bao cac xau ki tu ;============================================================= str1: DB "DH BACH KHOA HN",0 STR1B: DB "BAI TAP LON VDK",0 str2: DB "DE TAI:",0 str3: DB "XE DO DUONG",0 STR4: DB "GV HUONG DAN:",0 STR5: DB "NG HONG QUANG",0 STR6: DB "THUC HIEN:",0 STR7: DB "NHOM 2-TDH4",0 STR8: DB "DANG DINH HOANG",0 STR9: DB "NGUYEN DUC NGHIA",0 STR10: STR11: str12: str13: str14: str15: str16: str17: str18: str19: str20: str21: str22: str23: str24: DB DB db db db db db db db db db db db db db "LE CAO SON",0 "LUU BACH TAN",0 "3 ",0 "2 ",0 "1 ",0 "START ",0 "LECH TRAI",0 "LECH PHAI",0 "KHONG LECH",0 "HET VONG",0 "HET VONG",0 "HET VONG",0 "MET QUA !",0 "NGHI TI DA !",0 "QUAY DAU DI TIEP",0 END CÁC DATASHEET AT89S52 LM324 L293D LM7805 LCD 16x2 A1015 [...]... nạp thực tế: 2 MÔ TẢ PHẦN CỨNG CPU Cấu trúc chung của bộ vi điều khiển 8051: Một số thành phần chính của bộ vi điều khiển 8051:  CPU: bộ não của vi điều khiển, thực hiện các phép toán số học, logic  Các cổng vào ra để nhận, truyền dữ liệu ra các mạch ngoại vi khác ở bên ngoài hoặc cũng có thể dùng để định địa chỉ khi sử dụng bộ nhớ ngoài  Rom: nơi lưu trữ bộ nhớ chương trình để CPU thực hiện các lệnh,... 5V và 6 sợi truyền tín hiệu của mạch SENSORS về cho vi điều khiển 3 Hình ảnh xe: THIẾT KẾ PHẦN MỀM Chương trình viết cho vi điều khiển sử dụng ngôn ngữ Assembler với trình dịch là phần mềm Keil C Ưu điểm của ngôn ngữ Assembler là mã nguồn chạy nhanh và gọn, giúp sinh viên nắm chắc cấu trúc phần cứng của vi điều khiển cũng như các bước lập trình phần mềm Tuy nhiên nhược điểm của ngôn ngữ này là khó hiểu... chỉ gián tiếp để truy cập 128 byte Ram thêm MÔ TẢ THIẾT KẾ CÁC PHẦN KHÁC  Thân xe Thân xe được làm từ một miếng nhựa tổng hợp, kích thước 15x20 cm, đằng trước có gắn bánh lái có thể quay 360 o, do vậy chuyển động của xe phần lớn do hai bánh sau quyết định Hai bánh đằng sau được lắp vào hai trục của động cơ một chiều để lái chiều chuyển động của xe Hai động cơ sử dụng là động cơ một chiều loại 15V được...Trong khối này còn sử dụng một công tắc nguồn, có tác dụng bật tắt động cơ khi điều chỉnh vị trí của xe trước khi chạy Bảng chân lý mô tả hoạt động của L293D trên một kênh như sau Giả sử ta cần điều khiển động cơ bên trái Ba chân cần điều khiển là IN1, IN2, EN1 và đầu ra OUT1 OUT2 của L293D được nối với hai dây của động cơ một chiều TRẠNG THÁI IN1 IN2 EN1 DỪNG X X 0 QUAY THUẬN 1 0 1 QUAY NGƯỢC 0 1 1 Mạch... các lệnh, điều khiển hoạt động của vi điều khiển  Ram: bộ nhớ trong  Các bộ timer, bộ đếm: được sử dụng rất nhiều để tạo trễ, dùng trong hoạt động ngắt  Cổng nối tiếp để truyền thông máy tinh  ……  Các bus dữ liệu, bus điều khiển, bus địa chỉ để liên kết các khối trong vi điều khiển Vi điều khiển sử dụng trong bài tập này là AT89S52 của hãng Atmel Một số đặc điểm chỉnh của vi điều khiển này như sau:... sau: o Tương thích với tập lệnh 8051 o 8K bộ nhớ FLASH hỗ trợ nạp ISP o Điện áp hoạt động là 4.0V-5.5V o Tần số dao động cấp là 0-33Mhz o 256x8b Ram nội o 32 đường xuất nhập o 3 bộ định thời 16 bit o 8 nguồn ngắt o Hỗ trợ truyền thông máy tính cổng nối tiếp Với các đặc điểm trên, vi điều khiển AT89S52 hoàn toàn đủ mạnh để giải quyết yêu cầu đặt ra của đề bài Sơ đồ chân của vi điều khiển AT89S52 được... tra điện áp đưa ra từ khối nguồn: 4.99V  Kiểm tra điện áp trên cực Anot led thu khi qua và không qua vạch đen: tốt  Kiểm tra hoạt động của tín hiệu gửi về thông qua led báo: tốt  Kiểm tra hoạt động mạch nạp: tốt  Kiểm tra hoạt động của LCD: tốt  Kiểm tra hoạt động của IC L293: tốt 3 KẾT QUẢ ĐẠT ĐƯỢC VÀ PHÂN TÍCH LỖI Trong quá trình thực hiện bài tập lớn, chúng em gặp một số khó khăn sau và đã từng... nghiệm về thiết kế mạch thực tế, cần giải quyết các vấn đề: vẽ mạch nguyên lý và mạch in sử dụng hai phần mềm Orcad Capture và Orcad Layout trong bộ sản phẩm Orcad v10.0 của hãng Cadense, các kĩ thuật sắp xếp linh kiện, đi dây, kĩ thuật làm mạch thủ công bằng phương pháp là Khắc phục: Học cách sử dụng các phần mềm nói trên với nhiều tutorial trên các diễn đàn như www.dientuvietnam.net, www.picvietnam.com... lại Về cách làm mạch bằng phương pháp là: học trên mạng và kinh nghiệm của các bạn đã từng làm mạch Tuy nhiên để ra được hai mạch chạy ổn định thì cũng đã hỏng mất vài cái Mạch SENSORS Mạch vi VI ĐIỀU KHIỂN VÀ ĐỘNG CƠ  Lập trình Đây có thể coi là vấn đề phức tạp nhất vì là linh hồn của xe tự hành, điều khiển toàn bộ hoạt động của xe và cũng là vấn đề tiêu tốn nhiều thời gian nhất Vấn đề 1: Đọc và... Điều quan trọng là chúng em đã làm được một sản phẩm dựa trên những kiến thức đã học vì từ lý thuyết ra thực tế là cả một quãng đường dài Bài tập này giúp chúng em hiểu thêm cấu trúc của Vi điều khiển 8051 cũng như tập lệnh của nó, tạo tiền đề để tiếp tục nghiên cứu các vi điều khiển ứng dụng mạnh hơn như AVR, PIC, ARM…., các bộ PLC, các hệ thống SCADA, DSC…, phục vụ cho quá trình làm việc, nghiên cứu

Ngày đăng: 30/10/2015, 16:40

TỪ KHÓA LIÊN QUAN

w