![]() |
|
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 |
|
|
|
|
#1 | |||
|
Đệ tử 3 túi
Tham gia ngày: Jul 2008
Bài gửi: 58
: |
uh! thì tôi cũng dùng CCS C mà!
Trích:
đơn giản thế này nhe! Code:
void send(unsigned char data)
{
portb0=0;//nối portb0 với chân clock và cho reset về mức 0
portb1=0x01&data;//chân portb1 nối vào một chân data. vậy giá trị đầu ra là một bit
//đầu tiên ở mức cao hay thấp tùy vào biến data
portb0=1;//kích chân clock lên mức cao
delay_us(10);
portb0=0;//nối portb0 với chân clock và cho reset về mức 0
portb1=0x02&data;//chân portb1 nối vào một chân data. vậy giá trị đầu ra là một bit
//thứ hai ở mức cao hay thấp tùy vào biến data
portb0=1;//kích chân clock lên mức cao
//.......... cứ tiếp tục cho đến đầu ra số 7 (QH)
}
void main()
{
//rồi vào chương trình chính thì bạn chỉ viêc gọi thủ tục ra với mong muốn đầu ra
//nào được set lên cao đầu ra nào ở mức thấp.
//giả sử mình muốn đầu ra QA và QB là cao còn lại là thấp thì gọi ra
send(0x03);
//như vậy là QA và QB mức cao.
//tương tụ với các đầu ra khác.
}
Trích:
#byte porte =0x09 #byte trise=0x89; khi vào chương trình chính thì bạn chỉ cần khai báo porte là cổng I/O trise=0x00;//cổng ra chúc bạn thành công. code của bạn được sửa và tôi thêm doạn porte vào cho bạn như sau: Trích:
"tháng ngày dong duổi cuộc đời nhớ người cố hữu hẹn ngày tái ngộ" thay đổi nội dung bởi: 0509592, 04-09-2008 lúc 01:52 PM. |
|||
|
|
|
|
|
#2 |
|
Đệ tử 4 túi
Tham gia ngày: Dec 2006
Bài gửi: 79
: |
Bạn có thể giải thích rõ hơn về dòng lệnh này dược ko? Nếu ta sử dụng 2 chân RB2 & RB3 để điều khiển 1 IC74HC164 thứ 2 ... RB4 & RB5 điều khiển IC74HC164 thứ 3... thì ta phải xử lý như thế nào?
|
|
|
|
|
|
#3 | |
|
Đệ 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 |
|
|
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|
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 |