导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[mcubase]一款多用电子时钟设计源程序



No.102450
作者:mcubase
邮件:mcubase@163.com
ID:66985
登陆:8次
文章数:8篇
最后登陆IP:116.24.171.51
最后登陆:2007/11/7 15:50:40
注册:2007/1/4 19:51:49
财富:195
发帖时间:2007/1/31 21:46:32
发贴者IP:121.35.143.235
标题:mcubase:一款多用电子时钟设计源程序
摘要:No.102450一款多用电子时钟设计源程序 ;本源程序系`一款多用电子钟芯片'源程序,可有3开3关定时,且有受双限触发的定时口
;该程序硬件系采用PIC16C55芯片LP振荡方式外接32768Hz晶振
;想要完整的源码及更多产品成熟源码程序,可上单片机基地网-中国单片机方案资讯中心,mcubase.com 。
                ORG      000H       
TOP             XORLW    0FFH       
                XORLW    0FFH       
                XORLW    0FFH       
                XORLW    0FFH       
                MOVLW    08H         ;F 12H--1DH依次为K1F--G3S
                MOVWF    4          
QL              CLRF     0          
                INCF     4,1        
                CLRWDT   
                MOVFW    4          
                ANDLW    1FH        
                SKPZ     
                GOTO     QL         
                CLRF     4          
                BTFSC    6,2        
                BSF      0BH,2       ;共阳
                GOTO     CSH        
HBCD            NOP      
DBCD            ANDLW    0FH        
                CLRWDT   
                NOP      
                ADDWF    2,1        
                RETLW    01H         ;0(共阳)
                RETLW    4FH         ;1
                RETLW    12H         ;2
                RETLW    06H         ;3
                RETLW    4CH         ;4
                RETLW    24H         ;5
                RETLW    20H         ;6
                RETLW    0FH         ;7
                RETLW    00H         ;8
                RETLW    04H         ;9
                RETLW    47H         ;A(校时) 显示J
                RETLW    71H         ;B(闹铃) 显示L
                RETLW    31H         ;C
                RETLW    63H         ;D(开)
                RETLW    6AH         ;E(关)
                RETLW    7EH         ;F(杠)
CSH             CLRW                 ;初始化
                TRIS     5           ;F5,3--5,0共阳显示扫描10时--分
                BTFSS    0BH,2      
                MOVLW    0FH        
                MOVWF    5           ;关扫描
                MOVLW    0FH        
                TRIS     6          
                CLRF     6           ;关闭定时输出
                BSF      6,4         ;输出关脉冲
                MOVLW    11H         ;置显示指针,F11H--时,F10H--分
                MOVWF    4          
                MOVLW    05H         ;F1计数64分频
                OPTION   
                MOVLW    01H        
                MOVWF    1          
                MOVLW    0E2H       
                MOVWF    0FH        
HBEGIN          BCF      0BH,0       ;清1/8秒标志
                CLRWDT   
WAIT            BTFSC    1,0         ;至HXSCL-17
                GOTO     WAIT        ;1/64秒检查
                MOVFW    1          
                SKPNZ    
                INCFSZ   0FH,1       ;秒增量(逢2秒1次)
                GOTO     DZJC       
                GOTO     HSZCL       ;整分处理
DZJC            ANDLW    0FH        
                SKPZ     
                GOTO     XSCL        ;转显示处理
                BSF      0BH,0       ;0BH.0-1/8秒标志(启动/停止检测时用)
                MOVLW    0C0H       
                ANDWF    6,1         ;关(继电器)驱动脉冲
                MOVLW    0FH        
                TRIS     7          
                MOVFW    7           ;检查按键状态(0.125S-1次)
                ANDLW    0FH         ;F7,3--7,0依次是功能,时加,分加,分减键
                SKPZ     
                GOTO     HAJCL       ;转按键处理
XSCL            MOVF     0EH,1       ;F0EH-调节指针
                MOVLW    80H        
                SKPNZ    
                MOVLW    00H         ;在设定时间时,秒停闪
                BTFSS    6,3        
                MOVLW    0FFH        ;消隐时,7段码口为高阻态
                TRIS     7          
                BTFSS    0BH,2       ;共阳/共阴选择
                GOTO     DXSCL       ;转共阴显示
                BTFSC    0BH,6      
                GOTO     HBZXS       ;转标志显示
HXSB            MOVFW    0AH         ;时间显示(95)
                MOVWF    7           ;输出10时码
                BSF      5,3         ;开10时线
                CLRW     
                BTFSC    0BH,0      
                MOVFW    6           ;每0.125秒`启动/停止'检测1次
                ANDLW    03H        
                MOVWF    8          
                BTFSC    8,0        
                BCF      8,1         ;消除启动/停止竞争
                MOVFW    0          
                CALL     HBCD        ;10
                BTFSC    1,6        
                IORLW    80H         ;准备`时'数据
                BCF      5,3         ;关10时
                MOVWF    7          
                BTFSS    0BH,7      
                CLRF     8          
                BSF      5,2         ;显示时
                BTFSS    6,6        
                BCF      8,0         ;如已关,不再停止
                BTFSC    6,6        
                BCF      8,1         ;如已开,不再启动
                BTFSC    8,0        
                BCF      6,6         ;如停止,复位开电平
                DECF     4,1        
                SWAPF    0,0        
                CALL     HBCD        ;10
                BTFSC    1,6        
                IORLW    80H         ;准备10分显示数据
                BCF      5,2         ;关扫描线
                MOVWF    7          
                BTFSC    8,1        
                BSF      6,6         ;如启动,置位开电平
                BSF      5,1         ;显示10分
                SWAPF    08H,1      
                MOVFW    6          
                ANDLW    0C0H       
                IORWF    08H,1      
                MOVFW    08H        
                MOVWF    6           ;启动/停止输出
                NOP      
                MOVFW    0          
                CALL     HBCD        ;10
                BTFSC    1,6        
                IORLW    80H         ;准备分显示数据
                BCF      5,1         ;关扫描线
                MOVWF    7          
                BSF      5,0         ;显示分
                NOP      
                NOP      
                NOP      
                NOP      
                NOP                 
                INCF     4,1         ;恢复时指针
                SWAPF    0,0         ;准备10时7段码
                CALL     HBCD        ;10
                BTFSC    1,6        
                IORLW    80H        
                MOVWF    0AH         ;10时位7段显示码暂存于F0AH中
                CLRF     5          
                GOTO     HBEGIN      ;时间显示完,转程序结束
HBZXS           RRF      0EH,0       ;调节指针(F0EH)除以2(71)
                ANDLW    0FH        
                MOVWF    1FH        
                SKPNZ    
                MOVLW    0AH         ; J 7段码地址
                CALL     HBCD        ;(10)标志指示1(10分位)
                MOVWF    7           ;此时可能显示[J 1 2 3]
                BSF      5,1         ;开(10分位)显示
                MOVFW    6          
                ANDLW    03H        
                MOVWF    8           ;启动/停止数据暂存入F8中
                NOP      
                MOVLW    0DH         ; U 地址
                BTFSC    0EH,0      
                MOVLW    0EH         ; n 地址
                MOVF     1FH,1      
                SKPNZ    
                MOVLW    0FH         ; - 地址
                CALL     HBCD        ;10
                BCF      5,1         ;关10分位
                MOVWF    7          
                BSF      5,0         ;开分位,可能显示[- U n]
                BTFSS    0BH,0      
                CLRF     8           ;每0.125秒取1次启动/停止数据
                ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:78毫秒 最大:7276毫秒 查询6次