您现在的位置:网站首页 > 经验分享 > 基于单片机的切绘机控制程序源码示例[2]
设计师介绍:

昵称:烦夫子
类别:界面/平面设计师
年龄:38
现所在地:北京

查看该设计师的主页>>

关注好友

统计中心

主页浏览总数:24259
总积分:89
文章数:88
作品数:70

基于单片机的切绘机控制程序源码示例[2]

作者:烦夫子  更新时间: 2007-11-19   浏览人数:17886  评论:0  
分享到:

开发源码

                              切绘机控制程序源代码

                                  通信处理

//INT0:8251和计算机通信的中断服务子程序
void service_int0()interrupt 0 using 1   /*INT0中断服务程序,使用第二组寄存器*/
  {
    uchar idata k;
    if(sign_7fff!=1)
        EX1=0;                           /*关闭外部中断0和1*/
    let_test=1;                       /*禁止测试键有效*/
    receive_begain=1;
    chreceive( );         /*串行数据处理*/
    if(let_begain==1)                      /*数据接收完后,刀笔状态要回到接收之前的状态,比如:接收第二批之前先抬笔,接收完第二批后先落下*/
      {
        let_luo=1;               /*禁止键盘抬落笔*/
        k=ZJ;
        ZJ=80;
        while(ZJ!=k)
           {
            if(ZJ                outzz( );
            else
                outfz( );
           }
        let_luo=0;               /*允许键盘抬落笔*/
       }
    }


void chreceive(void)           /*串行数据接收*/
{
       bit p_sign=1;
       if(int_receive==0x7fff)          /*如果是ffff或数据结束的标志‘G’就应该发出信号,让计算机暂时停止发送*/
            {
                EX1=1;
                sign_7fff=1;
                //panbit=1;
                *int_receive=utlk(0x00,0x00);
                no_send( );
                int_receive=0x0000;
                let_begain=1;                       /*let_begain=1;表示此时数据接收告一段落,可以开始执行程序*/
                goto qqq;
             }
         else
            {
                *int_receive=utlk(0x00,0x00);
                if(*int_receive==0x00)
                   {
                     let_test=0;                       /*测试键有效*/
                     receive_begain=0;
                     goto qqq;
                   }
                if(*int_receive=='G')
                   {
                     g_sign=1;
                     let_begain=1;
                   }
                if(*int_receive==';' && g_sign==1)
                   {
                     EX1=1;
                     g_sign=0;
                     no_send( );         //如果是数据发送完毕,禁止发送数据
                   }
             }
          int_receive++;
       qqq: ;
}

(目前有0人发表看法,  我要发表评论
我要评论:
  只有登录后才能评论!
评论者: 匿名游客    (立即登录 或 注册)