不知道坛子里有没有朋友用单片机做过自动化测试,或者用一此测试台方面的呢?
最近做一些这方面的,感觉程序总是的频繁的进入死循环,很郁闷!不知道应该怎么下?
举个例子
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit start = P3^7;
sbit alarm = P3^6;
sbit fan = P2^0;
sbit door = P2^1;
sbit flash = P2^2;
void delay_1ms()
{
uint8 a=152;
while(a--);
}
void delay_ms(uint16 n)
{
uint16 i;
for(i=n;i--;i>0)
{
delay_1ms();
}
}
void start_test(void)
{
while(1)
{
fan = 0;
door = 0;
flash = 1;
}
}
void alarm_test(void)
{
fan = 1;
door = 1;
flash = 0;
}
main()
{
P0 = 0xff;
P3 = 0xff;
fan = 1;
door = 1;
flash = 1;
if(start==0);
{
delay_ms(10);
if(start==0)
{
while(start==0);
start_test();
}
else if(alarm==0)
{
delay_ms(10);
if(alarm==0)
{
while(alarm==0)
alarm_test();
}
}
}
}
我想让程序在按下START后开始,在START中进行的同时检查malrm,如报警则退出,回到主程序等待START按下,不知道程序怎么写?
有没有朋友帮下?? |