//包含头文件
#include <reg52.h>
#include <absacc.h>
#include <string.h>
#include <stdio.h>
#include <intrins.h>
#include <MATH.H>
/*********************************************
函数声明。。。
*********************************************/
void delay_ms(unsigned int ms);
void spi_write(unsigned char spi_dat);
unsigned char spi_read();
void U2G(unsigned char *ss, unsigned char *dc);
void GB2312_dot(unsigned char *ss, unsigned char *dd);
void delay(unsigned char b);
void display(void);
void allow(void);
void clock(void);
void haomazidong(void);
//int Gb2311ToIndex(unsigned );
/*********************************************
模拟SPI接口I/O定义
*********************************************/
sbit spi_cs=P1^2; //ZIKU-1
sbit spi_di=P1^1; //ZIKU-5
sbit spi_clk=P1^0; //ZIKU-6
sbit spi_do=P3^5; //ZIKU-2
#define set_spi_cs spi_cs=1
#define clr_spi_cs spi_cs=0
#define set_spi_clk spi_clk=1
#define clr_spi_clk spi_clk=0
#define set_spi_di spi_di=1
#define clr_spi_di spi_di=0
#define read_spi_do spi_do
/****************************/
sbit data0=P1^3;/*595端口连接*/
sbit clock0=P1^4;/*595SRCLK*/
sbit allow0=P1^5;/*595RCLK*/
sbit clock1=P1^6;/*377端口连接*/
sbit rclock=P1^7;/*595清零端*/
/*********************************************
GTM900B 点火线
*********************************************/
sbit PWON= P3^3;
/*********************************************
在GT21L16S2W芯片中数据的地址
*********************************************/
#define GBEX0816ZF_ADDR 243648 //8*16 ascii code起始地址
#define CUTS1516ZF_ADDR 0x00 //16*16 16点字符起始地址
#define JFLS1516HZ_ADDR 27072 //16*16 16点汉字起始地址
#define Unicode2GB2312_ADDR 425328 //U2G起始地址
#define uint unsigned int
#define uchar unsigned char
unsigned char haoma[11]={"15933220271"};
unsigned char xdata readbuf[200];
unsigned char xdata msm_unicode[100];
//unsigned char xdata dot_disp_buf[1600];
unsigned char xdata dot_disp_buf[50][16][2];
unsigned char xdata zi_dot[32];
unsigned char readflag=0;
unsigned char count=0;
unsigned char count_pdu=0;
unsigned char count_pdu_start=0;
unsigned char count_pdu_over=0;
unsigned char count_number=0;
unsigned char count_number_0=0;
unsigned char count_number_1=0;
unsigned char count_message=0;
unsigned char count_message_l=0;
unsigned char message_add=0;
unsigned char count_disp=0;
//unsigned char zi_gb[2];
//unsigned char zi_ui[2];
uint num=0;
//unsigned char k=0;
//unsigned char k1=0;
unsigned char code AT[4]={'A', 'T', '\r', '\n' };
unsigned char code ATE0[6]={'A', 'T', 'E','0','\r', '\n' };
unsigned char code ATCMGF0[11]={'A','T','+','C','M','G','F','=','0','\r', '\n'};
unsigned char code ATCNMI[19]={'A','T','+','C','N','M','I','=','2',',','1',',','0',',','0',',','0','\r', '\n'};
unsigned char ATCMGR1[11]={'A','T','+','C','M','G','R','=','1','\r', '\n'};
unsigned char ATCMGR2[12]={'A','T','+','C','M','G','R','=','1','1','\r', '\n'};
unsigned char xdata guding[400]={'0','8','9','1','6','8','3','1','0','8','3','0','1','1','0','5','F','0','1','1','0','0','0','D','9','1','6','8',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','0','0','0','8','0','0'};
unsigned char fasong[12]={'A','T','+','C','M','G','S','=','1','7','\r','\n'};
unsigned char jieshu[1]={0x1A};
/**********************************************/
unsigned char code tab0[12]={0xfc,0xf0,0xf8,0xf4,0x40,0xe0,0xe8,0xec,0xc0,0xa0,0x00,0x20};/*片选信号:小值对应左端,大值对应右端*/
unsigned char code tab2[8]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
//宏定义
void init_uart(void);
void delay_ms(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<1947;j++);
}
/************************************************
串口初始化
*************************************************/
void init_uart(void)
{
TMOD=0x20;
SCON=0x50;//10 位异步收发器 允许串行口接收数据 122//
PCON=0x00;
TH1=0xE8;
TL1=0xE8;
EA=1; //开中断
ES=1;//允许串行中断
TR1=1;//启动t1
}
/////////////////////////////////////////////////////////////////////
//函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
//输 入:ASCII字符
//返 回:16进制
//设 计 者:
//修 改 者:
//版 本:
/////////////////////////////////////////////////////////////////////
unsigned char CharToHex(unsigned char bChar){
if((bChar>=0x30)&&(bChar<=0x39))
bChar -= 0x30;
else if((bChar>=0x41)&&(bChar<=0x46))//大写字母
bChar -= 0x37;
else if((bChar>=0x61)&&(bChar<=0x66))//小写字母
bChar -= 0x57;
else bChar = 0xff;
return bChar;
}
/*****************************************
HEX 到 ASCII 的转换函数
入口参数: data: 转换数据的入口指针
buffer: 转换后数据入口指针
len : 需要转换的长度
返回参数:转换后数据长度
******************************************/
void hex_2_ascii(unsigned char *data1, unsigned char *buffer, int len)
{
int i, pos;
const unsigned char code ascTable[17] = {"0123456789ABCDEF"};
unsigned char *tmp_p = buffer;
pos = 0;
for(i = 0; i < len; i++)
{
tmp_p[pos++] = ascTable[data1[i] >> 4];
tmp_p[pos++] = ascTable[data1[i] & 0x0f];
}
//tmp_p[pos] = '\0';
//return pos;
}
/************************************************
向串口发送一个字符
*************************************************/
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0 );
TI= 0 ;
}
/************************************************
向串口发送一个字符串,strlen为该字符串长度
*************************************************/
void send_string_com( unsigned char *str, unsigned int strlen)
{
unsigned int k= 0 ;
do
{
send_char_com(*(str + k));
k++;
} while (k < strlen);
}
/************************************************
GTM900B初始化
*************************************************/
void init_gtm900b(void)
{
send_string_com( AT, 4);
while(count!=9)
{
delay_ms(100);
}
while(count!=0)
{
readbuf[--count]=0;
}/**/
/*send_string_com( ATE0, 6);
while(count!=6)
{
delay_ms(100);
}
while(count!=0)
{
readbuf[--count]=0;
} */
send_string_com( ATCMGF0, 11);
while(count!=16)
{
delay_ms(100);
}
while(count!=0)
{
readbuf[--count]=0;
}
send_string_com( ATCNMI, 19);
while(count!=24)
{
delay_ms(100);
}
while(count!=0)
{
readbuf[--count]=0;
}/**/
}
/*********************************************
unsigned int U2G(unsigned char *ss, unsigned char *dc)
函数说明:
由Unicode内码 SS[0] SS[1]计算的在
GT23L16S2W中的GB内码
参数:
ss Unicode内码指针
dc GB2312内码指针
返回:
GB内码
*********************************************/
void U2G(unsigned char *ss, unsigned char *dc)
{
unsigned long temp = 0;
unsigned int Ucode=0;
unsigned char result=0;
unsigned char add[3];
Ucode=ss[0];
Ucode=(Ucode<<8)+ss[1];
if(Ucode>=0xa0 && Ucode<=0xf7)Ucode=Ucode-160;
else if(Ucode>=0x2c7 && Ucode<=0x2c9)Ucode=Ucode-160-463;
else if(Ucode>=0x2010 && Ucode<=0x2312)Ucode=Ucode-160-463-7494;
else if(Ucode>=0x2460 && Ucode<=0x2642)Ucode=Ucode-160-463-7494-333;
else if(Ucode>=0x3000 && Ucode<=0x3017)Ucode=Ucode-160-463-7494-333-2493;
else if(Ucode>=0x3220 && Ucode<=0x3229)Ucode=Ucode-160-463-7494-333-2493-520;
else if(Ucode>=0x4e00 && Ucode<=0x9b54)Ucode=Ucode-160-463-7494-333-2493-520-7126;
else if(Ucode>=0x9c7c && Ucode<=0x9ce2)Ucode=Ucode-160-463-7494-333-2493-520-7126-295;
else if(Ucode>=0x9e1f && Ucode<=0x9fa0)Ucode=Ucode-160-463-7494-333-2493-520-7126-295-316;
else if(Ucode>=0xe76c && Ucode<=0xe774)Ucode=Ucode-160-463-7494-333-2493-520-7126-295-316-18379;
else if(Ucode>=0xff00 && Ucode<=0xff5f)Ucode=Ucode-160-463-7494-333-2493-520-7126-295-316-18379-6027;
else if(Ucode>=0xffe0 && Ucode<=0xffe5)Uco
gsm.zip_LED GSM_LED点阵屏_gsm led_gsm 点阵_点阵屏
版权申诉
182 浏览量
2022-09-19
19:40:42
上传
评论
收藏 5KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/d600a32f29294db1a3be82ec9708491a_weixin_42651887.jpg!1)
weixin_42651887
- 粉丝: 81
- 资源: 1万+
最新资源
- Django(正反向练习)
- 实践项目-图书馆管理系统(C#.NET)
- 10Eclipse项目源码.jpg
- 大屏可视化数据课程项目
- Maven 快速入门指南:安装和配置方法详解
- STM32物信息通过MQTT协议上传云平台
- STM32物信息通过MQTT协议上传云平台
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本122.0.6260.0)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本122.0.6259.0)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本122.0.6258.0)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)