资源描述:
《时钟温度lcd可调4》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、时钟温度LCD可调4;********************DS18B20定义**********************ADDIDEQU30H;时间值所在的地址NUMEQU31H;调节树中的最大值,超过后回到0LCDADDEQU32H;写入LCD的地址STATEJMPEQU33H;状态跳出的值。FIGBIT1EQU37HFIGBITEQU3DHTPTHBITEQU34HTEMPER_LEQU36H;从DS18B20中读回高位,低位暂存区TEMPER_HEQU35H;ONOFFKBIT2FH.0ONOFFEBIT2FH.1ONOFFTBIT2FH
2、.2ONOFFCHBIT2EH.0CLOCKBITBIT2EH.1CHACKBITBIT2EH.2EQUBITBIT2EH.3TEMPBITBIT2EH.4COADMAEQU3CH;红外解码后的值CLOCKHOUEQU3EH;闹钟的小时CLOCKMINEQU3FH;闹钟的分钟EQUHOUEQU55H;电器的小时EQUMINEQU56H;电器的分钟EQUTIMEEQU57H;电器总共时间TEMPHOUEQU3EH;温度下限TEMPMINEQU3FH;温度上限EQUOVERHEQU46H;电器的结束小时时间EQUOVERMEQU47H;电器的结束分钟时
3、间TEMPER_NUMEQU40H;温度值存储TEMPER_GEEQU41HTEMPER_SHIEQU42HTEMPER_SAVEEQU43HFLAG1BIT44HCLOCKFEQU45H;闹钟的数值判断TEMPERHEQU48H;温度十六进制的值DQBITP1.3;单总线口;**********************端口位定义********************SCLKbitP1.0;时钟控制总线IObitP1.1;数据传送总线RSTbitP1.2;复位总线RECEEQUP3.2CLOCKLBITP1.5EQULBITP1.6TEMPLBI
4、TP1.7SECONDEQU60H;****放时间的内存单元7个;*********************LCD的端口定义******************RSBITP3.3R_WBITP3.4EBITP3.5DB07EQUP0;*********************主函数*************************ORG0000HAJMPMAINORG0003HLJMPINT0ORG000BHLJMPINTT0;定时50ms,20次1秒ORG001BHLJMPINTT1ORG0030HMAIN:MOVSP,#70HMOVTPTHBI
5、T,#0FFHMOVFIGBIT,#00HMOVFIGBIT1,#00HMOVCOADMA,#0FFHMOVSTATEJMP,#00HMOVCLOCKF,#00HSETBCHACKBITCLREQUBITCLRTEMPBITLCALLSTARSETMOVTMOD,#11HMOVTH0,#0E5HMOVTL0,#0F8HSETBET0SETBTR0MOVTH1,#0E5HMOVTL1,#0F8HSETBET1SETBEX0;********外部中短开SETBEALOOP:JNBONOFFK,CHNEXT1;0就执行LCALLCLOCKGOCHNEXT
6、1:JNBONOFFE,CHNEXT2LCALLEQUGOCHNEXT2:JNBONOFFT,CHNEXT3LCALLTEMPGOCHNEXT3:MOVSTATEJMP,#00HMOVA,COADMACJNEA,#0AH,GOON2;按键到菜单MOVCOADMA,#0FFHLCALLMENUMAIN;跳到菜单设置GOON2:MOVA,P2CJNEA,#11101111B,GOON3;按键到下一个菜单LCALLDEL10MSMOVA,P2CJNEA,#11101111B,GOON3MOVSTATEJMP,#00HLCALLMENUMAINGOON3:
7、MOVA,P2CJNEA,#0FFH,TIMECHANGMOVA,COADMACJNEA,#0FFH,TIMECHANG2AJMPGOONTIMECHANG:LCALLTIMECHGOON:MOVA,TPTHBITCJNEA,#00H,NEXT1LCALLR_1302;跳到读取函数读取一次PUSHPSWMOVPSW,#08HLCALLGET_TEMPERPOPPSWLCALLTEMPER_COVMOVA,TEMPER_SHI;转化成十六进制的SWAPAORLA,TEMPER_GEMOVTEMPERH,AMOVTPTHBIT,#0FFHNEXT1:L
8、CALLDISPLAYAJMPLOOPTIMECHANG2:LCALLTIMECHLJMPLOOP;******外部0中断