PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 13-11-2008, 10:10 AM   #15
tungtuantu
Đệ tử 3 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 54
:
Cho mình hỏi
Code:
/* defines for segment data transfer direction */
#define SEG1_50_SEG51_100     0x39  /* SEG1->SEG50 ,SEG51->SEG100 */
#define SEG1_50_SEG100_51     0x3d  /* SEG1->SEG50 ,SEG100->SEG51 */
#define SEG100_51_SEG50_1     0x3b  /* SEG100->SEG51,SEG50->SEG1 */
#define SEG100_51_SEG1_50     0x3f  /* SEG100->SEG51,SEG1->SEG50 */

/* defines for COM data transfer direction */

#define COM1_COM16            0x3e  /* Data transfer direction is COM1 to COM16 */

#define COM16_COM1            0x3f  /* Data transfer direction is COM16 to COM1 */
2 cái difine này có tác dụng j thế hả bạn

Mình sửa file xlcd.h để giao tiếp 4 bit với LCD như này
Code:
/********************************************************************/
/*            Header for XLCD module library functions for          */
/*            P-tec PCOG1602B LCD controller                        */
/********************************************************************/

#if defined(__dsPIC30F__)
#include <p30fxxxx.h>
#elif defined(__dsPIC33F__)
#include <p33Fxxxx.h>
#elif defined(__PIC24H__)
#include <p24Hxxxx.h>
#endif



#ifndef _XLCD_H
#define _XLCD_H

/* Comment out the following line if 4-bit interface is being used */
#define EIGHT_BIT_INTERFACE

/* #defines of the data pins and the corresponding tris pins */
/* The READ_PIN_X #defines must match the corresponding DATA_PIN_X defines */
#define DATA_PIN_7           LATDbits.LATD3
#define DATA_PIN_6            LATDbits.LATD1
#define DATA_PIN_5           LATEbits.LATE8
#define DATA_PIN_4           LATCbits.LATC14

#define READ_PIN_7		PORTDbits.RD3
#define READ_PIN_6		PORTDbits.RD1
#define READ_PIN_5		PORTEbits.RE8
#define READ_PIN_4		PORTCbits.RC14




#define TRIS_DATA_PIN_7       TRISDbits.TRISD3
#define TRIS_DATA_PIN_6       TRISDbits.TRISD1
#define TRIS_DATA_PIN_5       TRISEbits.TRISE8
#define TRIS_DATA_PIN_4       TRISCbits.TRISC14



/* #defines of the control pins and the corresponding tris pins for 30F */
#define E_PIN                 LATCbits.LATC13       /* PORT for E */
#define RW_PIN                LATBbits.LATB8       /* PORT for RW */
#define RS_PIN                LATBbits.LATB7      /* PORT for RS */

#define TRIS_E                TRISCbits.TRISC13    /* TRIS for E */
#define TRIS_RW               TRISBbits.TRISB8    /* TRIS for RW */
#define TRIS_RS               TRISBbits.TRISB7   /* TRIS for RS */

	#ifdef EIGHT_BIT_INTERFACE
#define DATA_PIN_3           LATDbits.LATD3
#define DATA_PIN_2           LATDbits.LATD2
#define DATA_PIN_1           LATDbits.LATD1
#define DATA_PIN_0           LATDbits.LATD0

#define READ_PIN_3		PORTDbits.RD3
#define READ_PIN_2		PORTDbits.RD2
#define READ_PIN_1		PORTDbits.RD1
#define READ_PIN_0		PORTDbits.RD0

#endif
	
#ifdef EIGHT_BIT_INTERFACE
#define TRIS_DATA_PIN_3       TRISDbits.TRISD3
#define TRIS_DATA_PIN_2       TRISDbits.TRISD2
#define TRIS_DATA_PIN_1       TRISDbits.TRISD1
#define TRIS_DATA_PIN_0       TRISDbits.TRISD0
#endif

/* Display ON/OFF Control defines */
các phần sau thì giống file gốc
chương trình chính mình viết giống như bạn chỉ thay 8 bit thành 4 bit
Code:
#include <p30f4011.h>
#include "xlcd.h"

_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON & BORV_27 & PWRT_16 & MCLR_DIS);
_FGS(CODE_PROT_OFF);

void main()
{
    OpenXLCD(FOUR_BIT & TWO_LINE & SEG1_50_SEG51_100
             & COM1_COM16);    //Khoi tao lcd
    PutsXLCD("Hello world");   //Hien thi mot xau tren dong thu nhat
	
    SetDDRamAddr(0x40);        //Dua con tro ve dau dong thu hai
    PutsXLCD("30f4011-LCD");	//Hien thi mot xau tren dong thu hai
    
    while(1);
    return 0; 
}
Khi dịch ra thì báo là
Code:
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\lcd.o" is out of date.
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4011 -x c -c   "lcd.c" -o"lcd.o" -g -Wall
pic30-coff-cc1.exe: warning: Resource version (3.01) does not match compiler!
lcd.c:10: warning: return type of `main' is not `int'
lcd.c: In function `main':
lcd.c:12: warning: implicit declaration of function `PutsXLCD'
lcd.c:18: warning: `return' with a value, in function returning void
lcd.c:19:2: warning: no newline at end of file
Resource version (3.01) does not match!
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\delay.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\OpenXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\PutsXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\ReadAddrXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\ReadDataXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\setCGRamAddr.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\setDDRamAddr.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\WriteCmdXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\WriteDataXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\BusyXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof" is out of date.
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4011 "lcd.o" "delay.o" "OpenXLCD.o" "PutsXLCD.o" "ReadAddrXLCD.o" "ReadDataXLCD.o" "setCGRamAddr.o" "setDDRamAddr.o" "WriteCmdXLCD.o" "WriteDataXLCD.o" "BusyXLCD.o" -o"LCD 4 bit.cof" -Wl,-L"C:\Program Files\Microchip\MPLAB C30\lib",--script="C:\Program Files\Microchip\MPLAB C30\support\gld\p30f4011.gld",-Map="LCD 4 bit.map",--report-mem




Resource version (3.01) does not match!
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-bin2hex.exe" "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof"
Resource version (3.01) does not match!
Loaded C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof.
BUILD SUCCEEDED: Thu Nov 13 11:50:45 2008
Mình vẫn ko hiển thị dc lên LCD, phần in đậm là lỗi j thế

thay đổi nội dung bởi: tungtuantu, 13-11-2008 lúc 12:04 PM.
tungtuantu 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à 03:20 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