/******************************************************************************************** **函数名称: void DisplayListChar(uchar X, uchar Y, uchar code *DData) **函数功能: 指定位置写入多个数据 **输入参数: unsigned char X 为横坐标, unsigned char Y为显示行, unsigned code *DData为数据 **输出参数: none **返 回 值: none **创 建 人: whble **创建日期: 2013-7-25 ********************************************************************************************* **修 改 人: **修改说明: ********************************************************************************************/ void DisplayListChar(uchar X, uchar Y, uchar code *DData) { uchar i; i = 0; Y &= 0x1; X &= 0xF; //限制X不能大于15,Y不能大于1 while (DData[i]>=0x20) //若到达字串尾则退出(0x20 == 32 既ascii中前32位为非显示字符) { if (X <= 0xF){ //X坐标应小于0xF DisplayOneChar(X, Y, DData[i]); //显示单个字符 i++; X++; } } }
//按指定位置显示一串字符 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) { unsigned char ListLength; ListLength = 0; Y &= 0x1; X &= 0xF; //限制X不能大于15,Y不能大于1 while (DData[ListLength]>0x19) {//若到达字串尾则退出 if(X <= 0xF) {//X坐标应小于0xF DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符 ListLength++; X++; } } }
/*=========================================================================== 主程序 =============================================================================*/ void main(void) { LED1=0;//灭录音指示灯 time_total=340;//录音地址从170开始,对应的单片机开始计时的时间就是340*0.1秒 count=0; LCMInit(); //1602初始化 init_t0();//定时器初始化 DisplayOneChar( 0,5,'I'); //开机时显示000 ISD4004-X DisplayOneChar( 0,6,'S'); DisplayOneChar( 0,7,'D'); DisplayOneChar( 0,8,'4'); DisplayOneChar( 0,9,'0'); DisplayOneChar( 0,10,'0'); DisplayOneChar( 0,11,'4'); DisplayOneChar( 0,12,'-'); DisplayOneChar( 0,13,'X'); while(1) { display();//显示处理 setkey_treat();//录音键处理 } }