⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.h

📁 我自己做的一个手柄机的程序
💻 H
字号:
#ifndef  _function_h
#define  _functon_h

#include<stdio.h>
#include<string.h>
#include<reg52.h>
#include<stdlib.h>
#include<absacc.h>
#include<intrins.h>
#include"mobileph.h"
#include"fontLib.h"
#include"system.h"






/**************************************************************
** 函数名称:delayS
** 函数功能:延时以秒为单位
** 输入参数:second
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
****************************************************************/
void delayS(UINT8 second)
{
  UINT8 i,j,k;
  for(i=second;i>0;i--)
    for(j=200;j>0;j--)       //100ms
      for(k=248;k>0;k--);     //0.5ms
}

/**************************************************************
** 函数名称:delayMs
** 函数功能:延时以ms为单位
** 输入参数:second
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
****************************************************************/
void delayMs(UINT8 second)reentrant
{
  UINT8 i, k;
  for(i=second; i>0; i--)
      for(k=248; k>0; k--);     //0.5ms
}
/**************************************************************
** 函数名称:delayUs
** 函数功能:延时以us为单位
** 输入参数:second
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
**************************************************************/
void delayUs(UINT8 second)
{
  UINT8 i;
  for(i=second; i>0; i--);
}
/**************************************************************
** 函数名称:initCpu
** 函数功能:初始化CPU以及uart turn on MC388
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:ignitMC
** 备注:    无
****************************************************************/
void initCpu(void)
{
 IE = 0x92;	      //eable interrupt 10010001b:91h
 SCON = 0X50;     //10000000
 PCON = 0X80;     //10000000
 TMOD = 0X21;
 //TCON = 0X40;
 TH1 = 0Xfd;     //9600BAUD RATE
 TL1 = 0Xfd;
 TH0 = 0X3c;
 TL0 = 0Xaf;
 ET0 = 1;
 TR1 = 1;
 TR0 = 1;
 //IT0 = 1;
 //IE0 = 0;
// memset(UART_BUFF, 0, UART_BUFF_SIZE);
 P0 = 0xFF;
 P1 = 0x00;
 P2 = 0xFF;
 IP = 0X01;                   //00010000
}
/**************************************************************
** 函数名称:ignitMC()
** 函数功能:turn on MC388
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
****************************************************************/
void ignitMC(void)
{
 IGT = 1;
 _nop_();
 _nop_();
 IGT = 0;
 IGT = 1;
 delayS(1); //DELAY 0.1S
 delayUs(20);
 IGT = 0;
}
/**************************************************************
** 函数名称:uartSend
** 函数功能:用模拟串口发送一个字节
** 输入参数: sendData:发送的数据或者命令,flag:命令或者数据标志
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
****************************************************************/
void uartSend(UINT8 sendData, UINT8 flag)reentrant
{
 UINT8 nBit = 0, temp;

 DC = flag;
 temp = sendData;
 CS = 0;
 while(nBit < 8)
  {
   nBit++;
   SCLK = 0;
 if(0 == (temp & 0x80))
    SDA = 0;
 else  SDA = 1;
  _nop_();
   SCLK = 1;
   temp <<= 1;
  }
   CS = 1;
}
/**************************************************************
** 函数名称:iniLcd
** 函数功能:初始化LCD
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    无
****************************************************************/
void initLcd(void)
{
  UINT8  nData = 0;
     RST = 0;               // reset lcd
     delayMs(0x10);
     RST = 1;

  while (nData < 8)
    {
     uartSend(cmdLcm[nData], 0);     //initial command
     nData++;
     }
  clearScreen();
  clearIcons();
}
/**************************************************************
** 函数名称:clearScreen
** 函数功能:清楚这个屏幕
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    按地址写入数据0
****************************************************************/
void clearScreen(void)reentrant
{
UINT8  page,column;
page = 0xb0;
RAM_PAGE = 0X02;
X_AXIS = 0X04;

while(page <0xb8)
 {
  uartSend(page, 0);
  uartSend(0x10,0);
  uartSend(0x04,0);
  page++;

  column = 4;
  while(column < 132)
   {
    uartSend(0x00, 1);
    column++;
   }
  }
 }
/**************************************************************
** 函数名称:cleaIons
** 函数功能:清楚ICON
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    按地址写入数据0
****************************************************************/
void clearIcons()
{
 UINT8 column = 4;
 uartSend(0xB8, 0);
 uartSend(0X10, 0);
 uartSend(0X00, 0);
 while(column < 132)
   {
     column++;
	 uartSend(0x00, 1);
	}
}

/**************************************************************
** 函数名称:cle arPage
** 函数功能:清楚ICON
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    按地址写入数据0
****************************************************************/

void clearPage(UINT8 PAGE)
{
 UINT8 temp = 4;
 PAGE |= 0XB0;
 uartSend(PAGE, 0);
 uartSend(0x10, 0);
 uartSend(0x00, 0);
 while(temp < 132)
   {
    temp++;
    uartSend(0x00,1);
  }
}


/******************************************************

                 显示光标

******************************************************

void dispCursor(UINT8 page, UINT8 y)
{
 UINT8 pos = 0, temp = 0, j = 0,i = 0;

 page |= 0xb0;
 pos = y;
 temp = pos & 0xf0;
 temp >>= 4;
 pos &= 0x0f;
 uartSend(page, 0);
 uartSend(temp, 0);
 uartSend(pos, 0);
 while(j < 0x03)

 {
  while(i < 0x02)
  {
   i++;
   j++;
   uartSend(0xff,1);
  }
 }
}

*/
/*******************************************************

                清除光标

*******************************************************
void clearCursor(UINT8 page, UINT8 y)
{
 UINT8 pos = 0, temp = 0, j = 0,i = 0;

 page |= 0xb0;
 pos = y;
 temp = pos & 0xf0;
 temp >>= 4;
 pos &= 0x0f;
 uartSend(page, 0);
 uartSend(temp, 0);
 uartSend(pos, 0);
 while(j < 0x03)

 {
  while(i < 0x02)
  {
   i++;
   j++;
   uartSend(0x00,1);
  }
 }
}
*/

/**************************************************************
** 函数名称:clearFonts
** 函数功能:清楚N  font
** 输入参数:无
** 返回参数:无
** 调用模块:无
** 全局变量:无
** 备注:    按地址写入数据0
****************************************************************/
extern void clearFont(UINT8 PAGE,UINT8  X_AXIS)
{
 UINT8 cnt = 0, i,temp;
 i = PAGE | 0XB0;
while(cnt < 3)
{
 cnt++;
 temp = X_AXIS & 0X0F;
 uartSend(i,0);
 i++;
 uartSend(temp,0);
 temp = X_AXIS & 0xf0;
 temp >>= 4;
 temp |= 0x10;
 uartSend(temp,0);
 temp = 0;
 while(temp < 12)
  {
   uartSend(0x00,1);
   temp++;
   }
 }

if((X_AXIS < 0X06) && (PAGE > 0X02))
   {
    PAGE -= 3;
    X_AXIS = 119;
   }
else if((PAGE == 0X02) && (X_AXIS == 0X04))
   dispBYD();

}


/*********************************************
** 函数名称

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -