Help! Ngắt ngoài trong 8051, code C
Forum :: VI ĐIỀU KHIỂN :: VĐK họ 8051
Trang 1 trong tổng số 1 trang
Help! Ngắt ngoài trong 8051, code C
Mình có ý tưởng như thế này: 8 LED nối với 1 Port bất kỳ của 8051. Bình thường cấp nguồn thì các LED chỉ sáng, khi bấm nút 1 thì 8LED nháy theo kiểu thứ nhất hết chu kì thì dừng lại sáng hết, bấm nút 2 thì nó nháy kiểu 2 hết chu kì dừng lại và chỉ sáng.
Có ai giúp mình ko? code C nha
Có ai giúp mình ko? code C nha
Re: Help! Ngắt ngoài trong 8051, code C
Hỏi miết mà không ai trả lời thôi tự xử luôn.
Mình tự mày mò viết được như thế này (viết cho xe máy) chưa tối ưu lắm, các bạn có gì góp ý nha:
#define demay P0_0
#define phanh P0_1
#define left P0_2
#define right P0_3
#define turn_on P0_4
unsigned char i,j;
unsigned char M[]={0x88,0x44,0x22,0x11,0x89,0x45,0x23,0x13,
0x8b,0x47,0x27,0x17,0x8f,0x4f,0x2f,0x1f,
0x9f,0x5f,0x3f,0xbf,0x7f,0xff};
unsigned char N[]={0x88,0x44,0x22,0x11,0x88,0x44,0x22,0x11,
0x88,0x44,0x22,0x11,0x88,0x44,0x22,0x11,
0x88,0x44,0x22,0x11,0x88,0x44};
//****************************************************************//
void tre(long h)
{
long n;
for(n=0;n {
;
}
}
//*******************************************************************//
void chop()
{
P1=0xff;
tre(8000);
}
//********************************************************************//
void chaylenchayxuong()
{
unsigned char A[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char B[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
for(i=0;i<9;i++)
{
P1=A[i];
tre(1000);
}
for(j=0;j<9;j++)
{
P1=B[j];
tre(1000);
}
}
//------------------------------------------------------------------------
void dungyen_p1()
{
do
{
P1=0xff;
}
while (demay==0);
}
//=========================================================================
void dungyen_p2_3()
{
do
{
P2=P3=0xff;
}
while(phanh==0);
}
//=============================================================================
void de_may()
{
P2=P3=0x00;
for(i=0;i<22;i++)
{
P2=M[i];
tre(300);
P3=N[i];
tre(300);
}
for(i=0;i<22;i++)
{
P3=M[i];
tre(300);
P2=0xff;
}
}
//==============================================================================
unsigned char G[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //dem sang chay thuan
unsigned char H[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00}; //dem sang chay thuan
void luot_khi_bat_khoa()
{
for(i=0;i<8;i++)
{
P2=G[i];
tre(700);
}
P2=0x00; tre(0);
for(i=0;i<9;i++)
{
P3=H[i];
tre(700);
}
}
//======================================================================================
unsigned char K[]={0x11,0x22,0x44,0x88}; //luot 1 cach 2
void luot_khi_phanh()
{
for(j=0;j<4;j++)
{
P2=P3=K[j];
tre(1000);
}
}
//======================================================================================
//======================================================================================
void main()
{
P2=P3=0x00;
luot_khi_bat_khoa();
chop();
chaylenchayxuong();
dungyen_p1();
de_may();
dungyen_p2_3();
while(1)
{
do
{
luot_khi_phanh();
}
while(phanh==1);
do
{
P2=P3=0xff;
}
while(phanh==0);
}
}
Video:
Mình tự mày mò viết được như thế này (viết cho xe máy) chưa tối ưu lắm, các bạn có gì góp ý nha:
#define demay P0_0
#define phanh P0_1
#define left P0_2
#define right P0_3
#define turn_on P0_4
unsigned char i,j;
unsigned char M[]={0x88,0x44,0x22,0x11,0x89,0x45,0x23,0x13,
0x8b,0x47,0x27,0x17,0x8f,0x4f,0x2f,0x1f,
0x9f,0x5f,0x3f,0xbf,0x7f,0xff};
unsigned char N[]={0x88,0x44,0x22,0x11,0x88,0x44,0x22,0x11,
0x88,0x44,0x22,0x11,0x88,0x44,0x22,0x11,
0x88,0x44,0x22,0x11,0x88,0x44};
//****************************************************************//
void tre(long h)
{
long n;
for(n=0;n
;
}
}
//*******************************************************************//
void chop()
{
P1=0xff;
tre(8000);
}
//********************************************************************//
void chaylenchayxuong()
{
unsigned char A[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char B[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
for(i=0;i<9;i++)
{
P1=A[i];
tre(1000);
}
for(j=0;j<9;j++)
{
P1=B[j];
tre(1000);
}
}
//------------------------------------------------------------------------
void dungyen_p1()
{
do
{
P1=0xff;
}
while (demay==0);
}
//=========================================================================
void dungyen_p2_3()
{
do
{
P2=P3=0xff;
}
while(phanh==0);
}
//=============================================================================
void de_may()
{
P2=P3=0x00;
for(i=0;i<22;i++)
{
P2=M[i];
tre(300);
P3=N[i];
tre(300);
}
for(i=0;i<22;i++)
{
P3=M[i];
tre(300);
P2=0xff;
}
}
//==============================================================================
unsigned char G[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //dem sang chay thuan
unsigned char H[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00}; //dem sang chay thuan
void luot_khi_bat_khoa()
{
for(i=0;i<8;i++)
{
P2=G[i];
tre(700);
}
P2=0x00; tre(0);
for(i=0;i<9;i++)
{
P3=H[i];
tre(700);
}
}
//======================================================================================
unsigned char K[]={0x11,0x22,0x44,0x88}; //luot 1 cach 2
void luot_khi_phanh()
{
for(j=0;j<4;j++)
{
P2=P3=K[j];
tre(1000);
}
}
//======================================================================================
//======================================================================================
void main()
{
P2=P3=0x00;
luot_khi_bat_khoa();
chop();
chaylenchayxuong();
dungyen_p1();
de_may();
dungyen_p2_3();
while(1)
{
do
{
luot_khi_phanh();
}
while(phanh==1);
do
{
P2=P3=0xff;
}
while(phanh==0);
}
}
Video:
Similar topics
» Mạch cảm biến hồng ngoại
» Mạch điều khiển từ xa bằng tia hồng ngoại 1 kênh
» Mạch điều khiển từ xa bằng tia hồng ngoại 10 kênh
» Một số mẫu bìa đẹp trong Word
» Chạy LED trong Corel
» Mạch điều khiển từ xa bằng tia hồng ngoại 1 kênh
» Mạch điều khiển từ xa bằng tia hồng ngoại 10 kênh
» Một số mẫu bìa đẹp trong Word
» Chạy LED trong Corel
Forum :: VI ĐIỀU KHIỂN :: VĐK họ 8051
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|