PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 12-04-2014, 11:49 PM   #1
phuanbb
Nhập môn đệ tử
 
Tham gia ngày: Mar 2014
Bài gửi: 2
:
Exclamation GẶp vẤn ĐỀ vỀ giao tiẾp usb!

Không hiểu sao em làm mô phỏng như trong hướng dẫn nhưng gặp tình trạng các chân hình như không có tín hiệu trong khi trong tài liệu vẫn làm được, lỗi này là gì và cách khác phục là gì mong anh chị giúp em với.

Lỗi như trong file hình của em đấy ạ.
Còn đây là code của em:

unsigned char Read_Buffer[16] absolute 0x500;
unsigned char Write_Buffer[16]absolute 0x510;
unsigned char num,flag;

void interrupt()
{
USB_Interrupt_Proc();
TMR0L = 100; //Reload Value
INTCON.TMR0IF = 0; //Re-Enable Timer-0 Interrupt
}

//LCD 8-bit Mode Connection
sbit LCD8_RS at RC1_bit;
sbit LCD8_RW at RC0_bit;
sbit LCD8_EN at RC2_bit;
sbit LCD8_D7 at RD7_bit;
sbit LCD8_D6 at RD6_bit;
sbit LCD8_D5 at RD5_bit;
sbit LCD8_D4 at RD4_bit;
sbit LCD8_D3 at RD3_bit;
sbit LCD8_D2 at RD2_bit;
sbit LCD8_D1 at RD1_bit;
sbit LCD8_D0 at RD0_bit;

sbit LCD8_RS_Direction at TRISC1_bit;
sbit LCD8_RW_Direction at TRISC0_bit;
sbit LCD8_EN_Direction at TRISC2_bit;
sbit LCD8_D7_Direction at TRISD7_bit;
sbit LCD8_D6_Direction at TRISD6_bit;
sbit LCD8_D5_Direction at TRISD5_bit;
sbit LCD8_D4_Direction at TRISD4_bit;
sbit LCD8_D3_Direction at TRISD3_bit;
sbit LCD8_D2_Direction at TRISD2_bit;
sbit LCD8_D1_Direction at TRISD1_bit;
sbit LCD8_D0_Direction at TRISD0_bit;
// End Lcd8 module connections

char i; // Loop variable

void UART1_Write_Text_Newline(unsigned char msg[])
{
UART1_Write_Text(msg);
UART1_Write(10);
UART1_Write(13);
}

void clear_buffer(unsigned char buffer[])
{
unsigned int i = 0;
while(buffer[i] != '\0')
{
buffer[i] = '\0';
i++;
}
}

//
void main()
{

UART1_Init(9600);
Delay_ms(100);
UART1_Write_Text("USB Test Program");

ADCON1 |= 0x0F; // Configure AN pins as digital
CMCON |= 7; // Disable comparators
TRISB = 0x00;
TRISC = 0x80;
Lcd8_Init(); // Initialize Lcd8
Delay_ms(100);
Lcd8_Cmd(_LCD_CLEAR); // Clear display
Delay_ms(100);
Lcd8_Cmd(_LCD_CURSOR_OFF); // Cursor off
Delay_ms(100);

Lcd8_Out(1,3,"PIC18F4550"); // Write text in first row
Delay_ms(100);
Lcd8_Out(2,3,"USB Example!"); // Write text in second row
Delay_ms(2000);
INTCON = 0;
INTCON2 = 0xF5;
INTCON3 = 0xC0;
RCON.IPEN = 0;
PIE1 = 0;
PIE2 = 0;
PIR1 = 0;
PIR2 = 0;
//
// Configure TIMER 0 for 3.3ms interrupts. Set prescaler to 256
// and load TMR0L to 100 so that the time interval for timer
// interrupts at 48MHz is 256.(256-100).0.083 = 3.3ms
//
// The timer is in 8-bit mode by default
T0CON = 0x47; // Prescaler = 256
TMR0L = 100; // Timer count is 256-156 = 100
INTCON.TMR0IE = 1; // Enable T0IE
T0CON.TMR0ON = 1; // Turn Timer 0 ON
INTCON = 0xE0; // Enable interrupts
//
// Enable USB port
//

UART1_Write(10);
UART1_Write(13);
UART1_Write_Text_Newline("Data is Ready to be Received from the PC");

Hid_Enable(&Read_Buffer,&Write_Buffer);
Delay_ms(2000);

// Read from the USB port. Number of bytes read is in num
start:
while(Hid_Read() == 0); //Stay Here if Data is Not Coming from Serial Port
//If Some Data is Coming then move forward and check whether the keyword start is coming or not
if(strncmp(Read_Buffer,"S",1) == 0)
{
Lcd8_Cmd(_LCD_CLEAR);
Lcd8_Out(1,2,"Authentication");
Lcd8_Out(2,8,"OK");
goto loop;
}
else
{
Lcd8_Cmd(_LCD_CLEAR);
Lcd8_Out(1,2,"Authentication");
Lcd8_Out(2,5,"Fails!");
goto start;
}
loop:

//Now Authentication is Successfull Lets Try Something else
//Lets Display the Data Coming from the USB HID Port to the LCD
Delay_ms(1000);
Lcd8_Cmd(_LCD_CLEAR);
Lcd8_Out(1,1,"Received Data:-");
flag = 0;

loop_second:
clear_buffer(Read_Buffer);
while(Hid_Read() == 0)
{
if(flag == 0)
{
Lcd8_Out(2,1,"No Data");
flag = 1;
}
}
Lcd8_Cmd(_LCD_CLEAR);
Lcd8_Out(1,1,"Received Data:-");
Lcd8_Out(2,1,Read_Buffer);
goto loop_second;
Delay_ms(1000);
Hid_Disable();
Lcd8_Out(1,1,"HID DISABLE");
}
Hình Kèm Theo
File Type: png Untitled.png (38.6 KB, 6 lần tải)
phuanbb vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:51 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam