PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 02-02-2013, 01:39 AM   #1
chicken_555
Nhập môn đệ tử
 
Tham gia ngày: Feb 2013
Bài gửi: 6
:
giúp cpde UART

các bạn ơi giúp mình test đoạn code này với. mình biện dịch thì ok khi nạp vào mạch thì không chạy.
xin cảm ơn nhiều!
#include"P24FJ128GA010.h"
#include"libpic30.h"
#define delay 250
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & FWDTEN_OFF)
_CONFIG2(FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_HS & FNOSC_PRI)
// cac prototype***************************************** **
#define F2 LATFbits.RF2
#define F3 LATFbits.RF3
#define Fcy 4000000 //Tan so thuc thi lenh
#define baud 38400 //Toc do baud cua RS232
void Init_UART(void);
void UART_putchar(unsigned char ch);
void UART_putstring(unsigned char *st);
void T1_init();
void Delay_ms(unsigned long time);
// bien toan cuc
unsigned char flag;
//ham main
int main(void)
{
T1_init();
Init_UART();
Delay_ms(10);
while(1)
{
if(flag==1)
{
UART_putstring("hello worl");
}
flag=0;
};
}
void Init_UART(void)
{
TRISFbits.TRISF2=0;
TRISFbits.TRISF3=1;
U1MODE=0x8000;
/**********************************************
U1MODEbits.UARTEN=1;// cho phep UART cac chan U1TX,U1RX duoc dieu khien boi UART
U1MODEbits.ALTIO=0;//su dung cac chan U1TX,U1RX
U1MODEbits.UEN<1:0>=00//cho phep su dung chan U1TX,U1RX, cac chan ngoai vi U1CTS,U1RTS duoc dieu khien boi cac chot
U1MODEbits.ABAUD=0;//kho cho phep xac dinh baud o ky tu tiep theo
U1MODEbits.BRGH=0;//baud toc do thap
*************************************************/
U1STA=0x04000;
/************************************************** 8
U1STAbits.UTSIXEL1<1:0>=00;//ngat xay ra khi co 1 ky tu chuyen toi thanh ghi Transmis
U1STAbits.UATBRK=0;//khong cho truyen ky tu break;
U1STAbits.UTXEN=1;//U1TX duoc dieu khien boi U1RTX
U1STAbits.UTXBF=0;//bo dem rong cho phep truyen ky tu
U1STAbits.ADDEN=0;//tat che do address detect
U1STAbits.RIDLE//du lieu dang duoc nhan
U1STAbits.URXDA//bo dem nhan khong du lieu
*************************************************/
U1BRG=((Fcy/baud)/16-1);//baud=38400bps
_U1RXIF=0;//ngat co
_U1RXIE=1;// cho phep ngat
}
void UART_putchar(unsigned char ch)
{
while( U1STAbits.UTXBF==0) //kiem tra xem bo dem co day khong
{
U1RXREG=ch;//dhi du lieu vao thanh ghi
};
}
void UART_putstring(unsigned char *st)
{
while(*st!='0')
{
UART_putchar(*st);
st++;
};
}
void T1_init()
{
T1CON=0x8000;
//TON=1;
TMR1=0;//xoa bo dem timer 1
PR1=delay;//nguong tran timer ung voi 1 ms bo chia tan la 1:256,clock=8MHz
_T1IF=0;//xao co ngat
_T1IE=1;//cho phep ngat
}
void Delay_ms(unsigned long i_ms)
{
PR1=i_ms*delay;//thoi gian delay
T1CONbits.TON=1;//bat adc
flag=0;//ngat co
while(flag==1);//kiem tra xay ra ngat
T1CONbits.TON=0;//tat adc
TMR1=0;//xoa bo dem timer1
}
void _ISR_T1Interrupt(void)
{
_T1IF=0;//xao co ngat
flag=1;
}
chicken_555 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:07 PM.


Đượ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