![]() |
|
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 |
|
|
|
|
|
|
Similar Threads
|
||||
| Ðề 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 |