Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam, và được ứng dụng rất nhiều. Những sinh viên nghành Điện, Điện Tử , Cơ Điện Tử, Tin Học, Viễn Thông ... hầu như ai cũng biết cách để làm việc với vi điều khiển. Ngày nay, với sự phát triển vượt bậc của các thiết bị điện tử, kỹ thuật ghép nối với máy tính đang được ứng dụng ngày càng nhiều đem lại hữu ích cho cuộc sống. Máy tính được sử dụng trong các nhà máy xí nghiệp trong các dây truyền sản xuất, trong các ứng dụng thiết kế ngôi nhà thông minh. Các thiết bị, hệ thống đo lường ghép nối với máy tính có độ chính xác cao. Vi điều khiển được sử dụng rộng rãi trong các thiết bị điện tử: chúng có trong các thiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải trí. Các thiết bị đó nói chung đều cần một cơ cấu điều khiển thông minh, có khả năng tương tác với người sử dụng.Với đề tài “Thiết kế modul ghép nối máy tính”nhằm nghiên cứu chuyên sâu về PIC 18F4550, trong đợt thực tập này chúng em hy vọng góp phần tạo ra những ứng dụng thực tế đáp ứng nhu cầu phát triển của công nghệ và tạo ra các sản phẩm có tính thương mại.
LỜI MỞ ĐẦU Có thể nói, vi điều khiển phổ biến Việt Nam, ứng dụng nhiều Những sinh viên nghành Điện, Điện Tử , Cơ Điện Tử, Tin Học, Viễn Thông hầu biết cách để làm việc với vi điều khiển Ngày nay, với phát triển vượt bậc thiết bị điện tử, kỹ thuật ghép nối với máy tính ứng dụng ngày nhiều đem lại hữu ích cho sống Máy tính sử dụng nhà máy xí nghiệp dây truyền sản xuất, ứng dụng thiết kế nhà thông minh Các thiết bị, hệ thống đo lường ghép nối với máy tính có độ xác cao Vi điều khiển sử dụng rộng rãi thiết bị điện tử: chúng có thiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải trí Các thiết bị nói chung cần cấu điều khiển thông minh, có khả tương tác với người sử dụng Với đề tài “Thiết kế modul ghép nối máy tính”nhằm nghiên cứu chuyên sâu PIC 18F4550, đợt thực tập chúng em hy vọng góp phần tạo ứng dụng thực tế đáp ứng nhu cầu phát triển công nghệ tạo sản phẩm có tính thương mại Em xin chân thành Thầy Nguyễn Anh Dũng khoa Điện tử, thầy cô giáo giảng dạy em suốt trình học Nhờ thầy cô giáo cho em kiến thức sở, kiến thức chuyên ngành tạo điều kiện thuận lợi để em hoàn thành thực tập hoàn thiện đề tài Hà Nội, Tháng 03/2016 Sinh viên Vương Văn Cường CÁC TỪ VIẾT TẮT ADC Bộ chuyển đổi tương tự-số (Analog Digital Converter) ALE Tín hiệu cho phép chốt địa (Address Latch Enable) ALU Khối tính toán số học logic (Arithmetic Logic Unit) AGP Giao diện đồ hoạ tăng tốc (Accelerated Graphics Port) API Các hàm giao diện lập trình ứng dụng (Application Programming BIOS Interface Các chương trình vào sở (Basic Input Output System) CD ROM Đĩa lưu trữ quang (Compact Disk ROM) CU Khối điều khiển (Control Unit) CPU Bộ xử lý trung tâm (Central Proccessing Unit) CS Ký hiệu ghi đoạn mã (Code Segment) CLK Xung nhịp đồng hồ (Clock) DAC Bộ chuyển đổi số-tương tự (Digital Analog Converter) DACK Chấp nhận DMA (DMA Acknowledge) DMA Truy nhập trực tiếp nhớ (Direct Memory Access) DMAC Bộ điều khiển DMA (DMA Controller) DRQ Yêu cầu DMA (DMA Request) DLL Thư viện liên kết động (Dynamic Link Library) DS Ký hiệu ghi đoạn liệu DVD Đĩa quang số (Digital Versatile Disk) DVD-WR DVD đọc viết (DVD Read Write) EOC Tín hiệu kết thúc chuyển đổi (End of convert) ES Ký hiệu ghi đoạn mở rộng (Extend segment) EIDE Giao diện nối ổ cứng CDROM 40 chân (Extend Integrated Drive FDC Electronics) Bộ điều khiển ổ đọc đĩa mềm (Floppy Disk Controller) INTR Tín hiệu ngắt (Interrupt) HRQ Tín hiệu yêu cầu treo CPU (Hold Request) HACK Tín hiệu báo chấp nhận treo CPU (Hold Acknowledge) INTA Trả lời chấp nhận ngắt (Interrupt Acknowledge) ISA Khe cắm mở rộng máy tính (Industry Standard Architecture) ISR Chương trình phục vụ ngắt (Interrupt Service Routine) I/O Vào/ra (Input/Output) IP Ký hiệu ghi trỏ lệnh (Instruction Pointer) LCD Màn hình tinh thể lỏng (Liquid Crystal Disply) LED Điot quang (Light Emitting Diot) LPT Giao diện cổng song song (Line Print Terminal) LSB Bit ý nghĩa (Less Signification Bit) LSR Thanh ghi trạng thái đường truyền (Line Status Register) MODEM Thiết bị điều chế/giải điều chế (MOdulator DEModulator) MSB Bit có ý nghĩa (Most Signification Bit) OA Bộ khuyếch đaị thuật toán (Operatinal Amplìfier) PCI (Peripheral Component Interconnect) PC Máy tính cá nhân (Pesonal Computer) RAM Bộ nhớ ghi/đọc thông tin cắt nguồn nuôi (Random Access Memory) ROM Bộ nhớ không thông tin ngắt nguồn nuôi (Read Only Memory) Rx Tín hiệu liệu thu (Receiver) SCSI (Small Computer System Interface) SDRAM RAM truy nhập đồng (Synchronous Dynamic Random Access Memory) SOC Tín hiệu bắt đầu chuyển đổi (Start of convert) THRE Thanh ghi phát rỗng (Transmitter Holding Register Empty) Tx Tín hiệu liệu truyền (Tranceiver) USB Bus truyền tin nối tiếp đa (Universal Serial Bus) VID Mã người cung cấp (Vendor ID) MỤC LỤC MỤC LỤC BẢNG: HÌNH VẼ CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÍNH, THIẾT BỊ NGOÀI CỦA MÁY TÍNH, CÁC PHƯƠNG PHÁP TRAO ĐỔI, BIẾN ĐỔI DỮ LIỆU 1.1 Máy tính khối ghép nối 1.1.1 Các dạng tin trao đổi máy tính 1.1.2 Các loại thông tin trao đổi máy tính 1.1.3 Các phương thức trao đổi tin máy tính 1.2 Vai trò, nhiệm vụ cấu trúc khối ghép nối 11 1.2.1 Vai trò 11 1.2.2 Nhiệm vụ 12 1.3 Cấu trúc chung khối ghép nối .13 1.3.1 Khối phối hợp đường dây .13 1.3.2 Khối giải mã địa - lệnh .13 1.3.3 Khối xử lý ngắt 16 CHƯƠNG CƠ SỞ CỦA GHÉP NỐI MÁY TÍNH 17 2.1 Ghép nối máy tính qua giao diện 17 2.1.1 Ghép nối qua cổng song song 17 2.1.2 Ghép nối qua cổng nối tiếp 21 CHƯƠNG 3: GIỚI THIỆU VỀ CÁC PHẦN TỬ TRONG MODULE GHÉP NỐI MÁY TÍNH .31 3.1 Cấu hình PIC 18F4550 .31 3.1.1 Cổng xuất nhập (I/O port) 33 3.1.2 Timer .35 3.2 Text LCD 40 3.2.1 Cấu trúc Text LCD 40 3.2.2 Sơ đồ chân .41 3.3 Tụ điện .42 3.4 Cuộn cảm 44 3.5 Điện trở 45 3.6 Điot 46 CHƯƠNG 4: THIẾT KẾ MODULE GHÉP NỐI MÁY TÍNH .46 4.1 Các khối mạch 48 4.1.1 Khối Nguồn (Power supply) 48 4.1.2 Khối Quét LED LED đơn .49 4.1.3 Khối LCD16x2 50 4.1.4 Khối ADC ( VR1,VR2, LM35) 51 4.1.5 Khối nút bấm(KEY PAD) 52 4.1.6 Khối giao tiếp cổng com (USB to COM) 53 4.1.7 Khối cảm biến chữ U (IRSENSOR) 54 4.1.8 Khối PWM (DC MOTOR) 55 4.1.9 Khối Ethernet 55 4.2 Mạch in thực tế sau thiết kế .56 4.3 Thiết kế phần mềm 57 4.4 Chương trình giao tiếp với máy tính 58 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 58 TÀI LIỆU THAM KHẢO .59 PHỤ LỤC 60 BẢNG: Bảng 2.1 Sắp xếp chân tín hiệu ổ cắm 18 Bảng 2.2 Các địa cổng song song máy tính PC 20 Bảng 2.3 Chức chân tín hiệu giao diện nối tiếp .21 Bảng 2.4 Các ghi cổng truyền tin nối tiếp 22 Bảng 2.5 Các nguồn ngắt nối tiếp giá trị bit ghi .26 Bảng 3.1 Chức chân LCD 41 HÌNH VẼ Hình 1.1 Sơ đồ trình ngắt .10 Hình 1.2.Vào dùng DMA 11 Hình 1.3 Bộ dải mã địa 16 Hình 1.4 cấu trúc chung khối ghép 17 Hình 2.1 Giao diện cổng song song máy tính PC 17 Hình 2.2 Kết nối chân cổng song song ghi trạng thái .19 Hình 2.3 Kết nối chân cổng song song ghi trạng thái .19 Hình 2.4 Kết nối chân cổng song song ghi điều khiển 20 Hình 2.5 Giao tiếp RS232 qua cổng USB to com kết nối với VĐK 21 Hình 2.6 Các kết nối điện đầu host Hub 29 Hình 2.7 Sơ đồ mã hoá NRZI .29 Hình 2.8 PIC ghép với máy tính qua USB .30 Hình 1: Hình thực tế PIC18F4550 .31 Hình 3.2 Sơ đồ khối timer0 36 Hình 3.3 Sơ đồ khối Timer1 38 Hình 3.4 Sơ đồ khối timer2 39 Hình 3.5 Text LCD 16x2 40 Hình 3.6 Kết nối Text LCD với Vi điều khiển 42 Hình 3.7 Ký hiệu hình dạng thực tế tụ hóa .43 Hình 3.8 Ký hiệu hình dạng thực tế tụ gốm 44 Hình 3.9 Ký hiệu hình ảnh thực tế cuộn dây 44 Hình 3.10 Ký hiệu hình ảnh thực tế cuộn dây lõi sắt bụi 45 Hình 3.11 Ký hiệu điện trở 45 Hình 3.12 Các loại điện trở có giá trị cố định .45 Hình 3.13 Điot 46 Hình 4.1: Sơ đồ khối module ghép nối máy tính 47 Hình 4.2 Khối nguồn 48 Hình 4.3 Khối Quét LED 49 Hình 4.4 Khối LED Đơn 49 Hình 4.5 Khối LCD16x2 50 Hình 4.6 Khối ADC ( VR1,VR2, LM35) 51 Hình 4.7 Khối nút bấm(KEY PAD) 53 Hình 4.8 Khối giao tiếp cổng com (USB to COM) 54 Hình 4.9 Khối cảm biến chữ U (IRSENSOR) 54 Hình 4.10 Khối PWM (DC MOTOR) 55 Hình 4.11 Khối ethernet 56 Hình 4.12 Mạch in sau thiết kế 56 Hình 4.13 Mạch in hiển thị dạng 3D 57 Hình 4.14 : Giao diện phần mềm biên soạn MPLAB IDE .57 CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÍNH, THIẾT BỊ NGOÀI CỦA MÁY TÍNH, CÁC PHƯƠNG PHÁP TRAO ĐỔI, BIẾN ĐỔI DỮ LIỆU 1.1 Máy tính khối ghép nối Cấu trúc máy tính phân chia thành ba khối chính: - Khối xử lý trung tâm (CPU): Làm nhiệm vụ thu thập xử lý liệu - Khối nhớ (Memory): Lưu trữ loại liệu khác đưa vào, lấy từ CPU - Khối phối hợp vào (I/O): Làm nhiệm vụ tương thích thiết bị đường dây (bus) máy tính Trong máy tính thường có số thiết bị thông dụng như: Màn hình, bàn phím, chuột, máy in, loa, ổ đĩa ngoài, Với thiết bị đó, máy tính có khối ghép nối tương ứng, ví dụ, khối ghép nối hình bus máy tính card hình (VGA); khối ghép nối loa bus máy tính card sound, Thông thường, máy tính hệ khối ghép nối cho thiết bị ngoại vi thông dụng tích hợp bảng mạch gọi Main hay Main Board Máy tính hệ thống khép kín mà máy tính sử dụng rộng rãi nhiều lĩnh vực, đặc biệt, sử dụng máy tính đo lường điều khiển cho ta tốc độ nhanh kết xác Mỗi ứng dụng cần thiết kế khối ghép nối khác Tất khả nhà sản xuất máy tính lưu tâm tới họ dự trữ nhiều cổng khe cắm mở rộng để ghép với bus máy tính Đây đường cho muốn nghiên cứu mở rộng thêm phạm vi ứng dụng máy tính Nội dung môn học vào nghiên cứu cổng (cổng song song, cổng nối tiếp), khe cắm mở rộng máy tính để từ thiết kế khối ghép nối phục vụ mục đích đo lường điều khiển công nghiệp 1.1.1 Các dạng tin trao đổi máy tính - Dạng số (Digital) Đây chuỗi bit 0,1 biểu diễn theo hệ đếm như: Hệ nhị phân, hệ thập lục phân Các tín hiệu số dạng nối tiếp song song mức RS TTL - Dạng chữ (Text) Đây dạng biểu diễn kí tự dạng số, giới thông dụng cách biểu diễn theo mã ACCII Theo cách này, kí tự biểu diễn bằng số bit 0,1 hệ thập lục phân, ví dụ: mã ký tự A 41h Dạng tín hiệu coi tín hiệu số - Dạng tương tự (Analog) Đây dòng điện hay điện áp biến đổi liên tục theo thời gian Điển hình đại lượng vật lý thu thập từ cảm biến (sensor) Muốn xử lí dạng tin này, máy tính (khối ghép nối) phải chuyển sang dạng số bằng ADC - Dạng âm tần Đây dạng tổ hợp nhiều tín hiệu tương tự với tần số biên độ khác Cũng coi dạng tín hiệu tương tự 1.1.2 Các loại thông tin trao đổi máy tính Trong trình gửi tin từ thiết bị vào máy tính có hai loại thông tin sau: - Tin trạng thái thiết bị - Tin mang liệu cần trao đổi Trong trình ngược lại: - Tin địa chỉ: Đây địa ghi đệm nằm khối ghép nối, ví dụ: 3F8h địa ghi đệm đọc/viết cổng nối tiếp (RS232) - Tin liệu trao đổi - Tin mang lệnh điều khiển 1.1.3 Các phương thức trao đổi tin máy tính Máy tính trao đổi với thiết bị theo hai phương thức: - Trao đổi theo chương trình - Trao đổi trực tiếp với khối nhớ (Direct Memory Access - DMA) a Chế độ trao đổi tin theo chương trình Đây chế độ trao đổi tin máy tính trao đổi với thiết bị bằng lệnh vào ra, lệnh dịch chuyển liệu ghi, cụ thể sau: - Trong ngôn ngữ Assembly lệnh sau dành cho trao đổi: IN, OUT, MOV - Trong ngôn ngữ Pascal: + Đọc byte liệu: x: =port [địa chỉ]; + Đưa byte liệu: port [địa chỉ] :=y; (y byte liệu đưa ra, x chứa byte liệu đọc vào) - Trong ngôn ngữ C: + Đọc byte liệu: x=inport[địa chỉ]; + Đưa byte liệu: outport (địa chỉ, y); (x byte liệu đọc vào, y byte liệu xuất ra) - Trong ngôn ngữ VB: Nếu sử dụng thư viện liên kết động Inpout32.dll + Đọc byte liệu : x=Inp(địa chỉ) + Đưa byte liệu: Out (địa chỉ) = y (x byte liệu đọc vào, y byte liệu xuất ra) Trong chế độ trao đổi theo chương trình có phương pháp: - Phương pháp trao đổi đồng Ở phương pháp này, máy tính tiến hành trao đổi tin với thiết bị khởi động xong mà không cần biết trạng thái dường dây thiết bị Để thực phương pháp yêu cầu: + Tốc độ trao đổi tin thiết bị lớn bằng tốc độ trao đổi tin máy tính + Thiết bị phải trạng thái sẵn sàng máy tính khởi động xong + Phương pháp có ưu điểm tốc độ trao đổi tin nhanh nhược điểm dễ bị tin thiết bị chưa trạng thái sẵn sàng - Phương pháp không đồng Trong phương pháp này, trước trao đổi tin, máy tính tiến hành đọc, kiểm tra trạng thái thiết bị ngoài, thiết bị sẵn sàng tiến hành trao đổi tin ngược lại chờ Ngoài trình trao đổi, tin bị lỗi yêu cầu phía phát phải truyền lại Phương pháp có độ tin cậy cao tốc độ chậm phương pháp đồng - Phương pháp trao đổi theo ngắt chương trình Chương trình phục vụ ngắt: Hình 1.1 Sơ đồ trình ngắt Phương pháp lợi dụng ưu điểm, khắc phục nhược điểm hai phương pháp Trình tự tiến hành sau: - Khi thiết bị có yêu cầu trao đổi gửi tín hiệu yêu cầu (ngắt) đến máy tính - Máy tính dừng chương trình phục vụ (nếu thiết bị yêu cầu có mức ưu tiên cao hơn) nhớ lại điểm dừng đồng thời gửi tín hiệu xác nhận, yêu cầu thiết bị trao đổi tin - Máy tính thiết bị trao đổi tin theo chương trình (gọi chương trình phục vụ ngắt) - Kết thúc trao đổi, máy tính trở lại chương trình từ điểm dừng Phương pháp trao đổi theo ngắt chương trình khắc phục nhược điểm hai phương pháp đồng không đồng bộ, cho phép tận dụng tối đa thời gian làm việc máy tính b Trao đổi DMA Đây phương thức trao đổi trực tiếp với khối nhớ máy tính mà không thông qua CPU Khi đó, CPU trạng thái treo, nhường quyền điều khiển BUS cho khối ghép nối Thiết bị khối nhớ máy tính tiến hành trao đổi (đọc/ghi liệu), sau qúa trình kết thúc nhường lại quyền điều khiển BUS cho CPU Trong trình DMA việc chuyển liệu không điều khiển CPU mà thiết bị phần cứng điều khiển DMAC (DMA Controller) Sơ đồ trình sau: 10 ham74hc595(0x01);ham74hc595(p1);ST=0;ST=1;Delay10TCYx(8); ham74hc595(0x02);ham74hc595(p2);ST=0;ST=1;Delay10TCYx(8); ham74hc595(0x04);ham74hc595(p3);ST=0;ST=1;Delay10TCYx(8); ham74hc595(0x08);ham74hc595(p4);ST=0;ST=1;Delay10TCYx(8); }*/ /////////////////Chuong trinh chinh//////////////////////// void main() { //unsigned int d=2; TRISA=0xff; TRISB = 0x0f; TRISC = 0xB1; TRISD=0x00; TRISE=0x08; ADCON1 = 0x0f; //****************NGAT*******************// RCONbits.IPEN=1; //cho phep uu tien ngat INTCONbits.GIEH=1; //ngat toan cuc //INTCONbits.PEIE=1;//ngat ngoai vi INTCONbits.INT0IE=1; // INT0 INTCONbits.INT0IF=0; INTCON3bits.INT1IE=1; // INT1 INTCON3bits.INT1IF=0; INTCON3bits.INT1IP=1; INTCON3bits.INT2IE=1; // INT2 INTCON3bits.INT2IF=0; 73 INTCON3bits.INT2IP=1; PIE1bits.RCIE=1; //cho phep ngat nhan IPR1bits.RCIP=1; //High priority //PIR1bits.TXIF=1; //****************PWM************************// T2CONbits.T2CKPS1=1; //chia tan 16 TMR2 T2CONbits.T2CKPS0=1; //***************USART************************// OpenUSART( USART_TX_INT_OFF & USART_RX_INT_ON & USART_SYNC_SLAVE& USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH,129); //((FOSC/ Baud Rate)/16) – //*****************LCD*************************// lcd_init(); //ham khoi tao LCD delay_ms(100); //***************CODE MAIN*********************// led_off(); sp1=sp2=0;led1=led2=led3=led4=0;adc=0; while(1) { if (update == 100) update = 0; else update++; if (trangthai==0) { lcd_cmd(0x80); //con tro dau dong 74 sprintf(&M[0],"Module GNMT 2016");lcd_str(&M[0]); lcd_cmd(0xC0); sprintf(&M[0],"RemixFirmware v2");lcd_str(&M[0]); delay_ms(1000); lcd_cmd(0x80); //con tro dau dong sprintf(&M[0],"press MODE ");lcd_str(&M[0]); lcd_cmd(0xC0); sprintf(&M[0]," to Start ");lcd_str(&M[0]); delay_ms(1000); //lcd_cmd(0x01); //xoa man hinh LCD } if (trangthai==1) { if (up==0) { delay_ms(50); while(!up);x++; if (x>=8) x=2; } if (down==0) { delay_ms(50); while(!down);x ; if (x=4) n=1; sp1=sp2=0; } /*if ((x==1)|(d==1)) { quet4(); lcd_cmd(0x80); sprintf(&M[0]," BAY GIO LA ");lcd_str(&M[0]); lcd_cmd(0xC0); sprintf(&M[0]," %d GIO %d PHUT ",sp/100,sp %100);lcd_str(&M[0]); }*/ if (x==2) { //ClosePWM1(); if (update==0) { AN2(); t1= adc2 * 0.4887; // tinh nhiet t2= t1; // lam tron so nguyen } quet(t2); lcd_cmd(0x80);sprintf(&M[0],"[1] ADC2 LM35 ");lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0],"T = %2d C ",t2);lcd_str(&M[0]); while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); 76 WriteUSART('2'); while(BusyUSART()); WriteUSART(adc2/256); while(BusyUSART()); WriteUSART(adc2%256); } else if (x==3) { //ClosePWM1(); if ((update % 10)==0) AN1(); t5= adc1 * 0.4887; // tinh dien ap t6= (int)(t5 + 0.5); // lam tron so nguyen quet1(t6); lcd_cmd(0x80);sprintf(&M[0],"[2] ADC1 VR1 ");lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0],"U1 = %d.%d%d Volt ",t6/100,t6/10%10,t6%10);lcd_str(&M[0]); while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); WriteUSART('4'); while(BusyUSART()); WriteUSART(adc1/256); while(BusyUSART()); WriteUSART(adc1%256); } else if (x==4) 77 { //ClosePWM1(); if ((update % 10)==0) AN0(); t3= adc * 0.4887; // tinh dien ap t4= (int)(t3 + 0.5); // lam tron so nguyen quet1(t4); lcd_cmd(0x80);sprintf(&M[0],"[3] ADC0 VR2 ");lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0],"U0 = %d.%d%d Volt ",t4/100,t4/10%10,t4%10);lcd_str(&M[0]); while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); WriteUSART('3'); while(BusyUSART()); WriteUSART(adc/256); while(BusyUSART()); WriteUSART(adc%256); } else if (x==5) { //ClosePWM1(); quet2(sp1+sp2); lcd_cmd(0x80);sprintf(&M[0],"[4] May1: %d sp ",sp1);lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0]," May2: %d sp ",sp2);lcd_str(&M[0]); 78 while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); WriteUSART('5'); while(BusyUSART()); //gui so sp day chuyen WriteUSART(sp1/256); while(BusyUSART()); WriteUSART(sp1%256); while(BusyUSART()); //gui so sp day chuyen WriteUSART(sp2/256); while(BusyUSART()); WriteUSART(sp2%256); } else if (x==6) { quet3(); while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); WriteUSART('6'); lcd_cmd(0x80);sprintf(&M[0],"[5] Motor DC PWM");lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0],"Toc : ");lcd_str(&M[0]); OpenPWM1(124);SetDCPWM1(500); if (n==1) { 79 SetDCPWM1(500); //Ton = 100% T lcd_cmd(0xC0);sprintf(&M[0],"Toc : Nhanh ");lcd_str(&M[0]); while(BusyUSART()); WriteUSART('n'); } else if (n==2) { SetDCPWM1(300); //Ton = 60% T lcd_cmd(0xC0);sprintf(&M[0],"Toc : Vua ");lcd_str(&M[0]); while(BusyUSART()); WriteUSART('v'); } else if (n==3) { SetDCPWM1(100); //Ton = 20% T lcd_cmd(0xC0);sprintf(&M[0],"Toc : Cham ");lcd_str(&M[0]); while(BusyUSART()); WriteUSART('c'); } } else if (x==7) { //ClosePWM1(); lcd_cmd(0x80);sprintf(&M[0],"[6] TEST LED ");lcd_str(&M[0]); lcd_cmd(0xC0);sprintf(&M[0],"Nhap nhay ");lcd_str(&M[0]); 80 ham74hc595(0xf0);ST=0;ST=1; PORTB=0X0f;delay_ms(50); ham74hc595(0x00);ST=0;ST=1; PORTB=~PORTB;delay_ms(50); while(BusyUSART()); WriteUSART('@'); while(BusyUSART()); WriteUSART('7'); } if (x!=7) led1=led2=led3=led4=0; } } } Code giao tiếp với máy tính Dim X As String Dim mode, speed, dkdc As Integer Private Sub Command1_Click() MSComm6.Output = "R" End Sub Private Sub Command2_Click() MSComm6.Output = "S" End Sub 81 Private Sub Form_Load() MSComm6.PortOpen = True i = 15 End Sub Private Sub Label1_Click() MSComm6.Output = "2" End Sub Private Sub Label12_Click() End Sub Private Sub Label2_Click() MSComm6.Output = "4" End Sub Private Sub Label3_Click() MSComm6.Output = "3" End Sub Private Sub Label4_Click() MSComm6.Output = "5" 82 End Sub Private Sub Label5_Click() MSComm6.Output = "5" End Sub Private Sub Label6_Click() MSComm6.Output = "5" End Sub Private Sub Label7_Click() MSComm6.Output = "6" End Sub Private Sub Label8_Click() MSComm6.Output = "7" End Sub Private Sub MSComm6_OnComm() If MSComm6.InBufferCount >= 11 Then X = MSComm6.Input mode = Mid(X, InStr(X, "@") + 1, 1) If mode = Then ' NHIET DO 83 Label1.BackColor = &H8000000D Text1.Text = Round(Val(Asc(Mid(X, InStr(X, "@") + 2, 1)) * 256 + Asc(Mid(X, InStr(X, "@") + 3, 1))) * (500 / 1023), 0) Else Label1.BackColor = &H8000000F End If If mode = Then ' VR2 Label2.BackColor = &H8000000D Text2.Text = Round(Val(Asc(Mid(X, InStr(X, "@") + 2, 1)) * 256 + Asc(Mid(X, InStr(X, "@") + 3, 1))) * (5 / 1023), 2) Else Label2.BackColor = &H8000000F End If If mode = Then ' VR1 Label3.BackColor = &H8000000D Text3.Text = Round(Val(Asc(Mid(X, InStr(X, "@") + 2, 1)) * 256 + Asc(Mid(X, InStr(X, "@") + 3, 1))) * (5 / 1023), 2) Else Label3.BackColor = &H8000000F End If If mode = Then ' demsp Label4.BackColor = &H8000000D Label5.BackColor = &H8000000D Label6.BackColor = &H8000000D 84 Text4.Text = Asc(Mid(X, InStr(X, "@") + 2, 1)) * 256 + Asc(Mid(X, InStr(X, "@") + 3, 1)) Text5.Text = Asc(Mid(X, InStr(X, "@") + 4, 1)) * 256 + Asc(Mid(X, InStr(X, "@") + 5, 1)) Text6.Text = Val(Text4.Text) + Val(Text5.Text) Else Label4.BackColor = &H8000000F Label5.BackColor = &H8000000F Label6.BackColor = &H8000000F End If If mode = And dkdc = Then ' dongco Label7.BackColor = &H8000000D speed = Mid(X, InStr(X, "@") + 2, 1) If speed = "n" Then Option1.Value = True Else Option1.Value = False End If If speed = "v" Then Option2.Value = True Else Option2.Value = False End If If speed = "c" Then Option3.Value = True Else 85 Option3.Value = False End If Else Label7.BackColor = &H8000000F End If If mode = Then ' nhap nhay Label8.BackColor = &H8000000D Else Label8.BackColor = &H8000000F End If End If End Sub Private Sub Option1_Click() If Option1.Value = True Then dkdc = Timer1.Enabled = True MSComm6.Output = "N" End If End Sub 86 Private Sub Option2_Click() If Option2.Value = True Then dkdc = Timer1.Enabled = True MSComm6.Output = "V" End If End Sub Private Sub Option3_Click() If Option3.Value = True Then dkdc = Timer1.Enabled = True MSComm6.Output = "C" End If End Sub Private Sub Timer1_Timer() dkdc = Timer1.Enabled = False End Sub 87 [...]... hệ thống 16 Hình 1.4 cấu trúc chung của một khối ghép CHƯƠNG 2 CƠ SỞ CỦA GHÉP NỐI MÁY TÍNH 2.1 Ghép nối máy tính qua các giao diện 2.1.1 Ghép nối qua cổng song song a Giới thiệu Cổng song song được thiết kế đầu tiên bởi công ty Centronics nhằm mục đích ghép nối máy tính với máy in Sau này cổng này được tiêu chuẩn hoá và có mặt ở hầu hết các máy tính Ngoài tên gọi này ra cổng song song còn có tên... tính và thiết bị ngoài, khối ghép nối giữ vai trò trung chuyển tin Trung chuyển ở đây có nghĩa tích cực vì trong quá trình nhận tin từ thiết bị ngoài vào máy tính, khối ghép nối nhận tin từ thiết bị ngoài, xử lý và gửi cho máy tính theo khuôn dạng tin, tốc độ thích hợp thích hợp Ngược lại, trong quá trình gửi tin từ máy ra thiết bị ngoài, khối ghép nối nhận tin từ máy tính, xử lý và giữ cho thiết bị... .5 CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÍNH, THIẾT BỊ NGOÀI CỦA MÁY TÍNH, CÁC PHƯƠNG PHÁP TRAO ĐỔI, BIẾN ĐỔI DỮ LIỆU 6 1.1 Máy tính và khối ghép nối 6 1.1.1 Các dạng tin trao đổi của máy tính 7 1.1.2 Các loại thông tin trao đổi của máy tính .8 1.1.3 Các phương thức trao đổi tin của máy tính 8 1.2 Vai trò, nhiệm vụ và cấu trúc của khối ghép nối 11 1.2.1 Vai trò... các bộ chuyến đổi nối tiếp/song song song song /nối tiếp trong khối ghép nối sẽ thực hiện nhiệm vụ này c Phối hơp về tốc độ trao đổi tin Tốc độ trao đổi tin của máy tính lớn hơn nhiều lần so với tốc độ trao đổi tin của thiết bị ngoài vì vậy khối ghép nối thường phải nhận tin theo xung nhịp thiết bị ngoài và phát tin theo xung nhịp của máy tính Để thực hiện được nhiệm vụ này, khối ghép nối thường có các... tắt điện hay khởi động lại máy tính Có thể ghép vào một bản mạch máy tính 127 thiết bị USB - Tuy nhiên hiện nay trên các mainboard thường nhà chế tạo chỉ làm sắn 2, 4 hoặc 8 đầu nối USB Nhược điểm của USB là khoảng cách truyền nhỏ (trong khoảng 5 m) Số lượng chủng loại thiết bị ghép với máy tính hiện nay đã có hàng trăm loại bao gồm máy in, máy ảnh, bàn con chuột, modem, máy quét, ổ flash Có các loại... ghép nối 13 1.3.1 Khối phối hợp đường dây 13 1.3.2 Khối giải mã địa chỉ - lệnh 13 13 1.3.3 Khối xử lý ngắt 16 CHƯƠNG 2 CƠ SỞ CỦA GHÉP NỐI MÁY TÍNH .17 2.1 Ghép nối máy tính qua các giao diện .17 2.1.1 Ghép nối qua cổng song song .17 Bảng 2.1 Sắp xếp các chân tín hiệu trên ổ cắm 18 Bảng 2.2 Các địa chỉ của cổng song song trên máy. .. (Acknowledge) được 1byte của máy in đối 11 12 11 12 BUSY PE Vào Vào với máy tính Tín hiệu báo bận của máy in Tín hiệu báo hết giấy của 13 13 (Paper Empty) SLCT Vào máy in Tín hiệu báo trạng thái sẵn Ra sàng của máy in Tín hiệu yêu cầu nạp một (Select) 14 14 AF (Auto Linefeed) dòng mới của máy tính đối 15 32 ERROR Vào với máy in Tín hiệu thông báo lỗi của 16 31 INIT(RESET) Ra máy in đối với máy tính Tín hiệu khởi... máy tính Tín hiệu khởi động lại của Ra máy tính đối với máy in Tín hiệu lựa chọn máy in của 17 18-25 36 SLCTIN 19-30, (Select Input) GND máy tính Tín hiệu nối mass 33 16 Tín hiệu nối mass 17 Tín hiệu nối mass 18 +5V 34,35 Không sử dụng Các đường dẫn tín hiệu trên cổng song song được chia thành 3 nhóm: − Các đường dẫn tín hiệu xuất ra từ máy tính và điều khiển máy in được gọi là các đường dẫn điều khiển... Các địa chỉ của cổng song song trên máy tính PC 20 2.1.2 Ghép nối qua cổng nối tiếp 21 Bảng 2.3 Chức năng các chân tín hiệu giao diện nối tiếp .21 Bảng 2.4 Các thanh ghi cổng truyền tin nối tiếp 22 Bảng 2.5 Các nguồn ngắt nối tiếp và giá trị các bit thanh ghi .26 CHƯƠNG 3: GIỚI THIỆU VỀ CÁC PHẦN TỬ TRONG MODULE GHÉP NỐI MÁY TÍNH 31 3.1 Cấu hình PIC 18F4550 ... ghép nối thường chứa các bộ chuyển đổi mức, các bộ khuếch đại, phối hợp công suất b Phối hơp về dạng tin Tín hiệu ở đường dây máy tính là tín hiệu số ở dạng song song trong khi tín hiệu của thiết bị ngoài có thể là tín hiệu số, tương tự có thể ở dạng nối tiếp, song song có thể ở dạng mã khác Vì vậy, khối ghép nối phải có nhiệm vụ biến đổi tương thích khuôn dạng tín hiệu giữa thiết bị ngoài và máy tính ... đổ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... 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 hỗ trợ prescaler ngược lại Prescaler điều khiển ghi OPTION_REG... Chức 21 DCD- Data Carrier Detect Lối vào RxD – Receive Data Lối vào TxD – Transmit Data Lối 20 DTR – Data Terminal Ready Lối GND – Nối đất 6 DSR - Data Set Ready Lối vào RTS – Request to Send