📄 p456.c
字号:
#include <Winbond\REG54.H>
#include <INTRINS.H> // for _nop_()
sbit P14 = P1^4; //count Switch
sbit P13 = P1^3; //Tray-In/Out Switch
sbit P12 = P1^2;
sbit P11 = P1^1;
sbit P16 = P1^6;
void delay_1ms(unsigned short t);
void delay_10us(unsigned char t);
void delay_20us(unsigned char t);
void delay_50us(unsigned char t);
void delay_100us(unsigned char t);
void delay_500us(unsigned char t);
void DA_invert(unsigned int voltage,unsigned int time);
void systemini();
void systemini()
{
EA=0; //inetrrupt Disable
}
void delay_1ms(unsigned short t) //useful range t = 1(1ms) ~ 1000(1s)
{
int i;
while(t>0)
{
i=120;
while(i>0)
{
i--;
}
t--;
_nop_();
_nop_();
_nop_();
_nop_();
}
}
void delay_10us() //useful range (10us)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void delay_20us(unsigned char t) //useful range t = 1(20us)
{
while(t>0)
{
_nop_();
t--;
}
}
void delay_50us(unsigned char t) //useful range t = 1(100us)
{
int i;
while(t>0)
{
i=3;
while(i>0)
{
_nop_();
_nop_();
i--;
}
t--;
}
}
void delay_100us(unsigned char t) //useful range t = 1(100us)
{
int i;
while(t>0)
{
i=10;
while(i>0)
{
i--;
}
t--;
_nop_();
}
}
void delay_500us(unsigned char t) //useful range t = 1(500us)
{
int i;
while(t>0)
{
i=60;
while(i>0)
{
i--;
}
t--;
}
}
void DA_invert(unsigned int voltage,unsigned int time)
{
unsigned int j;
unsigned int T;
T=time*1000;
for(j=0;j<T;j++)
{
P16=0;
delay_100us(1);
delay_100us(1);
delay_100us(1);
delay_20us(1);
delay_20us(1);
P16=1;
delay_500us(1);
delay_100us(1);
delay_50us(1);
delay_10us();
}
}
main()
{
char i=0;
P2=0x00;
P1=0X00;
P16=0;
delay_100us(1);
delay_100us(1);
delay_100us(1);
delay_20us(1);
delay_20us(1);
P16=1;
delay_500us(1);
delay_100us(1);
delay_50us(1);
delay_10us();
while(1)
{
do { //out turn
P13=0;
delay_1ms(200);
P14=0;
delay_1ms(200);
P13=1;
delay_1ms(200);
P14=1;
delay_1ms(200);
P2=0x00;
} while(P12==1 && P11==1);
do { //in turn
P14=1;
delay_1ms(200);
P13=1;
delay_1ms(200);
P14=0;
delay_1ms(200);
P13=0;
delay_1ms(200);
P2=0x01;
} while(P11==0 && P11==0);
}
while(1) //LED 0~1 Add Count Display
{
delay_1ms(1000);
P2++;
if (P2==0x0a) P2=0x00;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -