Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 120 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
120
Dung lượng
5,75 MB
Nội dung
V Biên www.hutech.edu.vn *1.2023.ELD105* tailieuhoctap@hutech.edu.vn : I .I IV VI 1.1 1.1.1 Các th h vi x lý 1.1.2 kh i m t máy tính 1.1.3 kh i c a vi x lý 1.1.4 kh i c a h vi x lý 1.1.5 Giao ti p gi a vi x 1.2 b n b n lý v i b nh 1.2.1 Quá trình phát tri n 1.2.2 8051 11 1.2.3 AVR 12 1.2.4 PIC 12 1.2.5 ARM 13 1.3 PIC 13 1.3.1 M t s 1.3.2 c c m c a PIC 14 m c a h vi u n PIC16F87XA 15 1.3.3 PIC 16F877A 16 25 25 26 2.1 26 2.2 28 2.3 29 2.3.1 M ch u n thi t b DC/AC 29 2.3.2 M ch hi n th dùng led n, 5V 30 2.3.3 M ch hi n th dùng TEXT-LCD 32 2.3.4 M ch u n chi u quay ng DC (m ch c u H) 32 2.3.5 M ch u n phím nh n 34 36 36 BÀI 3: CCS PIC-C COMPILER 40 3.1 G TRÌNH CCS 40 3.2 44 3.3 52 II 3.3.1 Led 52 3.3.2 Led n 54 3.3.3 LCD 57 3.3.4 Phím nh n .60 63 63 BÀI 4: TIMER INTERRUPTS 67 4.1 TIMER 67 4.1.1 Timer 0: bit 68 4.1.2 Timer 1: 16 bit 70 4.1.3 Timer 2: bit 72 4.2 INTERRUPTS 73 4.2.1 kh i c a INTERRUPTS 73 4.2.2 Cách th c ho t ng c a INTERRUPTS 74 4.3 74 79 79 BÀI 5: ADC - PWM 84 5.1 ADC 84 5.1.1 Phân bi t 5.1.2 phân gi i t n s l y m u 84 c u trúc ADC c a vi u n PIC16F877A 85 5.1.3 Các l nh liên quan ADC CCS 86 5.2 PWM 86 5.2.1 Cách th c ho t 5.2.2 ng c a PWM 86 c u trúc PWM .87 5.2.3 Các l nh liên quan PWM 88 91 91 93 6.1 UART 93 6.1.1 T c Baud 93 6.1.2 Khung truy n (Frame) 93 6.1.3 Bit Start 94 6.1.4 D li u (Data) 94 6.1.5 Bit Paraty 94 6.1.6 Bit Stop 94 6.1.7 giao ti p UART 95 6.1.8 UART CCS .96 6.1.9 Bài t p m u 97 6.2 I2C 100 6.2.1 c m giao ti p I2C 100 III 6.2.2 Truy n nh n d li u Master - Slave 100 6.2.3 Giao ti p I2C CCS 104 6.2.4 Bài t p m u 104 6.3 SPI 106 6.3.1 Ho t ng SPI vi u n PIC 106 6.3.2 SPI ch Master 108 6.3.3 SPI ch Slave 109 110 110 112 IV MÔ MÔN nhúng môn thông Môn chuyên sâu cho ngành khái nhúng, nhúng cách nhúng FPGA DUNG MÔN - Bài 1: - Bài 2: - Bài 3: FPGA - Bài 4: - Bài 5: - Bài 6: - Bài 7: I/O, vi nhúng vi lý nhúng nhúng Môn U lý nhúng nhúng sinh viên có MƠN CÁCH lên làm nhà DUNG MƠN mơn này, làm Vi ơn các câu tìm thêm thông tin liên quan V dung thúc tồn tiêu tóm thúc ý Mơn ơn GIÁ MƠN giá q trình: 50% Hình quy - câu sau làm PHÁP - bài dung viên phù tình hình thi: 50% Hình bài thi 90 phút dung VI CÁC C Microcontroller: vi P Microprocessor: vi to lý ADC Analog Digital Converter: ALU Arithmetic Logic Unit: BIU Bus interface unit: BOR Brown Out Reset CPU Central Processing Unit: lý giao bus lý trung tâm EPROM - Erasable Programmable Read Only Memory: ROM EU - Execution unit: FPU Floating Processing Unit: I/O Input / Output: vào / PC Program Counter: POR Power On Reset RAM Random Access Memory: ROM Read-Only Memory: SFR trình xóa thi lý trình truy nhiên Special Function Registers: ghi SRAM Static RAM: RAM UART Universal Asynchronous Receiver and Transmitter: / BÀI 1: BÀI 1: Sau - QUAN xong này, vi lý vi - có q trình phát - trúc vi tiêu PIC 16F877A LÝ 1.1.1 Các th h Vi vi chân 1.1 VI X VI vi x lý lý transistor tích tiên vào BCD bit Các vi lý bit vi 16 bit Computer vi vi Intel 4004, TMS 1000 Central Air Data lý bit lý bit hãng cho 16 bit, 32 bit, 64 bit Intel 8008 vi sau thành công Z80 (1976) Các vi Các hãng Intel, Texas Instruments Garrett ba dòng chip tiên máy tính tiên mã 1970 lý 1972 20 lý bit bit AiResearch Sau tích 70 máy in, vi vi lý MOS technology lý bit tiên 8008 phiên Motorola 6800 tên HM-6100 lý 16 bit 8080 (1974), Zilog phát hành tháng 1975 Intersil 6100 vi cơng ty Harris niên 1980 Vi dịng bit, 12 bit, tiên lý 12 bit, 1974 quân hãng National BÀI 1: Semiconductor IMP-16 vào vi lý 1973, chip chip TI-990 16 bit vi lý chip tiên Hãng Texas Instruments vi máy tính mini Intel dịng vi cho lý 16 bit lý tên 8086 Vi lý 16 bit gian MC6800 vi lý 32 bit tiên dịng 32 bit hãng Motorola, có ghi 32 bit 16 bit bên 16 bit chân, 24 bit dù có tiên vi lý 32 bit tiên vào 1985 rút 1980 1982 Vi 1981 Vi lý ARM lý 64 bit 2000 vào trúc IA-32, tiêu Intel theo sau AMD lý khác lý 2005 processor), tích Intel phát hành tiên L3 hai 2004, AMD-defined x86-64 vào AMD cho lý hai nhân (dual-core lý lý chip dù bo hai máy mang hai CPU tính 2006 Intel phát hành dòng lý mobile Pentium M/Core duo Core theo phiên lý khuôn khuôn tiên trúc phiên lý quad-core PC siêu phân video tùy máy hai khuôn dua-core 2008 Intel cho công gói thành tiêu Core 2, quad-core 2007 AMD phát hành Phenom, tích Intel cách thêm Pentium chip quad-core 2003 64 bit AMD-defined x86-64 Pentium Extreme Edition, máy tính ClawHammer, Athlon, Pentium gói) vào lý 64-bit (K8): Athlon 64 (mã K8) Nó dual-core, tiên di cho máy tính cá nhân Nó AMD phát hành lý ARM 1990 song lý 32 bit RISC (Reduced Instruction Set Computer) máy tính có vi hay lý 16 bit tiên AT&T Bell Labs Intel dòng iAPX 432 bên Motorola trúc 32 bit Vi BELLMAC-32A Vi 1975 hãng tiên nhân lý Core I Series (Nehalem), (Hyper-Theading) bao 98 BÀI 6: nguyên lí: trình demo void main() { unsigned int8 kitu; char str[16]; BÀI 6: TR enable_interrupts(GLOBAL); UART_config(); LCD_Init(); printf("UART DEMO \n"); sprintf(str,"UART DEMO"); LCD_Puts(str); delay_ms(1000); LCD_Clear(); sprintf(str,"HUTECH"); LCD_Puts(str); while(TRUE) { kitu=getc(); if(kitu) { LCD_Gotoxy(0,1); sprintf(str,"Ki Tu Nhap: %c \n",kitu); LCD_Puts(str); } delay_ms(10); } } 99 100 BÀI 6: 6.2 I2C 6.2.1 c giao m giao ti p I2C I2C có dây: Serial Data (SDA) Serial Clock (SCL) SDA cịn SCL Hình 6.7: xung giao dây SDA hay SCL I2C áp thông qua open collector) Giá giao dao 6.2.2 Truy n nh n d vi - li u Master - Slave - khác nhau: (one master (one master one slave) multi slave) (Multi master kéo máng khác tùy vào bus I2C có multi slave) theo I2C kéo lên (pull up resistor) chân giao (open drain 101 BÀI 6: 6.2.2.1 u ki n Start - START: Stop thái SDA SCL cao cao (cao = 1; = 0) báo START - STOP: thái SDA SCL hai sàng cho Tín trang thái làm giao sau tín Sau có START cao START STOP START, bus I2C coi lên cao STOP Sau tín (busy) Bus I2C phía START, qua trình giao thay START tín có STOP bus I2C START có tín thái giao 6.2.2.2 Truy n bit d li u I2C bus I2C theo xung SCL bit, bit dây SCL, trình thay bit 102 BÀI 6: 6.2.2.3 Bit ACK I2C byte có khơng dài bits byte Bit có theo sau cao bít byte có bit ACK (MSB) báo tiên, Sau xung clock dây SCL, bit Sau ACK bít xung clock dây SDA bit ACK Hình 6.8: kéo SDA báo trình bus I2C Hình 6.8: Bit ACK bus I2C xung bit thúc 103 BÀI 6: 6.2.2.4 Gi i thu t truy n nh n I2C Hình 6.9: giao I2C Hình 6.10: giao I2C 104 BÀI 6: 6.2.3 Giao ti p I2C CCS Hình 6.11: Chú ý: giao Master hay Slave I2C CCS vào yêu 6.2.3.1 Khai báo giao ti p I2C CCS #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3) 6.2.3.2 M t s hàm giao ti p I2C CCS - i2c_isr_state(): Thông báo - i2c_start(): START - i2c_stop(): STOP - i2c_read(): - i2c_write(): Ghi giá giá thái giao I2C, bit I2C giá bit I2C 6.2.4 Bài t p m u trinh giao 16F877A DS1307 Yêu gian lên LCD 16x2 (LCD PortD mode 4bit) BÀI 6: nguyên lý: trình demo #include #include #include int sec, min, hrs, day, month, yr, dow; 105 106 BÀI 6: void main() { ds1307_init(0); lcd_init(); ds1307_set_date_time(8,11,7,2,9,49,00); while(1) { delay_ms(100); ds1307_get_date(day,month,yr,dow); ds1307_get_time(hrs,min,sec); lcd_gotoxy(1,2); printf(lcd_putc,"%02d:%02d:%02d ",hrs,min,sec); lcd_gotoxy(1,1); lcd_putc("XXXXXX"); } } 6.3 SPI 6.3.1 Ho t giao giao ng SPI vi u n PIC SPI cho phép này: Ta RC5/SDO: ngõ (Serial Data output) RC4/SDI/SDA: ngõ vào (Serial Data Input) RC3/SCK/SCL: xung giao (Serial Clock) (Serial Select) giao Các ghi liên quan Thanh ghi Thanh ghi giao SSPCON, ghi cho phép cho phép vai trò buffer RA5/AN4/SS/C2OUT: Slave mode MSSP thái SSPSTAT, ghi phép pin cho ghi SPI bao ghi Thanh ghi bit trên, bit cho SSPBUF, vào tranh ghi SSPBUF khơng có trúc hai 107 BÀI 6: (doubledbuffer), ghi vào ghi SSPBUF ghi SSPSR Thanh ghi byte SSPSR dùng hoàn ghi SSPBUF Khi cách giá SPI thích bao clock qua tiên ta Master mode hay Slave mode chân RC3/SCK/SCL cho giao Master mode, xung Slave mode, xung clock trang thái xung clock (khi ghi SSPSR vào hai ghi SSPCON SSPSTAT Các thơng xung clock tác Khi bên ngồi qua chân RC3/SCK/SCL logic vào set, giao ghi vào Các Slave mode trình (Idle) lên hay Master mode) xác gian bit xung clock logic hay vào) Master mode, Slave mode Slave mode bit SSPM3:SSPM0 (SSPCON) giao SPI Hình 6.11: Theo cách này, tín xung sau: giao Master SCK SPI trình hai ghi SSPSR 108 BÀI 6: ngồi có xung tác có tác cịn hai Master Slave nên clock có 6.3.2 SPI ch Master Master mode, vi (và có trao xung clock vào ghi SSPBUF ta có chân SDO ngõ vào (set bit TRISC) vào ghi SSPSR theo Sau cho xung clock byte ghi SSPBUF, bit BF set q trình thái hồn byte Khi q trình sau vi xung trình bày hình Hình 6.12: xung trao bit tác xung SPI SLEEP ngun Master mode tác sau: Master mode thi 109 BÀI 6: 6.3.3 SPI ch Slave SPI SCK Khi có xung xong bit mode cho phép cùng, chân SSPIF vi sleep, vi Khi ta có RC5/SDO ngõ vào (set bit TRISC) Slave mode cho phép (SSPCON = 0100) Khi chân phép reset cao, bit Hình 6.13: gán giá xung giao 8Ch): bit cho phép Thanh ghi TRISC chân RC5/SDO chân khóa, cho SPI 0) SPI (Slave mode) SPI bao 0Bh, 8Bh, 10Bh, 18Bh): (GIE PEIE) Thanh ghi PIR1 tác chân RC5/SDO giao Các ghi liên quan Thanh ghi INTCON set Slave bit cho phép toàn 0Ch): SSPIE Thanh ghi PIE1 SSPIE 87h): 13h): ghi PORTC Thanh ghi SSPBUF Thanh ghi SSPCON giao SPI Thanh ghi SSPSTAT giao SPI Thanh ghi TRISA 94h): 14h): bit thái chân 110 BÀI 6: TÓM Trong viên giao thơng UART, I2C, SPI CÂU ƠN Câu 1: Trình bày giao trun thơng UART ? Câu 2: Trình bày giao trun thơng I2C ? Câu 3: Trình bày giao truyên thông SPI ? Câu 4: So sánh giao thông Câu 5: thông UART ? Câu 6: thông I2C ? Câu 7: thông SPI ? Câu 8: trình ký trình PC 16F877A giao UART Câu 9: giao UART Câu 10: giao trình ký 16F877A 16F877A I2C Câu 11: trình 16F877A 16F877A Câu 12: 16F877A 16F877A giao HOC CONG SPI Master, Slave dùng giao UART trình Master ký Slave Slave Slave Câu 13: 1 Master, Slave dùng giao I2C 111 BÀI 6: trình Master ký Slave Slave Slave Câu 14: 1 Master, Slave dùng giao SPI trình Master Slave ký Slave Slave 112 TÀI [1] THAM Mid-Range MCU Family Reference Manual [2]Pic16F877A datasheet Microchip Technology [3]http://www.ccsinfo.com [4]https://www.microchip.com [5]http://www.picvietnam.com Microchip Technology