==================
#include "io430.h"
void quet_138(void);
void xuatdata_595(char dat);
void chot(void);
const char maled1[]=
{ 0,0xFF,0xFF,0x60,0x30,0x60,0xFF,0xFF,0,0x46,0xE7,0xB1,0x99,0xCF,0x46,0,0,0xF F,0xFF,0x88,0x88,0xF8,0x70,0 }; // MSP
const char
maled2[]={ 0,0x04,0x0C,0x1C,0x24,0x44,0xFF,0xFF,0x04,0,0x42,0xC3,0x99,0x99,0xF F,0x66,0,0x7E,0xFF,0x81,0x81,0xFF,0x7E,0 }; // 430
char size [24];
int i,j,k;
// chuong trinh chinh================================================ void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR=0XFF; //cau hinh port1 la ngo ra
while(1)
{
for(i=0;i<24;i++) size[i] = ~maled1[i]; //sang
for(j=0;j<140;j++)
{
quet_138();
}
for(i=0;i<24;i++) size[i] =~0x00; // tat
{
quet_138();
}
delay_cycles(1000000);
// -
for(i=0;i<24;i++) size[i] = ~maled2[i]; //sang
for(j=0;j<140;j++)
{
quet_138();
}
for(i=0;i<24;i++) size[i] =~0x00; //tat
{
quet_138();
Trang 2}
delay_cycles(1000000);
}
}
//0000000000000000000000000000000000000000000000 void xuatdata_595(char dat)
{
char t;
signed char z;
for(z=23;z>-1;z ) // xuat lan luot tu bit 24 den bit 0 ra cot {
t = size[z]>> dat;
if(t & 0x01)
{P1OUT|=BIT0;} // cap xung data
else
{P1OUT &=~BIT0;}
// tao canh len xung CK
P1OUT|=BIT2;
P1OUT &=~BIT2;
}
}
//iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
void quet_138(void)
{
char i,j,h;
for(i=0,j=7;i<8;j ,i++) // quet lan luot tu hang H8 len H1 {
xuatdata_595(i);
P1OUT &=~ BIT6; // clear chan E cua 138
chot();
P1OUT &= 0xC7; // xoa A,B,C
h = j<<3; //dich 3 bit
P1OUT |=h; // or lay gia tri cua i
P1OUT|=BIT6; // set chan E cua 138
delay_cycles(1000);
}
}
void chot()
{
P1OUT &=~BIT1;
P1OUT|= BIT1;
}