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

📄 debug.c

📁 GPS驱动集合
💻 C
📖 第 1 页 / 共 4 页
字号:
#include "DEBUG.H" 

////////////////////////////////////////////////////////////////////////////////////// 
///////////////延时函数/////////////////////////////////////////////////////////////// 
////////////////////////////////////////////////////////////////////////////////////// 
void delay() //less than 1ms 
{
  uchar i;
  for (i = 0; i < 100; i++)
    _nop_();
}

void delay_160ms() //160ms 
{
  uchar i, j;
  for (i = 0; i < 255; i++)
  {
    for (j = 0; j < 255; j++)
    {
      _nop_();

    }
  }
}

//延时500ms秒 
void delay_500ms()
{
  uchar i;
  for (i = 0; i < 2; i++)
    delay_160ms();
}

//延时1S 
void delay_1s() //1s 
{
  uint i;
  for (i = 0; i < 45000; i++)
  {
    _nop_();
    _nop_();
  }
}

//////////////////////////////////////////////////////////////////////////////////////// 
/////////////液晶相关函数//////////////////////////////////////e///////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////// 
//write command to LCM// 
void write_cmd(uchar cmdData)
{
  uint idata i;
  SID = 1;
  for (i = 0; i < 5; i++)
  //5个1 
  {
    SCLK = 0;
    SCLK = 1;
  }
  SCLK = 0;
  SID = 0;
  SCLK = 1; //RW 
  SCLK = 0;
  SCLK = 1; //RS 
  SCLK = 0;
  SCLK = 1; //0 
  SCLK = 0;
  SID = cmdData &amt;
  0x80;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x40;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x20;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x10;
  SCLK = 1;
  SCLK = 0;
  SID = 0;
  SCLK = 1; //四个0 
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x08;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x04;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x02;
  SCLK = 1;
  SCLK = 0;
  SID = cmdData &amt;
  0x01;
  SCLK = 1;
  SCLK = 0;
  SID = 0;
  SCLK = 1; //四个0 
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  delay();
}

//write data to LCD// 
void write_data(char datData)
{
  uint idata i;
  SID = 1; //五个 1 
  for (i = 0; i < 5; i++)
  {
    SCLK = 0;
    SCLK = 1;
  }
  SCLK = 0;
  SID = 0;
  SCLK = 1; //RW 
  SCLK = 0;
  SID = 1;
  SCLK = 1; //RS 
  SCLK = 0;
  SID = 0;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x80;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x40;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x20;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x10;
  SCLK = 1;
  SCLK = 0;
  SID = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x08;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x04;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x02;
  SCLK = 1;
  SCLK = 0;
  SID = datData &amt;
  0x01;
  SCLK = 1;
  SCLK = 0;
  SID = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  SCLK = 1;
  SCLK = 0;
  //reset(); 
  delay();
}


//液晶初始化函数 
void init_LCD()
{
  write_cmd(0x30); //功能设定:八位控制界面,基本指令集 
  write_cmd(0x0c); //显示状态开关:整体显示 
  write_cmd(0x01); //清除显示 
  write_cmd(0x06); //进入点设定:光标的移动方向(光标右移位址计数器加一) 
  write_cmd(0x01); //clear lcm screen 
}

//print string to LCD/////// 
void put_string(uchar display_start_addr, char *str_source)
{
  char idata i;
  write_cmd(display_start_addr);
  delay();
  for (i = 0;  *str_source != '\0'; i++)
  {
    write_data(*str_source);
    delay();
    str_source++;
  }
}

//show vegetalbe type screen 
void type_screen()
{
  put_string(0x90, " "); //显示定位 
  switch (vege_page_index)
  {
    case 0:
      put_string(0x80, "01白萝卜02菠菜 05大白菜06大葱 03菜花 04长茄子");
      break;
    case 1:
      put_string(0x80, "07大蒜 08冬瓜 11荷兰豆12红尖椒09豆角 10佛手 ");
      break;
    case 2:
      put_string(0x80, "13胡萝卜14黄豆芽17鸡腿菇18尖椒 15黄瓜 16茴香 ");
      break;
    case 3:
      put_string(0x80, "19茭白 20芥菜 23空心菜24苦瓜 21金针菇22韭菜 ");
      break;
    case 4:
      put_string(0x80, "25莲藕菜26绿豆芽29木耳 30南瓜 27绿尖椒28毛豆 ");
      break;
    case 5:
      put_string(0x80, "31平菇 32茄子 35山药 36生菜 33芹菜 34青椒 ");
      break;
    case 6:
      put_string(0x80, "37生姜 38丝瓜 41茼蒿 42土豆 39蒜苗 40蒜薹 ");
      break;
    case 7:
      put_string(0x80, "43莴笋 44西红柿47西洋芹48香菜 45西葫芦46西兰花");
      break;
    case 8:
      put_string(0x80, "49香椿 50香菇 53洋白菜54洋葱头51小白菜52小葱 ");
      break;
    case 9:
      put_string(0x80, "55油菜 56油麦菜 57圆茄子58竹笋 ");
      break;
    default:
      break; //put_string(0x80,"page does not exist"); break; 
  }
  put_string(0x98, "选择代号:");
  write_cmd(0x9d); //显示地址设为第4行第6列 
  put_string(0x9d, vege_type); //显示当前所选择的蔬菜类型 
}

//蔬菜价格界面显示 
void price_screen()
{
  char idata a[3] = 
  {
    0xa3, 0xaf, '\0'
  }; ////////////中文字符'/'的中文字库编码 
  write_cmd(0x01); //全部清除显示 
  put_string(0x90, " "); //用于显示定位,如果没有这句就经常不会正常显示 
  if (vege_type[0] == '0')
  switch (vege_type[1])
  {
    case '1':
      put_string(0x90, "输入白萝卜价格:");
      break;
    case '2':
      put_string(0x90, "输入菠菜价格:");
      break;
    case '3':
      put_string(0x90, "输入菜花价格:");
      break;
    case '4':
      put_string(0x90, "输入长茄子价格:");
      break;
    case '5':
      put_string(0x90, "输入大白菜价格:");
      break;
    case '6':
      put_string(0x90, "输入大葱价格:");
      break;
    case '7':
      put_string(0x90, "输入大蒜价格:");
      break;
    case '8':
      put_string(0x90, "输入冬瓜价格:");
      break;
    case '9':
      put_string(0x90, "输入豆角价格:");
      break;
    default:
      break;
  }
  else if (vege_type[0] == '1')
  switch (vege_type[1])
  {
    case '0':
      put_string(0x90, "输入佛手价格:");
      break;
    case '1':
      put_string(0x90, "输入荷兰豆价格:");
      break;
    case '2':
      put_string(0x90, "输入红尖椒价格:");
      break;
    case '3':
      put_string(0x90, "输入胡萝卜价格:");
      break;
    case '4':
      put_string(0x90, "输入黄豆牙价格:");
      break;
    case '5':
      put_string(0x90, "输入黄瓜价格:");
      break;
    case '6':
      put_string(0x90, "输入茴香价格:");
      break;
    case '7':
      put_string(0x90, "输入鸡腿菇价格:");
      break;
    case '8':
      put_string(0x90, "输入尖椒价格:");
      break;
    case '9':
      put_string(0x90, "输入茭白价格:");
      break;
    default:
      break;
  }
  else if (vege_type[0] == '2')
  switch (vege_type[1])
  {
    case '0':
      put_string(0x90, "输入芥菜价格:");
      break;
    case '1':
      put_string(0x90, "输入金针菇价格:");
      break;
    case '2':
      put_string(0x90, "输入韭菜价格:");
      break;
    case '3':
      put_string(0x90, "输入空心菜价格:");
      break;
    case '4':
      put_string(0x90, "输入苦瓜价格:");
      break;
    case '5':
      put_string(0x90, "输入莲藕菜价格:");
      break;
    case '6':
      put_string(0x90, "输入绿豆牙价格:");
      break;
    case '7':
      put_string(0x90, "输入绿尖椒价格:");
      break;
    case '8':
      put_string(0x90, "输入毛豆价格:");
      break;
    case '9':
      put_string(0x90, "输入木耳价格:");
      break;
    default:
      break;
  }
  else if (vege_type[0] == '3')
  switch (vege_type[1])
  {
    case '0':
      put_string(0x90, "输入南瓜价格:");
      break;
    case '1':
      put_string(0x90, "输入平菇价格:");
      break;
    case '2':
      put_string(0x90, "输入茄子价格:");
      break;
    case '3':
      put_string(0x90, "输入芹菜价格:");
      break;
    case '4':
      put_string(0x90, "输入青椒价格:");
      break;
    case '5':
      put_string(0x90, "输入山药价格:");
      break;
    case '6':
      put_string(0x90, "输入生菜价格:");
      break;
    case '7':
      put_string(0x90, "输入生姜价格:");
      break;
    case '8':
      put_string(0x90, "输入丝瓜价格:");
      break;
    case '9':
      put_string(0x90, "输入蒜苗价格:");
      break;
    default:
      break;
  }
  else if (vege_type[0] == '4')
  switch (vege_type[1])
  {
    case '0':
      put_string(0x90, "输入蒜薹价格:");
      break;
    case '1':
      put_string(0x90, "输入茼蒿价格:");
      break;
    case '2':
      put_string(0x90, "输入土豆价格:");
      break;
    case '3':
      put_string(0x90, "输入莴笋价格:");
      break;
    case '4':
      put_string(0x90, "输入西红柿价格:");
      break;
    case '5':
      put_string(0x90, "输入西葫芦价格:");
      break;
    case '6':
      put_string(0x90, "输入西兰花价格:");
      break;
    case '7':
      put_string(0x90, "输入西洋芹价格:");
      break;
    case '8':
      put_string(0x90, "输入香菜价格:");
      break;
    case '9':
      put_string(0x90, "输入香椿价格:");
      break;
    default:
      break;
  }
  else if (vege_type[0] == '5')
  switch (vege_type[1])
  {
    case '0':
      put_string(0x90, "输入香菇价格:");
      break;
    case '1':
      put_string(0x90, "输入小白菜价格:");
      break;
    case '2':
      put_string(0x90, "输入小葱价格:");
      break;
    case '3':
      put_string(0x90, "输入洋白菜价格:");

⌨️ 快捷键说明

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