Bai giu xe tu dong dung PIC

67 75 0
  • Loading ...
1/67 trang

Thông tin tài liệu

Ngày đăng: 29/06/2020, 21:14

Bai giu xe tu dong dung PIC, on ap 7805..Thiet ke tinh toan mach ,so do khoi ,luu do giai thuat chuong trinh chay.Gioi thieu chung cac linh kien su dung trong machChon BJT cong suat de lam mach cau ,dian ap cao nhat maf 2 BJT nay co the chiu dung duoc la 100V va toi da laf 6A,chi laf danh nghia ,thuc te co the thap hon MỤC LỤC  NỘI DUNG TRANG CHƯƠNG I: GIỚI THIỆU LINH KIỆN 1 Pic 16F877A IC ổn áp 7805 27 Diode .27 Điện trở 32 Tụ điện 33 Transistor .38 Mạch cầu H 50 CHƯƠNG II: SƠ ĐỒ KHỐI .59 Sơ đồ khối 59 Chức khối 60 Nguyên lý hoạt động mạch 60 CHƯƠNG III: THIẾT KẾ VÀ TÍNH TỐN MẠCH 63 Khối nguồn 63 Khối vi điều khiển 64 Khối hiển thị 65 Khối quang led 66 Khối điều khiển động .67 Khối cảm biến .68 CHƯƠNG IV: LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH .70 Chương trình .70 Lưu đồ giải thuật 79 Sơ đồ nguyên lý 79 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .80 Kết luận 80 Hướng phát triển 80 CHƯƠNG I GIỚI THIỆU LINH KIỆN 1 PIC 16F877A 1.1 PIC LÀ GÌ ? - PIC viết tắt “Programable Intelligent Computer”, tạm dịch “máy tính thơng minh khả trình” hãng Genenral Instrument đặt tên cho vi điều khiển họ - PIC1650 thiết kế để dùng làm thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau nghiên cứu phát triển thêm từ hình thành nên dòng vi điều khiển PIC ngày 1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC? - Hiện thị trường có nhiều họ vi điều khiển 8051, Motorola 68HC, AVR, ARM, Ngoài họ 8051 hướng dẫn cách môi trường đại học, thân người viết chọn họ vi điều khiển PIC để mở rộng vốn kiến thức phát triển ứng dụng cơng cụ ngun nhân sau:  Họ vi điều khiển tìm mua dễ dàng thị trường Việt Nam  Giá thành khơng q đắt  Có đầy đủ tính vi điều khiển hoạt động độc lập  Là bổ sung tốt kiến thức ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051 - Số lượng người sử dụng họ vi điều khiển PIC Hiện Việt Nam giới, họ vi điều khiển sử dụng rộng rãi Điều tạo nhiều thuận lợi trình tìm hiểu phát triển ứng dụng như: số lượng tài liệu, số lượng ứng dụng mở phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm dẫn gặp khó khăn,… - Sự hỗ trợ nhà sản xuất trình biên dịch, cơng cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,… - Các tính đa dạng vi điều khiển PIC, tính khơng ngừng phát triển 1.3 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC - Các kí hiệu vi điều khiển PIC:  PIC12xxxx: độ dài lệnh 12 bit  PIC16xxxx: độ dài lệnh 14 bit  PIC18xxxx: độ dài lệnh 16 bit  C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM)  F: PIC có nhớ flash  LF: PIC có nhớ flash hoạt động điện áp thấp  LV: tương tự LF, kí hiệu cũ - Bên cạnh số vi điệu khiển có kí hiệu xxFxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, PIC16F877A flash) - Ngồi có thêm dòng vi điều khiển PIC dsPIC Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất Cách lựa chọn vi điều khiển PIC phù hợp: - Trước hết cần ý đến số chân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, chí có vi điều khiển có chân, ngồi có vi điều khiển 28, 40, 44, … chân Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chương trình nhiều lần - Tiếp theo cần ý đến khối chức tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên - Sau cần ý đến nhớ chương trình mà vi điều khiển cho phép - Ngồi thông tin cách lựa chọn vi điều khiển PIC tìm thấy sách “Select PIC guide” nhà sản xuất Microchip cung cấp 1.4 NGƠN NGỮ LẬP TRÌNH CHO PIC Ngơn ngữ lập trình cho PIC đa dạng Ngơn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí nhà sản xuất Microchip), ngơn ngữ lập trình cấp cao bao gồm C, Basic, Pascal, … Ngồi có số ngơn ngữ lập trình phát triển dành riêng cho PIC PICBasic, MikroBasic,… 1.5 MẠCH NẠP PIC - Đây dòng sản phẩm đa dạng dành cho vi điều khiển PIC Có thể sử dụng mạch nạp cung cấp nhà sản xuất hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng sản phẩm để nạp cho vi điều khiển khác thơng qua chương trình MPLAB Dòng sản phẩm thống có ưu nạp cho tất vi điều khiển PIC, nhiên giá thành cao thường gặp nhiều khó khăn q trình mua sản phẩm - Ngồi tính cho phép nhiều chế độ nạp khác nhau, có nhiều mạch nạp thiết kế dành cho vi điều khiển PIC Có thể sơ lược số mạch nạp cho PIC sau: - JDM programmer: mạch nạp dùng chương trình nạp Icprog cho phép nạp vi điều khiển PIC có hỗ trợ tính nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết mạch nạp hỗ trợ tính nạp chương trình - WARP-13A MCP-USB: hai mạch nạp giống với mạch nạp PICSTART PLUS nhà sản xuất Microchip cung cấp, tương thích với trình biên dịch MPLAB, nghĩa ta trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà khơng cần sử dụng chương trình nạp khác, chẳng hạn ICprog P16PRO40: mạch nạp Nigel thiết kế tiếng Ơng thiết kế chương trình nạp, nhiên ta sử dụng chương trình nạp Icprog - Mạch nạp Universal Williem: mạch nạp chuyên dụng dành cho PIC P16PRO40 - Các mạch nạp kể có ưu điểm lớn đơn giản, rẻ tiền, hồn tồn tự lắp ráp cách dễ dàng, thông tin sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra chương trình nạp dễ dàng tìm download miễn phí thơng qua mạng Internet Tuy nhiên mạch nạp có nhược điểm hạn chế số vi điều khiển hỗ trợ, bên cạnh mạch nạp cần sử dụng với chương trình nạp thích hợp 1.6 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A 1.7 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A Đây vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368x8 byte RAM nhớ liệu EEPROM với dung lượng 256x8 byte Số PORT I/O với 33 pin I/O Các đặc tính ngoại vi bao gồm khối chức sau:  Timer0: đếm bit với chia tần số bit  Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep  Timer2: đếm bit với chia tần số, postcaler  Hai Capture/so sánh/điều chế độ rông xung  Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C  Chuẩn giao tiếp nối tiếp USART với bit địa  Cổng giao tiếp song song PSP (Parallel Slave Port) với chân điều khiển RD, WR,  CS bên ngồi  Các đặc tính Analog:  kênh chuyển đổi ADC 10 bit Hai so sánh Bên cạnh vài đặc tính khác vi điều khiển như: Bộ nhớ flash với khả ghi xóa 100.000 lần Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần Dữ liệu nhớ EEPROM lưu trữ 40 năm Khả tự nạp chương trình với điều khiển phần mềm Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân Watchdog Timer với dao động  Chức bảo mật mã chương trình  Chế độ Sleep  Có thể hoạt động với nhiều dạng Oscillator khác       1.8 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A Sơ đồ khối vi điều khiển PIC16F877A 1.9 TỔ CHỨC BỘ NHỚ Cấu trúc nhớ vi điều khiển PIC16F877A bao gồm nhớ chương trình (Program memory) nhớ liệu (Data Memory) a BỘ NHỚ CHƯƠNG TRÌNH - Bộ nhớ chương trình vi điều khiển PIC16F877A nhớ flash, dung lượng nhớ 8K word (1 word = 14 bit) phân thành nhiều trang (từ page0 đến page 3) - Như nhớ chương trình có khả chứa 8*1024 = 8192 lệnh (vì lệnh sau mã hóa có dung lượng word (14 bit) - Để mã hóa địa 8K word nhớ chương trình, đếm chương trình có dung lượng 13 bit (PC) - Khi vi điều khiển reset, đếm chương trình đến địa 0000h (Reset vector) Khi có ngắt xảy ra, đếm chương trình đến địa 0004h (Interrupt vector) - Bộ nhớ chương trình khơng bao gồm: Bộ nhớ stack không địa hóa đếm chương trình Bộ nhớ stack đề cập cụ thể phần sau b BỘ NHỚ DỮ LIỆU Bộ nhớ liệu PIC nhớ EEPROM chia làm nhiều bank Đối với PIC16F877A nhớ liệu chia làm bank Mỗi bank có dung lượng 128 byte, bao gồm ghi có chức đặc biệt SFG (Special Function Register) nằm vùng địa thấp ghi mục đích chung GPR (General Purpose Register) nằm vùng địa lại bank Các ghi SFR thường xuyên sử dụng (ví dụ ghi STATUS) đặt tất cà bank nhớ liệu giúp thuận tiện trình truy xuất làm giảm bớt lệnh chương trình Sơ đồ cụ thể nhớ liệu PIC16 Bộ nhớ liệu 1.10 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A - Cổng xuất nhập (I/O port) phương tiện mà vi điều khiển dùng để tương tác với giới bên Sự tương tác đa dạng thông qua trình tương tác đó, chức vi điều khiển thể cách rõ ràng - Một cổng xuất nhập vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí chức vi điều khiển mà số lượng cổng xuất nhập số lượng chân cổng khác Bên cạnh đó, vi điều khiển tích hợp sẵn bên đặc tính giao tiếp ngoại vi nên bên cạnh chức cổng xuất nhập thơng thường, số chân xuất nhập có thêm chức khác để thể tác động đặc tính ngoại vi nêu giới bên Chức chân xuất nhập cổng hồn tồn xác lập điều khiển thông qua ghi SFR liên quan đến chân xuất nhập - Vi điều khiển PIC16F877A có cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD PORTE Cấu trúc chức cổng xuất nhập đề cập cụ thể phần sau a PORTA - PORTA (RPA) bao gồm I/O pin Đây chân “hai chiều” (bidirectional pin), nghĩa xuất nhập Chức I/O điều khiển ghi TRISA (địa 85h) Muốn xác lập chức chân PORTA input, ta “set” bit điều khiển tương ứng với chân ghi TRISA ngược lại, muốn xác lập chức chân PORTA output, ta “clear” bit điều khiển tương ứng với chân ghi TRISA Thao tác hoàn toàn tương tự PORT ghi điều khiển tương ứng TRIS (đối với PORTA TRISA, PORTB TRISB, PORTC TRISC, PORTD TRISD vàđối với PORTE TRISE) Bên cạnh PORTA ngõ ADC, so sánh, ngõ vào analog ngõ vào xung clock Timer0 ngõ vào giao tiếp MSSP (Master Synchronous Serial Port) Đặc tính trình bày cụ thể phần sau - Cấu trúc bên chức cụ thể chân PORTA trình bày cụ thể Phụ lục - Các ghi SFR liên quan đến PORTA bao gồm:  PORTA (địa 05h): chứa giá trị pin PORTA  TRISA (địa 85h): điều khiển xuất nhập  CMCON (địa 9Ch): ghi điều khiển so sánh  CVRCON (địa 9Dh): ghi điều khiển so sánh điện áp ADCON1 (địa 9Fh): ghi điều khiển ADC b PORTB - PORTB (RPB) gồm pin I/O Thanh ghi điều khiển xuất nhập tương ứng TRISB Bên cạnh số chân PORTB sử dụng q trình nạp chương trình cho vi điều khiển với chế độ nạp khác PORTB liên quan đến ngắt ngoại vi Timer0 PORTB tích hợp chức điện trở kéo lên điều khiển chương trình - Cấu trúc bên chức cụ thể chân PORTB trình bày cụ thể Phụ lục - Các ghi SFR liên quan đến PORTB bao gồm: PORTB (địa 06h,106h) : chứa giá trị pin PORTB TRISB (địa 86h,186h) : điều khiển xuất nhập OPTION_REG (địa 81h,181h) : điều khiển ngắt ngoại vi Timer0 c PORTC - PORTC (RPC) gồm pin I/O Thanh ghi điều khiển xuất nhập tương ứng TRISC Bên cạnh PORTC chứa chân chức so sánh, Timer1, PWM chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART - Cấu trúc bên chức cụ thể chân PORTC trình bày cụ thể Phụ lục - Các ghi điều khiển liên quan đến PORTC: PORTC (địa 07h): chứa giá trị pin PORTC TRISC (địa 87h): điều khiển xuất nhập d PORTD - PORTD (RPD) gồm chân I/O, ghi điều khiển xuất nhập tương ứng TRISD PORTD cổng xuất liệu chuẩn giao tiếp PSP (Parallel Slave Port) Cấu trúc bên chức cụ thể chân PORTD trình bày cụ thể Phụ lục - Các ghi liên quan đến PORTD bao gồm:  Thanh ghi PORTD: chứa giá trị pin PORTD  Thanh ghi TRISD: điều khiển xuất nhập  Thanh ghi TRISE: điều khiển xuất nhập PORTE chuẩn giao tiếp PSP e PORTE - PORTE (RPE) gồm chân I/O Thanh ghi điều khiển xuất nhập tương ứng TRISE Các chân PORTE có ngõ vào analog Bên cạnh PORTE chân điều khiển chuẩn giao tiếp PSP - Cấu trúc bên chức cụ thể chân PORTE trình bày cụ thể Phụ lục - Các ghi liên quan đến PORTE bao gồm:  PORTE: chứa giá trị chân PORTE  TRISE: điều khiển xuất nhập xác lập thông số cho chuẩn giao tiếp PSP  ADCON1: ghi điều khiển khối ADC 1.11 TIMER_0 Sơ đồ khối Timer0 - Đây ba đếm định thời vi điều khiển PIC16F877A Timer0 đếm bit kết nối với chia tần số (prescaler) bit Cấu trúc Timer0 cho phép ta lựa chọn xung clock tác động cạnh tích cực xung clock Ngắt Timer0 xuất Timer0 bị tràn Bit TMR0IE (INTCON) bit điều khiển Timer0 TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= không cho phép ngắt Timer0 tác động - Muốn Timer0 hoạt động chế độ Timer ta clear bit TOSC (OPTION_REG), giá trị ghi TMR0 tăng theo chu kì xung đồng hồ (tần số vào Timer0 ¼ tần số oscillator) Khi giá trị ghi TMR0 từ FFh trở 00h, ngắt Timer0 xuất Thanh ghi TMR0 cho phép ghi xóa giúp ta ấn định thời điểm ngắt Timer0 xuất cách linh động - Muốn Timer0 hoạt động chế độ counter ta set bit TOSC (OPTION_REG) Khi xung tác động lên đếm lấy từ chân RA4/TOCK1 Bit TOSE (OPTION_REG) cho phép lựa chọn cạnh tác động vào bột đếm Cạnh tác động cạnh lên TOSE=0 cạnh tác động cạnh xuống TOSE=1 - Khi ghi TMR0 bị tràn, bit TMR0IF (INTCON) set Đây cờ ngắt Timer0 Cờ ngắt phải xóa chương trình trước đếm bắt đầu thực lại trình đếm Ngắt Timer0 “đánh thức” vi điều khiển từ chế độ sleep - Bộ chia tần số (prescaler) chia sẻ Timer0 WDT (Watchdog Timer) Điều có nghĩa prescaler sử dụng cho Timer0 WDT khơng có hỗ trợ prescaler ngược lại Prescaler điều khiển ghi OPTION_REG Bit PSA (OPTION_REG) xác định đối tượng tác động prescaler Các bit PS2:PS0 (OPTION_REG) xác định tỉ số chia tần số prescaler Xem lại ghi OPTION_REG để xác định lại cách chi tiết bit điều khiển Các lệnh tác động lên giá trị ghi TMR0 xóa chế độ hoạt động prescaler Khi đối tượng tác động Timer0, tác động lên giá trị ghi TMR0 xóa prescaler không làm thay đổi đối tượng tác động prescaler Khi đối tượng tác động WDT, lệnh CLRWDT xóa prescaler, đồng thời prescaler ngưng tác vụ hỗ trợ cho WDT - Các ghi điều khiển liên quan đến Timer0 bao gồm:  TMR0 (địa 01h, 101h): chứa giá trị đếm Timer0  INTCON (địa 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE PEIE)  OPTION_REG (địa 81h, 181h): điều khiển prescaler 1.12 TIMER_1 - Timer1 định thời 16 bit, giá trị Timer1 lưu hai ghi (TMR1H:TMR1L) Cờ ngắt Timer1 bit TMR1IF (PIR1) Bit điều khiển Timer1 TMR1IE (PIE) Tương tự Timer0, Timer1 có hai chế độ hoạt động: chế độ định thời (timer) với xung kích xung clock oscillator (tần số timer ¼ tần số oscillator) chế độ đếm (counter) với xung kích xung phản ánh kiện cần đếm lấy từ bên ngồi thơng qua chân RC0/T1OSO/T1CKI (cạnh tác động cạnh lên) Việc lựa chọn xung tác động (tương Sơ đồ mạch hiển thị số lượng xe nhiệt độ Do led đoạn gồm nhiều led đơn mắc song song nên: VLED=2V, ILED=10mA  VRC=VCC -VLED=5-2=3V IRC=ILED=10mA  V RC R C= I RC  300 , chọn RC=330  10  Ta có: kIC=  IB  I B= kI C , chọn k=5,  =80   I B= 5.70 4.375mA 80  Ta có: VRB=VCC-VBE=5-0.7=4.3V  V 4.3 RB RB= I  4.375 1k  chọn RB=1k  B KHỐI QUANG LED VC C 5v 1K C 2383 33R C C 2383 33R A C 2383 33R 1K 1K PO R T PORTC D U 1K C 2383 33R C 2383 68R 1K T I 1K C 2383 27R O 1K C 2383 27R C 2383 68R N 1K Mạch quang led (caution!) ! Mỗi chữ khối quang led ghép lại từ led mắc song song, nên cần có giá trị điện trở khác để đảm bảo an toàn cho led Chữ C T có số lượng led 9led: VLED=2V , ILED=90mA  VRC=VCC -VLED=5-2=3V IRC=ILED=90mA V RC R C= I   RC 33 , chọn RC=33  90 Chữ A O có số lượng led 10led: VLED=2V , ILED=100mA  VRC=VCC -VLED=5-2=3V IRC=ILED=100mA V RC R C= I  RC  30 , chọn RC=33  100 Chữ I ! có số lượng led 5led: VLED=2V , ILED=50mA  VRC=VCC -VLED=5-2=3V IRC=ILED=50mA V RC R C= I  RC  60 , chọn RC=68  50 Chữ O vàN có số lượng led 12led: VLED=2V , ILED=120mA  VRC=VCC -VLED=5-2=3V IRC=ILED=120mA V RC R C= I  RC  25 , chọn RC=27  120 Điện trở hạn dòng cho chân B tranzito Ta có: kIC=  IB  I B= kI C , chọn k=5,  =80   I B= 5.120 7.5mA 80 Ta có: VRB=VCC-VBE=5-0.7=4.3V  V 4.3 RB RB= I  7.5 573  chọn RB=680 ~ 1K  B KHỐI DIỀU KHIỂN ĐỘNG CƠ J1 RB4 RB5 VCC 1K 12v 1K TIP42 Q1 1N4007 MOTOR DC 1 Q5 1K 1N4007 TIP42 1K Q2 2N2222 2N2222 TIP41 Q3 1N4007 TIP41 1N4007 Q6 Q4  Tính RB cho transistor: Ta có dòng IE3 = IĐC = 75mA β = 80 Mà công thức tính dòng điện bão hòa : Β*IB3 = k*IC3 (mà IC3 ≈ IE3)  IB3 = k*IC3/β  IB3 > 5*75mA/80  IB3 > 4,6875mA Và RB3 = Vcc/IB3 = 5V/4.6875mA ≈ 1k  Chọn điện trở 1k  Ngoài diode 4007 dùng để bảo vệ transistor động trả điện ngược lại KHỐI CẢM BIẾN VC C 270 10k 270 LED 270 10k Led Thu R 270 k C 1815 Vout Led Phat + 741 1k nguon 5v  Rled thu=Rled phát=Rled= 270~330  hạn dòng Ta có: Vled=2V; Iled=10(mA)  VR=VCC-Vled=5-2=3V IR=Iled=10(mA)  R=VR/IR=3v/10mA=300  Thực tế Rled thu 270 ~ 330  nên chọn Rled thu cao (10k  ) để led thu nhạy hoạt động tốt cự li xa Vì led thu giống quang trở có ánh sáng hồng ngoại mạnh điện áp nghịch qua lớn ngược lại  Tính cho trường hợp khơng có V6 (có Vout led thu dẫn): Khi có khơng có V6 V+ = 0v V- =Vcc*(VRB + 0,27)/(VR+0,54) Để V6 = Vcc V+ < V0 < (Vcc*(VRB + 0,27))/(VR+0,54)  VR + 0,54 < Vcc*VRB + Vcc*0,27  10 + 0,54 < 5*VRB + 5*0,27  10 + 0,54 – 1,35 < 5*VRB  VRB < 0,81/  VRB < 1838  Nên chọn VR có điện trở 10k   Tính RB cho c1815: Ta có: chọn k=5, β =80 IE ≈IC=10mA VRB=Vout-VBE= 5V-0.8V =4,2V Mà: k*IC= β*IB  IB = k*IC/ β  IB = 5*10mA/80 = 0.625mA Nên RB = VRB/IB = 4,2V/0.625mA= 6,72k  Nhưng chọn điện trở 4,7k với điện trở 1k để tạo nên cầu phân áp cho c1815 điện trở 1k dùng để chống nhiễu VB = V6*1/(4,7+1) = 5*1/(4,7+1) =0,877V CHƯƠNG IV LƯU ĐỒ GIẢI THUẬT SƠ ĐỒ NGUYÊN LÝ VÀCHƯƠNG TRÌNH IV Chương trình #include #fuses nowdt,noprotect,nolvp,xt,put #device 16f877*=16 adc=10 #use delay (clock=4000000) #use fast_io(d) #use fast_io(b) #use fast_io(a) #use fast_io(c) #use fast_io(e) #byte portd=0x8 #byte portb=0x6 #byte portc=0x7 #byte porta=0x5 #byte porte=0x9 #bit f=portb.4 //chan kich mo cua xe vao #bit t=portb.5 //chan kich dong cua xe vao #bit k=portb.6 //chan kich mo cua xe #bit l=portb.7 //chan kich dong cua xe #bit a1=porta.1 //quet led dem xe #bit a2=porta.2 #bit a3=porta.4 //quet led nhiet #bit a4=porta.5 #bit b0=portb.0 //cam bien xe vao #bit b1=portb.1 //cam bien xe #bit b2=portb.2 #bit b3=portb.3 #bit e3=porte.2 int mang[10]={192,249,164,176,153,146,130,248,128,144}; int mangg[10]={192,249,164,176,153,146,130,248,128,144}; int i,z,h,dv,chuc,chuct,dvt; float x; int16 y; void doc_adc(); void hienthi(); void xera(); void xevao(); void canhbao(); void racungluc(); void vaocungluc(); void hienthix(); void main() { set_tris_d(0); set_tris_b(0b00001111); set_tris_c(0); set_tris_a(0b00000001); set_tris_e(0b000); z=0; x=0; h=0; h=read_eeprom(0x01); portb=0b00001111; portc=0b00000000; porte=0b000; l=1; t=1; for(i=0;i
- Xem thêm -

Xem thêm: Bai giu xe tu dong dung PIC, Bai giu xe tu dong dung PIC

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn