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

📄 testnew.c

📁 单片机开发程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/***************************************************************************/
       /*  新 系 统 板 测 试  C51 程序 */
       /*         作者:孔鹏           */
       /*        2005-3-29           */
       /********************************/
/**************************************************************************/
#include <reg52.h>
#include <math.h>
#include <stdio.h>
#include <absacc.h>
#define LCD_WCOM XBYTE[0x8000]
#define LCD_RCOM XBYTE[0x8001]
#define LCD_WDAT XBYTE[0x8002]
#define LCD_RDAT XBYTE[0x8003]
#define KEY      XBYTE[0x8000]
#define DATAPORT XBYTE[0xb000]  //点阵数据口地址
#define COMPORT  XBYTE[0xb200]  //点阵命令口地址
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long int
#define NUM 18
#define Data_Start  0x0f   /***Any Data***/
#define Max_Addr    32768  /***32KBytes***/
#define Max_Addr_1K 1024
/**************************************/

void Init_Int(void);             //中断初始化
void Display(uchar *Tab);        //显示子程序最底层
void Delay(uint Time);           //延时子程序
void L_delay(uchar T);           //长时间延时程序
void Chars_dis(uchar *s);        //英文字符显示送显程序
/**************************************/
void Out_data(uchar dat);             //向点阵数据口发数据
void Check(void);                     //检查点阵读写状态
void Out_com(uchar com);              //写一个命令
void Out_data_com(uchar dat1,uchar com1);//写一个数据和一个命令
void Out_data2_com(uchar dat1,uchar dat2,uchar com1);//写两个数据和一个命令
void Dis_point_2(uchar x,uchar y,uchar mode);      //指定位置描点程序
void Pic_out(void);                   //图形输出程序
void Init_Dian(void);                 //点阵初始化
void Clear_Dian(uchar a);                //字符显示清屏
void Dis_line(uchar Line_num);  //点阵显示一行字符
void Init_Serial_Interrupt(void);
void Init_Serial_Timer1(void);
void Init_Serial(void);           //初始化串口通讯
void Outport(uchar i);            //发送8位数据
void Send_Byte(uchar datas);      //完整的单字节数据串行发送子程序包括初始化
void Send_Word(uint datas);       //完整的双字节数据串行发送子程序包括初始化
/**********************************************************************/

uchar xdata *Addr;
uint Error=0;
uchar Data_test=0;
/**********************************************************************/
/**********************************************************************/
uchar code Sin[1024]={
0x80,0x80,0x81,0x82,0x83,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x89,0x8A,0x8A,0x8B,
0x8C,0x8D,0x8E,0x8E,0x8F,0x90,0x91,0x91,0x92,0x93,0x94,0x95,0x95,0x96,0x97,0x98,
0x98,0x99,0x9A,0x9B,0x9B,0x9C,0x9D,0x9E,0x9E,0x9F,0xA0,0xA1,0xA2,0xA2,0xA3,0xA4,
0xA5,0xA5,0xA6,0xA7,0xA7,0xA8,0xA9,0xAA,0xAA,0xAB,0xAC,0xAD,0xAD,0xAE,0xAF,0xB0,
0xB0,0xB1,0xB2,0xB2,0xB3,0xB4,0xB5,0xB5,0xB6,0xB7,0xB7,0xB8,0xB9,0xBA,0xBA,0xBB,
0xBC,0xBC,0xBD,0xBE,0xBE,0xBF,0xC0,0xC0,0xC1,0xC2,0xC2,0xC3,0xC4,0xC4,0xC5,0xC6,
0xC6,0xC7,0xC8,0xC8,0xC9,0xCA,0xCA,0xCB,0xCB,0xCC,0xCD,0xCD,0xCE,0xCF,0xCF,0xD0,
0xD0,0xD1,0xD2,0xD2,0xD3,0xD3,0xD4,0xD5,0xD5,0xD6,0xD6,0xD7,0xD7,0xD8,0xD9,0xD9,
0xDA,0xDA,0xDB,0xDB,0xDC,0xDC,0xDD,0xDD,0xDE,0xDE,0xDF,0xE0,0xE0,0xE1,0xE1,0xE2,
0xE2,0xE3,0xE3,0xE4,0xE4,0xE4,0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE8,0xE8,0xE9,0xE9,
0xEA,0xEA,0xEA,0xEB,0xEB,0xEC,0xEC,0xEC,0xED,0xED,0xEE,0xEE,0xEE,0xEF,0xEF,0xF0,
0xF0,0xF0,0xF1,0xF1,0xF1,0xF2,0xF2,0xF2,0xF3,0xF3,0xF3,0xF4,0xF4,0xF4,0xF5,0xF5,
0xF5,0xF6,0xF6,0xF6,0xF6,0xF7,0xF7,0xF7,0xF8,0xF8,0xF8,0xF8,0xF9,0xF9,0xF9,0xF9,
0xFA,0xFA,0xFA,0xFA,0xFA,0xFB,0xFB,0xFB,0xFB,0xFB,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,
0xFD,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFB,0xFB,0xFB,0xFB,0xFB,0xFA,0xFA,0xFA,0xFA,
0xFA,0xF9,0xF9,0xF9,0xF9,0xF8,0xF8,0xF8,0xF8,0xF7,0xF7,0xF7,0xF6,0xF6,0xF6,0xF6,
0xF5,0xF5,0xF5,0xF4,0xF4,0xF4,0xF3,0xF3,0xF3,0xF2,0xF2,0xF2,0xF1,0xF1,0xF1,0xF0,
0xF0,0xF0,0xEF,0xEF,0xEE,0xEE,0xEE,0xED,0xED,0xEC,0xEC,0xEC,0xEB,0xEB,0xEA,0xEA,
0xEA,0xE9,0xE9,0xE8,0xE8,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5,0xE4,0xE4,0xE4,0xE3,0xE3,
0xE2,0xE2,0xE1,0xE1,0xE0,0xE0,0xDF,0xDE,0xDE,0xDD,0xDD,0xDC,0xDC,0xDB,0xDB,0xDA,
0xDA,0xD9,0xD9,0xD8,0xD7,0xD7,0xD6,0xD6,0xD5,0xD5,0xD4,0xD3,0xD3,0xD2,0xD2,0xD1,
0xD0,0xD0,0xCF,0xCF,0xCE,0xCD,0xCD,0xCC,0xCB,0xCB,0xCA,0xCA,0xC9,0xC8,0xC8,0xC7,
0xC6,0xC6,0xC5,0xC4,0xC4,0xC3,0xC2,0xC2,0xC1,0xC0,0xC0,0xBF,0xBE,0xBE,0xBD,0xBC,
0xBC,0xBB,0xBA,0xBA,0xB9,0xB8,0xB7,0xB7,0xB6,0xB5,0xB5,0xB4,0xB3,0xB2,0xB2,0xB1,
0xB0,0xB0,0xAF,0xAE,0xAD,0xAD,0xAC,0xAB,0xAA,0xAA,0xA9,0xA8,0xA7,0xA7,0xA6,0xA5,
0xA5,0xA4,0xA3,0xA2,0xA2,0xA1,0xA0,0x9F,0x9E,0x9E,0x9D,0x9C,0x9B,0x9B,0x9A,0x99,
0x98,0x98,0x97,0x96,0x95,0x95,0x94,0x93,0x92,0x91,0x91,0x90,0x8F,0x8E,0x8E,0x8D,
0x8C,0x8B,0x8A,0x8A,0x89,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x81,0x80,
0x80,0x7F,0x7E,0x7D,0x7C,0x7C,0x7B,0x7A,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,
0x73,0x72,0x71,0x71,0x70,0x6F,0x6E,0x6E,0x6D,0x6C,0x6B,0x6A,0x6A,0x69,0x68,0x67,
0x67,0x66,0x65,0x64,0x64,0x63,0x62,0x61,0x61,0x60,0x5F,0x5E,0x5D,0x5D,0x5C,0x5B,
0x5A,0x5A,0x59,0x58,0x58,0x57,0x56,0x55,0x55,0x54,0x53,0x52,0x52,0x51,0x50,0x4F,
0x4F,0x4E,0x4D,0x4D,0x4C,0x4B,0x4A,0x4A,0x49,0x48,0x48,0x47,0x46,0x45,0x45,0x44,
0x43,0x43,0x42,0x41,0x41,0x40,0x3F,0x3F,0x3E,0x3D,0x3D,0x3C,0x3B,0x3B,0x3A,0x39,
0x39,0x38,0x37,0x37,0x36,0x35,0x35,0x34,0x34,0x33,0x32,0x32,0x31,0x30,0x30,0x2F,
0x2F,0x2E,0x2D,0x2D,0x2C,0x2C,0x2B,0x2A,0x2A,0x29,0x29,0x28,0x28,0x27,0x26,0x26,
0x25,0x25,0x24,0x24,0x23,0x23,0x22,0x22,0x21,0x21,0x20,0x1F,0x1F,0x1E,0x1E,0x1D,
0x1D,0x1C,0x1C,0x1B,0x1B,0x1B,0x1A,0x1A,0x19,0x19,0x18,0x18,0x17,0x17,0x16,0x16,
0x15,0x15,0x15,0x14,0x14,0x13,0x13,0x13,0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x0F,
0x0F,0x0F,0x0E,0x0E,0x0E,0x0D,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,
0x0A,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,
0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,
0x02,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,
0x05,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x09,
0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C,0x0D,0x0D,0x0D,0x0E,0x0E,0x0E,0x0F,
0x0F,0x0F,0x10,0x10,0x11,0x11,0x11,0x12,0x12,0x13,0x13,0x13,0x14,0x14,0x15,0x15,
0x15,0x16,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x1A,0x1A,0x1B,0x1B,0x1B,0x1C,0x1C,
0x1D,0x1D,0x1E,0x1E,0x1F,0x1F,0x20,0x21,0x21,0x22,0x22,0x23,0x23,0x24,0x24,0x25,
0x25,0x26,0x26,0x27,0x28,0x28,0x29,0x29,0x2A,0x2A,0x2B,0x2C,0x2C,0x2D,0x2D,0x2E,
0x2F,0x2F,0x30,0x30,0x31,0x32,0x32,0x33,0x34,0x34,0x35,0x35,0x36,0x37,0x37,0x38,
0x39,0x39,0x3A,0x3B,0x3B,0x3C,0x3D,0x3D,0x3E,0x3F,0x3F,0x40,0x41,0x41,0x42,0x43,
0x43,0x44,0x45,0x45,0x46,0x47,0x48,0x48,0x49,0x4A,0x4A,0x4B,0x4C,0x4D,0x4D,0x4E,
0x4F,0x4F,0x50,0x51,0x52,0x52,0x53,0x54,0x55,0x55,0x56,0x57,0x58,0x58,0x59,0x5A,
0x5A,0x5B,0x5C,0x5D,0x5D,0x5E,0x5F,0x60,0x61,0x61,0x62,0x63,0x64,0x64,0x65,0x66,
0x67,0x67,0x68,0x69,0x6A,0x6A,0x6B,0x6C,0x6D,0x6E,0x6E,0x6F,0x70,0x71,0x71,0x72,
0x73,0x74,0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x7A,0x7B,0x7C,0x7C,0x7D,0x7E,0x7F};
/****************特殊存储区*****************/
/*****************************/
uchar Disp_Buff[16];                 //显示缓冲区
/*****************************/
/*****************************/
/**********中   断   设   定***********************/
/**********************************************************************/
void Init_Int(void)
{
   EX0=1;   //开外部中断0
   IT0=1;   //边沿触发
   EX1=1;   //开外部中断1
   IT1=1;   //边沿触发
   EA=1;    //开全局中断
}

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

