您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机LCD1602A秒表程序
嵌入式应用软件园,版权所有,请勿转载/销售。1单片机1602ALCM/LCD秒表程序作者:嵌入式应用软件园嵌入式应用软件园,版权所有,请勿转载/销售。2目录第1章LCD/LCM简介...........................................................................31.1技术参数....................................................................................31.2信号说明....................................................................................31.3操作时序....................................................................................31.4状态字........................................................................................41.5RAM地址映射.............................................................................41.6指令说明....................................................................................41.6.1显示模式设置....................................................................41.6.2显示开/关及光标设置.......................................................51.6.3数据指针设置....................................................................51.6.4其它设置...........................................................................51.7外形............................................................................................6第2章程序功能...................................................................................71.1程序功能....................................................................................71.2操作方法....................................................................................71.3原理图........................................................................................8第3章程序代码...................................................................................9嵌入式应用软件园,版权所有,请勿转载/销售。3第1章LCD/LCM简介1.1技术参数1.2信号说明1.3操作时序嵌入式应用软件园,版权所有,请勿转载/销售。41.4状态字1.5RAM地址映射1.6指令说明1.6.1显示模式设置嵌入式应用软件园,版权所有,请勿转载/销售。51.6.2显示开/关及光标设置1.6.3数据指针设置1.6.4其它设置嵌入式应用软件园,版权所有,请勿转载/销售。61.7外形嵌入式应用软件园,版权所有,请勿转载/销售。7第2章程序功能1.1程序功能程序中包含LCM用到的所有函数:初始化、写指令、写数据、判忙碌、清屏幕。在单片机的P1端口上接有LCD模块,用来显示计时时间。P3.3、P3.4端口分别接有按键K1、K2,做秒表的计时控制按钮。K1:暂停和起动秒表。只能暂停和起动二次。K2:重新开始计时,计时值从0开始。1.2操作方法1.按一下K2键,准备计时。2.按一下K1键,计时开始。3.按一下K1键,暂停计时。4.按一下K1键,计时开始,在第2步的基础上累计时。5.按一下K1键,暂停计时。6.重复第1~5步,循环使用秒表。嵌入式应用软件园,版权所有,请勿转载/销售。81.3原理图嵌入式应用软件园,版权所有,请勿转载/销售。9第3章程序代码我们的辛勤付出,需要您的肯定,请访问:嵌入式应用软件园。;******************************************************************************;模块:LCM;文件名:LCM_Num.asm;作者:嵌入式应用软件园修订:;版本号原因;1.0初始版本;******************************************************************************;***********************************变量定义***********************************T_ZHEQU24H;实时温度值存放单元T_LEQU25H;低温度值存放单元T_HEQU26H;高温度值存放单元T_THEQU27H;高温报警值存放单元T_TLEQU28H;低温报警值存放单元T_HCEQU29H;存十位数BCD码T_LCEQU2AH;存个位数BCD码LCD_PEQU2FH;LCD地址变量FLAGEQU20H.0;DS18B20是否存在标记KEY_UDEQU20H.1;设定KEY的UP与DOWN标记;********************************变量定义结束**********************************;****************************LCM与89C51接口定义******************************K1EQUP2.1K2EQUP2.2K3EQUP2.3K4EQUP2.4SPKEQUP3.4RELAYEQUP2.0RSEQUP3.5RWEQUP3.6EEQUP3.7DQEQUP2.5;********************************接口定义结束**********************************;**********************************程序开始************************************嵌入式应用软件园,版权所有,请勿转载/销售。10;******************************************************************************;函数名:MAIN;输入:无;输出:无;调用:SET_LCD,WR_THL,RESET_18B20,MEU_OK,RE_THL,MEU_ERROR,TEMP_BJ,RE_TEMP;SET_DATA,TEMP_COMP,P_KEY;描述:主函数;******************************************************************************ORG0030HMAIN:ACALLSET_LCD;LCD初始化设置子程序ACALLWR_THL;将报警上下线写入暂存寄存器TOOP:ACALLRESET_18B20;18B20复位子程序JNBFLAG,TOOP1;18B20不存在ACALLMEU_OK;显示OK菜单ACALLRE_THL;把EEROM里温度报警值拷贝回暂存器ACALLTEMP_BJ;显示温度标记CJMPTOOP2TOOP1:ACALLMEU_ERROR;显示ERROR菜单ACALLTEMP_BJ;显示温度标记JMP$TOOP2:ACALLRE_TEMPACALLSET_DATAACALLTEMP_COMP;实际温度值与标记温度值比较子程序ACALLP_KEY;键扫描子程序SJMPTOOP2;******************************************************************************;函数名:RE_TEMP;输入:无;输出:无;调用:RESET_18B20,WRITE_18B20,READ_18B20;描述:读温度数据;******************************************************************************RE_TEMP:ACALLRESET_18B20;18B20复位子程序JNBFLAG,TOOP1;18B20不存在MOVA,#0CCH;跳过ROM匹配ACALLWRITE_18B20;调写入子程序MOVA,#44H;发出温度转换命令ACALLWRITE_18B20;调写入子程序ACALLRESET_18B20;调复位子程序MOVA,#0CCH;跳过ROM匹配嵌入式应用软件园,版权所有,请勿转载/销售。11ACALLWRITE_18B20;写入子程序MOVA,#0BEH;发出读温度命令ACALLWRITE_18B20;写入子程序ACALLREAD_18B20;调用读入子程序RET;******************************************************************************;函数名:SET_DATA;输入:无;输出:无;调用:CONV_TEMP,DISP_BCD,CONV;描述:温度数据处理;******************************************************************************SET_DATA:ACALLCONV_TEMP;处理温度BCD码子程序ACALLDISP_BCD;显示区BCD码温度值刷新子程序ACALLCONV;数据转换子程序RET;******************************************************************************;函数名:P_KEY;输入:无;输出:无;调用:LCD_PRINT,LOOK_ALARM,SPK_BZ,SET_ALARM,WR_THL,WRITE_E2;描述:按键键扫描;******************************************************************************P_KEY:;按键K1处理JBK1,PK1;K1键未按,转到PK1处ACALLSPK_BZ;K1键按下,一声鸣响JNBK1,$;等按键放开MOVDPTR,#M_ALAX1;存M_ALAX1表MOVA,#1ACALLLCD_PRINT;显示字符ACALLLOOK_ALARM;显示信息区JBK3,$;等待K3按下ACALLSPK_BZ;一声鸣响JMPPK2;转到标号PK2处PK1:;按键K2处理JBK2,PK3;K2键未按,转到PK3处ACALLSPK_BZ;K2键按下,一声
本文标题:单片机LCD1602A秒表程序
链接地址:https://www.777doc.com/doc-3370840 .html