![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#20 | |
Đệ tử 4 túi
Tham gia ngày: Aug 2008
Bài gửi: 89
: |
Trích:
Nếu ngoài output bạn muốn sử dụng nhiều nhiều hiệu ứng hơn thì đồng thời với xuất ra led bạn nên dùng 1 buffer đi kèm theo để lưu lại. Code:
//////////////////////////////////Data - CLK, Data - CLK, ... #define PORT_NUMBER 4 const unsigned long PORT_TABLE[PORT_NUMBER*2]={PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4,PIN_B5,PIN_B6,PIN_B7}; unsigned char PortData[PORT_NUMBER]; //prototype void Write2Led(); void WritePort2Led(int port_num,unsigned char data); void WriteByte(int port_num,unsigned char data); void WriteBit(int bit_num,unsigned short data); void WriteInt32(int32 data); void WriteArray(unsigned char data[PORT_NUMBER]); //Update all data to leds void Write2Led() { int i,j; for(i=0;i<PORT_NUMBER;i++){ WritePort2Led(i,PortData[i]); } } //Update data port to leds void WritePort2Led(int port_num,unsigned char data) { int i; for(i=0;i<8;i++){ output_bit(PORT_TABLE[port_num],data&0x01); output_high(PORT_TABLE[port_num+1]); delay_us(1); data>>=1; output_low(PORT_TABLE[port_num+1]); } } //Write 1 byte data to buffer and update to leds void WriteByte(int byte_num,unsigned char data) { PortData[byte_num]=data; WritePort2Led(byte_num,data); } //Write 1 bit data to buffer and update to leds void WriteBit(int bit_num,unsigned short data) { PortData[bit_num/8]=(data == 0x01)?(PortData[bit_num/8]|(data&0x01)<<(bit_num%8)):(PortData[bit_num/8]&(~(data&0x01)<<(bit_num%8))); WritePort2Led(bit_num/8,PortData[bit_num/8]); } //Write 1 integer 32 bits data to buffer and update to leds void WriteInt32(int32 data) { int i; for(i=0;i<PORT_NUMBER;i++){ PortData[i]=data&0xFF; data>>=8; } Write2Led(); } //Write 1 array data to buffer and update to leds void WriteArray(unsigned char data[PORT_NUMBER]) { int i; for(i=0;i<PORT_NUMBER;i++){ PortData[i]=data[PortData]; } Write2Led(); }
__________________
Quang báo RG/RGB 6/8/12/16 bits màu Phone No: 0905.034.086 Email: lmquyen@gmail.com |
|
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
ban mach GPTUSB mach robot cac loai......... | vinhcuu | Quảng cáo và bán sản phẩm | 2 | 30-01-2007 01:43 PM |
cho em hoi ve mach nap Pic 1 | stevent | Cơ bản về vi điều khiển và PIC | 3 | 29-01-2007 02:59 PM |
mach nap PIC 1 | cdtnhat | Bootloaders - Programmers - Debuggers - Emulators | 7 | 10-12-2006 06:12 PM |
Mach nap | minhtienbk | Bootloaders - Programmers - Debuggers - Emulators | 0 | 13-01-2006 06:13 PM |
answer.com mot trang wed hay ve cac dinh nghia | mafd_47a | Trao đổi ngoài luồng | 0 | 23-11-2005 11:30 PM |