/***************字符显示程序*******************/
/*整体刷以便显示缓冲区,将要显示数字的位用空格填充,
  用其他符号填充也可。
  入口为字符串首地址                                                    */
void Chars_dis(uchar *s)
{
  uchar w;
  for(w=0;w<16;w++)
    Disp_Buff[w]=s[w];
}
/************************************************************************/
/******************软件延时子程序***************************************/
/***********************************************************************/
void Delay(uint Time)
{
   while(Time--);    //软件短时间延迟
}
/***********************************************************************/
void L_delay(uchar T)
{
  uchar o;
  for(o=0;o<T;o++)  //软件长时间延时
    Delay(40000);
}
/******************************************************************/
/*****************************************/
/*       点 阵 相 关 程 序               */
/*****************************************/
/*****************************************************************************/
/************检查读写状态*******************/
void Check(void)
{
  uchar sta_1;
  do
  {
    sta_1=COMPORT;
    sta_1=sta_1&0x03;
  }
  while(sta_1!=0x03);
}
/************向数据口发数据*****************/
void Out_data(uchar dat)
{
  Check();
  DATAPORT=dat;
}
/***********写一个命令**********************/
void Out_com(uchar com)
{
  Check();
  COMPORT=com;
}
/*************写一个参数及命令**************/
void Out_data_com(uchar dat1,uchar com1)
{
  Out_data(dat1);
  Out_com(com1);
}
/************写两个参数及命令***************/
void Out_data2_com(uchar dat1,uchar dat2,uchar com1)
{
  Out_data(dat1);
  Out_data(dat2);
  Out_com(com1);
}
/**************点阵初始化程序*******************/
void Init_Dian(void)
{
  Out_data2_com(0x00,0x00,0x40);
  Out_data2_com(0x10,0x00,0x41);
  Out_data2_com(0x00,0x04,0x42);
  Out_data2_com(0x10,0x00,0x43);
  Out_com(0xa7);
  Out_com(0x80);
  Out_com(0x9c);
}
/*************清RAM区*********************/
void Clear_Dian(uchar a)        //0:清除文本区;1:清除图形区
{
  uint l,i;
  if(a==0)
   {
     Out_data2_com(0x00,0x00,0x24);
     i=129;
   }
  if(a==1)
   {
     Out_data2_com(0x00,0x04,0x24);
     i=1025;
   }
  Out_com(0xb0);
  for(l=i;l>0;l--)
   {
     Out_data(0x00);
   }
  Out_com(0xb2);
}
/******************************************************/
/**************** 显示一行英文字符*******************/
void Dis_line(uchar Line_num)     //显示内容为Disp_Buff内所存内容

⌨️ 快捷键说明

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