📄 main.c
字号:
#include <REG935.H>
#include"..\SOURCE\general.h"
#include"..\SOURCE\lcd.h"
#include <STRING.H>
#include <stdio.h>
BYTE pow;
bit xf3011over=0,xf3011err=0;
void speak(BYTE *p);
void main(void)
{
cpuint();
CCU_init(1);
delay(50);
if(pow!=0xaa)
{
POWCTRL=1;
pow=0x55;
}
else
{
POWCTRL=0;
}
EEPROM_W(CONTRAST_ADD,CONTRAST); //EEPROM_W(0x01,0x08)
// DISTANCE=EEPROM_R(0x01);
// x9c104(50);
// EN=1;
LcdInit();
// LcdDraw(104, 8, 56, 60, 0, DodemLOGO);
welcome();
while(1)
{
SD = 0;
DCLK = 0;
autotest();
}
}
/*********************************************************************************************************
* 函数名称: xf3011text
*
* 功能描述: XF3011文本语音播送
*
* 入口参数: p文本语音的起始地址
*
* 出口参数:
*
* 全局变量: 无
*
* 调用模块: 无
*
* 作 者: 刘贤曙
* 创建时间: 2006年1月11日
********************************************************************************************************/
void xf3011text(BYTE *p)
{
unsigned int length = 0;
int i = 0;
length = strlen(p); //需要发送文本的长度
SBUF = 0xFE; //向串口发送帧头标志
while(TI==0); //等待发送中断标志位置位
TI=0; //发送中断标志位清零
SBUF=0x01; //发送文本合成命令字
while(TI==0);
TI=0;
SBUF=0x00; //发送待合成文本长度的高字节
while(TI==0);
TI=0;
SBUF=length; //发送待合成文本长度的低字节
while(TI==0);
TI=0;
for(i=0;i<length;i++)//依次发送待合成的文本数据
{
SBUF=*p;
while(TI==0);
TI=0;
p++;
}
}
/*********************************************************************************************************
* 函数名称: numtostr
*
* 功能描述: 数值到文本
*
* 入口参数: str1需要加入数值的文本内容;k需要加入原文本的数值
*
* 出口参数: DISTANCE 一次测试后的记数值 ;RANGE 完成测试时的范围
* 当DISTANCE=0x0fff,RANGE=7时说明测试距离过长,超出测试范围。
*
* 全局变量: 无
*
* 调用模块: 无
*
* 作 者: 刘贤曙
* 创建时间: 2007年1月12日
********************************************************************************************************/
void numtostr(char*str1,DWORD k)
{
DWORD k1,k2,klen;
char *str4;
klen=strlen(str1);
str4=str1+klen;
k2=10000;
while(1)
{
k1=k/k2;
if ((k1>0)||(k2==1)) break;
k2/=10;
}
while (1)
{
k1=k/k2+48;
str4[0]=k1;
k%=k2;
str4++;
k2/=10;
if (k2==0) break;
}
str4[0]=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -