您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制设备状态及时钟显示的程序设计 正文
设备状态及时钟显示的程序设计

设备状态及时钟显示的程序设计

点击数:7891 次   录入时间:12-12 10:40:07   整理:http://www.55dianzi.com   电脑-单片机-自动控制
  
  序号1(程序解释,以下同):程序分隔及说明。
  
  序号2:定义LCM的RS引脚由89C51的P3.3脚控制。
  
  序号3:定义LCM的R_W引脚由89C51的P3.4脚控制。
  
  序号4:定义LCM的E引脚由89C51的P3.5脚控制。
  
  序号5:定义LCM的数据口DBO_DB7由89C51的Pl口控制。
  
  序号6:程序分隔及说明。
  
  序号7:定义20H单元为50ms缓存单元,命名为DI_DA,每50ms内容加1。
  
  序号8:定义21H单元为秒缓存单元,命名为SEC,每秒内容加1。
  
  序号9:定义22H单元为分缓存单元,命名为MIN.每分钟内容加1。
  
  序号10:定义23H单元为时缓存单元,命名为HOUR,每小时内容加1。
  
  序号11:程序分隔及说明。
  
  序号12:程序从地址OOOOH开始。
  
  序号13:跳转到MAIN主程序处。
  
  序号14:定时器TO中断入口地址。
  
  序号15:跳转到标号CLOCK处。
  
  序号16:主程序MAIN从地址0030H开始。
  
  序号17:定时器TO方式1。
  
  序号18~19:置定时初值。
  
  序号20:TO开中断。
  
  序号21:启动TO。
  
  序号22:50ms单元清0。
  
  序号23:开总中断。
  
  序号24:堆栈指针指向60H。
  
  序号25:调用启动LCM子程序进行初始化。
  
  序号26:调用清除LCM子程序。
  
  序号27:程序分隔及说明。
  
  序号28:指向液晶屏幕第一行第0列。
  
  序号29:调用写指令到LCM子程序。
  
  序号30:将LINEO字符串的首地址送DPTR。
  
  序号31:调用显示子程序。
  
  序号32:程序分隔及说明。
  
  序号33:指向显示屏的第二行第0列。
  
  序号34:调用写指令到LCM子程序。
  
  序号35:将标号LINE1勺字符串首址送DPTR。
  
  序号36:调用显示子程序。
  
  序号37:程序分隔及说明。
  
  序号38:指向第二行第12列。
  
  序号39:调用写指令到LCM子程序。
  
  序号40:将标号LINE1的字符串首址送DPTR。
  
  序号41:调用显示子程序。
  
  序号43:程序分隔及说明。
  
  序号43:向P3口送立即数7FH,即P3.7为低电平。
  
  序号44:读取P3口状态至累加器A。
  
  序号45:若A中内容不为7FH,转NEXT:
  
  否则顺序执行。
  
  序号46:置P3.7为高电平。
  
  序号47:调用走时转换子程序。
  
  序号48:调用显示时间子程序。
  
  序号49:跳转到BEGIN处循环执行。
  
  序号50:调用扫描按键子程序。
  
  序号51:跳转到BEGIN处循环执行。
  
  序号52:程序分隔及说明。
  
  序号53:按键判断子程序开始。调用10mS延时子程序。
  
  序号54:若P3.0为0(即按下3号键),顺序执行;否则跳转到HOUR_KEY处。
  
  序号55:清除进位CY。
  
  序号56:将分计数单元MlN送累加器Ao序号57:累加器A加l。
  
  序号58:2-10进制调整。
  
  序号59:若A不为60H,跳转到×1处;若A为60H,则顺序执行。
  
  序号60:清除累加器A。

  序号61:调整后的累加器A内容送回分计数单元MIN。
  
  序号62:调用显示时间子程序。
  
  序号63:调用200ms延时子程序。
  
  序号64:向P3口送立即数7FH,即P3.7为低电平。
  
  序号65:若P3.0为0(即仍按下3号键1.跳转到MIN_ADJ处继续进行“分”调整;否则顺序执行。
  
  序号66:若P3.1为O【即按下6号键)顺序执行;否则跳转到X2处。
  
  序号67:清除进位CY。
  
  序号68:将时计数单元HOUR送累加器A。
  
  序号69:累加器A加1。
  
  序号70:2-10进制调整。
  
  序号71:若A不为24H,跳转到X3处;若A为24H,则顺序执行。
  
  序号72:清除累加器A。
  
  序号73:调整后的累加器A内容送回时计数单元HOUR。
  
  序号74:调用显示时间子程序。
  
  序号75:调用200ms延时子程序。
  
  序号76:向P3口送立即数7FH,即P3.7为低电平。
  
  序号77:若P3.1为O(即仍按下6号键),跳转到HOUR_ADJ处继续进行“时”调整;否则顺序执行。
  
  序号78:置P3.7为高电平。
  
  序号79:按键判断子程序返回。
  
  序号80:程序分隔及说明。
  
  序号81:走时转换子程序开始。50ms计数单元内容送累加器A。
  
  序号82:若A为14H(十进制为20)顺序执行;否则跳转到DONE处。
  
  序号83:清除50ms计数单元。
  
  序号84:将秒计数单元内容送累加器Ao序号85:累加器加1。
  
  序号86:2-10进制调整。
  
  序号87:调整后的累加器A内容送回秒计数单元SEC。
  
  序号88:若A为60H,顺序执行;否则跳转到DONE处。
  
  序号89:清除秒计数单元SEC。
  
  序号90:将分计数单元内容送累加器Ao序号91:累加器加1。
  
  序号92:2-10进制调整。
  
  序号93:调整后的累加器A内容送回分计数单元MIN。
  
  序号94:若A为60H.顺序执行;否则跳转到DONE处。
  
  序号95:清除分计数单元MIN。
  
  序号96:将时计数单元内容送累加器A。
  
  序号97:累加器加1。
  
  序号98:2-10进制调整。
  
  序号99:调整后的累加器A内容送回时计数单元HOUR。
  
  序号100:若A为24H,顺序执行;否则跳转到DONE处。
  
  序号101:清除时计数单元HOUR。
  
  序号102:走时转换子程序返回。
  
  序号103:程序分隔及说明。
  
  序号104:指向显示屏第二行第4列。
  
  序号105:调用写指令到LCM子程序。
  
  序号106:将时单元内容送累加器中。
  
  序号107:交换累加器高低半字节。
  
  序号108:屏蔽高半字节,序号109:低半字节加30得到ASCII码。
  
  序号110:调用写数据到LCM子程序。
  
  序号111:再将时单元内容送累加器中。
  
  序号112:屏蔽高半字节。
  
  序号113:剩下的低半字节加30得到ASCII码。
  
  序号114:调用写数据到LCM子程序。
  
  序号115:将立即数3AH(冒号的ASCII码)送累加器。
  
  序号116:调用写数据到LCM子程序,使屏幕出现冒号。
  
  序号117:将分单元内容送累加器中。
  
  序号118:交换累加器高低半字节。
  
  序号119:屏蔽高半字节。
  
  序号120:低半字节加30得到ASCII码。
  
  序号121:调用写数据到LCM子程序。
  
  序号122:再将分单元内容送累加器中。
  
  序号123:屏蔽高半字节。
  
  序号124:剩下的低半字节加30得到ASCII码。
  
  序号125:调用写数据到LCM子程序。
  
  序号126:将立即数3AH(冒号的ASCII码)送累加器。
  
  序号127:调用写数据到LCM子程序,使屏幕出现冒号。
  
  序号128:将秒单元内容送累加器中。
  
  序号129:交换累加器高低半字节。
  
  序号130:屏蔽高半字节。
  
  序号131:低半字节加30得到ASCII码。
  
  序号132:调用写数据到LCM子程序。
  
  序号133:再将秒单元内容送累加器中。
  
  序号134:屏蔽高半字节。
  
  序号135:剩下的低半字节加30得到ASCII码。
  
  序号136:调用写数据到LCM子程序。
  
  序号137:子程序结束。
  
  序号138:程序分隔及说明。
  
  序号139:50ms定时中断服务子程序开始。
  
  序号139~140:重装定时初值。
  
  序号141:50ms计时单元加1。
  
  序号142:定时中断服务子程序返回。
  
  序号143:程序分隔及说明。
  
  序号144~152:显示字符串到LCM子程序。
  
  序号153:程序分隔及说明。
  
  序号154~160:启动LCM子程序。
  
  序号161:程序分隔及说明。
  
  序号162~172:查询忙碌标志信号子程序。
  
  序号173:程序分隔及说明。
  
  序号174~180:写指令到LCM子程序。
  
  序号181:程序分隔及说明。
  
  序号182~189:写数据到LCM子程序。
  
  序号190:程序分隔及说明。
  
  序号191~193:清除LCM子程序。
  
  序号194:程序分隔及说明。
  
  序号195~199:延时2.7ms子程序。
  
  序号200:程序分隔及说明。
  
  序号201~205:延时lOms子程序。
  
  序号206:程序分隔及说明。
  
  序号207~210:延时200ms子程序。
  
  序号211:程序分隔及说明。
  
  序号212~213:需显示的字符串。
  
  序号214:程序结束。



上一页  [1] [2] 


本文关键字:程序设计  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制