毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于单片机的PCB钻床控制系统设计 第11页

更新时间:2008-5-29:  来源:毕业论文

基于单片机的PCB钻床控制系统设计 第11页
3-14 交流伺服电机控制电路图若图片无法显示请联系QQ752018766

3.9 本章小结

PCB钻床控制系统的硬件设计是本论文的重点之一。这一章详细地介绍了PCB钻床控制系统硬件各部分的设计与实现,其中包括对电源电路设计、系统复位电路设计、晶振电路设计、存储系统设计、JTAG接口电路、串口通信的硬件设计、键盘、LCD及交流伺服电机控制电路设计。

4PCB钻床控制系统的软件设计

4.1 键盘的软件设计

在本系统的设计中键盘是操作人员对整个系统发送指令的唯一通道,其软件的设计是很重要的,主要是键盘的初始化和按键识别。键盘的初始化,是整个系统初始化的一部分,其流程图如图4-1所示。

若图片无法显示请联系QQ752018766

4-1键盘的初始化流程图

本系统设计的键盘采用的是中断方式,所以键盘的按键识别其实是一个中断服务子程序,对应外部中断0。其流程图如图4-2所示:

若图片无法显示请联系QQ752018766

4-2 键盘程序设计图

其中键码识别函数:

int  keyboard(void)

{

    int key;

    rPCONE &=0xFFFFF0FF;

    if(( rPDATE&0x10)==0)

    {

          Delay(1);

          if (( rPDATE&0x10)==0)

                {

                  {

              default:  key=0;break;

             }

           return key;

           }

    }

    else

    {

          if(( rPDATE&0x20)==0)

          {

           Delay(1);

            if (( rPDATE&0x10)==0)

                 {

                 rPCONE &=0xFFFFF000;

                rPCONE |=0xFFFFF500;

                 rPDATE  &=(~0x30)

                    switch( rPDATE&0xF)

                    {

                     若图片无法显示请联系QQ752018766

               case 13:  key=2;break;

                     case  7:  key=4;break;

               default:  key=0;break;

               }

             return key;

             }

          }

      }

}

4.2 串口程序设计

在进行串口通信之前必须对串口进行初始化,首先要设置相应I/OTXD0RXD0功能引脚,然后通过ULXON0寄存器来设置串口数据格式,通过UCON0寄存器来设置串口工作模式,最后通过UBRDIV0来设置通讯波特率。在本系统的设计中串口的工作模式为查询方式,即UCON0[31]应为0101b。串口初始化代码程序如下:

void UART_Init(void)

{

//I/O口设置(GPH3,GPH2)

rGPHUP=Rgphup(0x03<<2)

rGPHCON=(Rgphcon&(0x000000A0)

//串口模式设置

rUFCON0=0x00;//禁止FIFO功能

rUMCON0=0x00;//AFC(流控制)禁能

rULCON0=0x03;//禁止IrDA,无奇偶校验,1位停止位,8位数据位

rUCON0=0x245;//使用PCLK来生成波特率,发送中断为电平触发模式,接受中断为边

             //沿触发模式,禁止接受超时中断,使能接受错误中断,正常工作模式,

             //中断或查询方式(非DMA

//串口波特率设置

若图片无法显示请联系QQ752018766

}

    使用串口发送数据时,将待发送数据写入UTXH0寄存器,然后通过读取UTRSTAT0寄存器的值判断数据是否发送完成。当然,实际代码也可以先等待UTXH0寄存器为空(通过读取UTRSTAT0寄存器的值判断),再将数据写入UTXH0寄存器,串口数据写入UTXH0寄存器,串口数据发送程序如下:

void UART_SendByte(uint8 data)

{

int  i;

若图片无法显示请联系QQ752018766 //等待发送器为空

for(i=0;I,10;i++);

rUTXH0=data;               //发送数据

}

进行串口数据接受时,通过读取UTRSTAT0寄存器的值判断是否接受到数据,如果接受到数据,则可以从URXH0寄存器中读出数据,串口数据接受程序如下:

int UART_GetKey(void)

{

int   i;

       for(i=0;I,10;i++);

     return(rURXH0);

}

4.3 LCD模块程序设计

根据HD61202液晶控制电路设计图3-14若图片无法显示请联系QQ752018766及其读写波形图4-3

 << 上一页  [11] [12] [13] [14] 下一页

基于单片机的PCB钻床控制系统设计 第11页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。