青岛理工大学毕业设计(论文)
不忙则可以发数据或指令,然后把选中的芯片取消选中。
(2)芯片判忙子程序 函数原型如下:
调用方式:void wait_ready(void) 函数说明:等待LCD内部操作完成,判忙。
芯片判忙是本系统唯一读LCD液晶显示子程序。读取当前LCD状态,以判断LCD是否忙,用到的是读状态指令这条指令。
读出数据和0x80相“与”,直到结果为0为止也就是等待读状态指令里面读出的BUSY位为止,说明芯片不忙。
(3)LCD液晶屏初始化子程序 程序原型如下:
调用方式:void lcd_init(void)
函数说明:12232LCD液晶屏初始化,开机后仅调用一次。
仅开机时调用一次,主要负责设置LCD液晶屏的一些状态。主要包括:主、从芯片复位;关主、从芯片显示;设置主、从芯片动态显示;设置主、从芯片1/32占空比;设置主、从芯片时钟线模式;主、从芯片改写指令结束;设置主、从芯片起始行0行起始列0列;液晶初始化返回。
(4)清屏子程序 程序原型如下:
调用方式:void lcd_clr(void) 函数说明:清屏。
起始清屏子程序是在整个画面上画一个空白的图片。SED1520F0A类似与FlashROM芯片,但刚好与FlashROM相反。FlashROM置0是只要把0写进去即可,置1则需要擦除;可以在原来1的基础上把1变为0,而不可以把0变为1.而SED1520F0A可以把原来的0变为1,但不可把原来的1变为0,即与FlashROM相反。因此在每次要重新显示画面时必须调用清屏程序。
(6)画图子程序 程序原型如下:
调用方式:void draw_bmp(uchar col,uchar layer,uchar width,uchar *bmp)
29
青岛理工大学毕业设计(论文)
函数说明:画一个图,横坐标是col,layer表示上下层,width是图形的宽,高固定为16,bmp是图形指针,使用Zimo3Pro软件,采用纵向取模,字节倒序得到数据。
画图子程序是LCD初始化完成后,对LCD液晶显示器惟一的操作函数,是操作LCD液晶显示器的基础。
4.4 显示子程序
显示子程序将传感器采集的数据、三表数据选择一个显示到LCD液晶显示器。1.显示传感器采集数据
对应的显示格式为:“XXXXXXXX”。 显示的信息为:
厨房温度:适中/过高 阳台温度:适中/过低 过高或较低的范围根据不同季节而设置。传感器信号为1时显示时钟,为0时显示过高(过低)。
由于各路传感器是分别接在单片机IO口上的,在进行显示前必须将8路传感器信号排列先后顺序,循环轮流显示各路信号。一次显示两路信号,分为上下层显示。具体流程图如图4.2所示。
2.水、电、煤气三表数据显示 对应的显示格式为:“XXXX”。 显示的信息为:
使用水量 X X X X . X 在设计中规定水流过一定的数量后单片机计算一个脉冲,根据脉冲数和所规定的数量值最后算出水的实际数量。电表和煤气表也是同样的计数原理。具体流程图如图4.3所示。
30
青岛理工大学毕业设计(论文)
开始 将8位二进制分为4组2位二进制 根据收到的“0/1”判断适中或过高并显示“适中/过高” 根据格式显示传感器1数据 根据收到的“0/1”判断适中或过高并显示“适中/过高” 根据格式显示传感器2数据 延时50ms 处理第2组的二进制数据 处理第4组的二进制数据 返回 图4.2 传感器信号显示程序流程图
开始
根据收到“XXXX”和约定的公式计算数据 根据格式显示表的数据 返回 图4.3 水/电/煤气数据显示流程图
31
青岛理工大学毕业设计(论文)
4.5语音子程序
单片机控制ISD4004放音时必须严格按照以下步骤操作:首先要调用上电指令,然后至少延时25ms,接着设置放音起始地址(在ISD4004中,每段语音都对应一个起始地址)和调用放音指令。系统调试可以首先测量ISD4004的工作电压是否3V,如果是则进入下级调试。再看是否可以送入放音地址,是否可以放音,对此可以测量OUT引脚的电压,若为1.2V左右,则说明可以读入放音地址,如果没有听到放音则调试后级放音电路,看是否是后即电路有问题。
由于单片机没有SPI接口,语音录放时必须采用软件模拟实现同ISD4004数据传输。具体流程图如图4.4所示。
开始 设置语音服务模式 按下门铃 播放相应模式语音 返回 图4.4 语音子程序流程图
下面是部分关键程序: void fangyin()
//放音操作
{ powerup(); //上电操作 }
void luyin()
{ powerup(); //录音操作
32
delay_25ms(); //延时25ms setplay(); //设放音地址 play();
//放音
delay_20s(); //连续放音20s
青岛理工大学毕业设计(论文)
}
void powerup { uchar k=0x20; }
语音服务功能具有较高的实用价值,采用中断的方式进行模式设定。仿真时先按下一个和单片机外部中断口连接的按键,产生一个中断,使单片机从检测子程序中跳出,进入模式设定子程序,通过键盘进行模式设定,设置完毕,单片机返回检测子程序。例如,主人正在休息不希望他人打扰,则可设置为模式1,当他人按门铃是,语音芯片播放预置内容,如“对不起,主人正在休息,请稍后再来。”根据使用需要,可以将自己的声音甚至音乐录入语音芯片之中,通过不同的模式设定实现多种语音服务。
CS=0; tranfer(k); delay_25ms(); CS=1;
//传送k
//k为上电指令
delay_25ms();
setrecord(); //设置录音地址 record(); //录音 delay60s; //录音1秒
4.6传感器数据采集程序
开始 传感器检测 显示结果 返回
图4.5 传感器采集子程序流程图
33
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于蓝牙的家庭控制器设计(10)在线全文阅读。
相关推荐: