打印

关于单片机用在自动化测试方面的问题

[复制链接]
1930|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duhemayi|  楼主 | 2012-9-16 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道坛子里有没有朋友用单片机做过自动化测试,或者用一此测试台方面的呢?
最近做一些这方面的,感觉程序总是的频繁的进入死循环,很郁闷!不知道应该怎么下?
举个例子
#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按下,不知道程序怎么写?
有没有朋友帮下??

相关帖子

沙发
ningling_21| | 2012-9-16 20:57 | 只看该作者
的同时检查alarm .
while(start==0)
{
    if(alarm ==0)
   {
       break;
   }
}

使用特权

评论回复
板凳
duhemayi|  楼主 | 2012-9-17 13:48 | 只看该作者
多谢!那像1602这样显示器,显示的时候闪烁,我检查了一下原因,是因为单片机一直在扫描,那怎么让它不闪呢?

使用特权

评论回复
地板
darlin520| | 2012-9-17 16:19 | 只看该作者
把写命令和写数据函数中的延时加长一点就不会闪了。。

使用特权

评论回复
5
duhemayi|  楼主 | 2012-9-17 18:11 | 只看该作者
把写命令和写数据函数中的延时加长一点就不会闪了。。


我试下!

使用特权

评论回复
6
henglin| | 2017-1-28 21:32 | 只看该作者
我经常用单片机做测试台,你这么说只能说明你的功夫还不够深

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

1667

帖子

8

粉丝