![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
#5 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
#include <def_877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) //#use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bi ts=9) //Baud_min=4800 Baud_max=115200 //#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8) // Dinh nghia cac chan cho ket noi 74595 //#bit SCL=0x08.7 //#bit DATA=0x08.6 //#bit SCK=0x08.5 #define SCL RD5//đổi lại cho phù hợp phần cứng #define DATA RD6 #define SCK RD7//đổi lại cho phù hợp phần cứng #byte TRISD =0x88 void quet(unsigned char x); unsigned int num=1; unsigned char ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};//ma led 7 void quet(unsigned char x) { int i,temp; for(i=0;i<8;i++) { temp=x;//gan bien temp=temp&0x80;//lay ra bit dau tien (bit 7) if(temp==0x80)//so sanh bit DATA=1; //bang 1 thi xuat vao chip =1 else DATA=0; //nguoc lai bang 0 x*=2; //dich bit lay bit trong so thap SCK=0; //tao xung tren chan 11 SCK=1; //1 xung dua vào 1 bít } SCL=0; //xuat du lieu ra output SCL=1; } void main() { TRISD=0x00;//thiếu dòng này num=5; while(1) { quet(~ma[num]);//đảo lại mã cho phù hợp phần cứng } }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|