CPU通過配置暫存器來控制硬體電路實作功能
實體1 點亮一個LED
#include <REGX52.H>
void main()
{
P2 = 0xFE; //1111 1110
while(1)
{
}
}
實體2 LED閃爍
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay500ms();
P2 = 0xFF;
Delay500ms();
}
}
實體3 LED流水燈
//延時函式通過STC-ISP生成
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE; //1111 1110
Delay500ms();
P2 = 0xFD; //1111 1101
Delay500ms();
P2 = 0xFB; //1111 1011
Delay500ms();
P2 = 0xF7; //1111 0111
Delay500ms();
P2 = 0xEF; //1110 1111
Delay500ms();
P2 = 0xDF; //1101 1111
Delay500ms();
P2 = 0xBF; //1011 1111
Delay500ms();
P2 = 0x7F; //0111 1111
Delay500ms();
}
}
實體4 LED流水燈Plus
//給定引數調節延時
#include <REGX52.H>
void Delay1ms(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms --;
}
}
void main()
{
while(1)
{
P2 = 0xFE; //1111 1110
Delay1ms(100);
P2 = 0xFD; //1111 1101
Delay1ms(100);
P2 = 0xFB; //1111 1011
Delay1ms(100);
P2 = 0xF7; //1111 0111
Delay1ms(100);
P2 = 0xEF; //1110 1111
Delay1ms(100);
P2 = 0xDF; //1101 1111
Delay1ms(100);
P2 = 0xBF; //1011 1111
Delay1ms(100);
P2 = 0x7F; //0111 1111
Delay1ms(100);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352022.html
標籤:其他
