Thứ Năm, 19 tháng 5, 2011
PIC với 74595
include<16f877a.h>
#include<def_877a.h> // Khai bao cac files thu vien duoc su dung vi du LCD_lib_4bit.c
#device *=16 ADC=10 // Khai bao dung con tro 8 bit hay 16 bit. bo ADC la 10 bit hay 8 bit
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT // khai bao cau hinh cho PIC
#use delay(clock=20000000) // Tan so thach anh su dung
#define data Rb0
#define shift Rb1
#define latch Rb2
void dich_595(int8 x);
int8 M[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
void main()
{
int8 i;
trisb=0x00;
portb=0x00;
dich_595(0x00);
latch=1;
latch=0;
while(true)
{ for(i=0;i<8;i++)
{
dich_595(M[i]);
latch=1;
latch=0;
delay_ms(100);
}
}
}
void dich_595(int8 x)// ham dich
{
byte i;
int8 j; // byte tham chieu
for(i=0;i<8;i++) // dich 8 bit
{
j=x&0x80; // 'and' tung bit
if(j==0x80) // dich bit co trong so max
data=1; // dich '1'
else
data=0; // dich '0'
shift=1; // day du lieu ra ngoai
shift=0; // du lieu duoc day
rotate_left( &x, 1); // quay trai 1 byte '&x' la dia chi chua du lieu can quay khi quay du 1 byte thi du lieu tai dia chi do tro ve trang thai ( du lieu ) ban dau
}
return ; // quay ve chuong trinh goi no
}
**********************************************************************************
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét