动态数码时钟显示实验参考程序.pdf

上传人:qwe****56 文档编号:74647041 上传时间:2023-02-27 格式:PDF 页数:7 大小:121.85KB
返回 下载 相关 举报
动态数码时钟显示实验参考程序.pdf_第1页
第1页 / 共7页
动态数码时钟显示实验参考程序.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《动态数码时钟显示实验参考程序.pdf》由会员分享,可在线阅读,更多相关《动态数码时钟显示实验参考程序.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、动态数码时钟显示实验参考程序 使用资源:1,TMRO 定时器。确定显示的位,及显示延时。2,TMR1 定时器。秒信号产生。3,PORTA 端口。六共阳极位数码管的位选信号,低电平有效 4,PORTC 端口。数码管的七段,RC7 不用。功能说明:功能说明:1.六位数码管动态扫描显示时间(格式为:HHMMSS,24 小时制)。2.时钟信号由单片机内部定时器硬件单元编程产生。目的:进一步熟悉定时器的编程,多位数码管动态扫描显示的编程。硬件接法:硬件接法:1.实验板上拨码开关 S4、S5 的所有位必须置 ON,其他都可以关闭。2.最好把 93C46 跟 24CXX 存储器从板上取下。进入该练习的流程如

2、下:1.创建源文件和编辑源文件;在此介绍一种不同于前面讲的创建源文件的方法,用 Windows 附件中的”记事本”这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的分号”;”必须用西文半角输入;二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.2.打开 MPLAB 集成开发环境:首先在 WINDOWS 环境下,选用开始程序Microchip MPLABMPLAB 命令,启动 MPLAB 并进入 MPLAB 的桌面.3.创建项目:选用菜单 FileNew 或 ProjectNew Project,在事先建立的一个专用子目录下创建一个新项

3、目,将用记事本创建的源文件加入到该项目中.4.建立项目中的目标文件:选择菜单 Project Build All(项目建立所有文件),MPLAB 将自动调用 MPASM 将项目文件管理下的源文件(.asm)汇编成十六进制的目标文件(.hex).5.ICD 参数设置:通过菜单命令 ProjectEdit Project 或者OptionDevelopment Mode,将开发模式设置为“MPLAB ICD Debugger”,点击 OK按钮,打开 ICD 的工作窗口,在调试阶段,可以按照说明书图 2-10 设置各项,但需注意 OSCILLATOR 应设置为 XT 方式,尤其需要说明的是,选中“E

4、nable Debug Mode”(使能调试模式)选项,在向目标单片机烧写机器码程序时,会将调试临控程序同时写入单片机的指定程序存储器区域,然后才允许用 ICD 方式调试。6.向目标单片机烧写目标程序:用户在点击功能按钮”Program”向目标单片机烧写机器码程序时,会等待一段时间,并且在条状的状态信息栏中,出现提示信息。有一点需要引起注意,就是 PIC16F87X 单片机的 FLASH 程序存储器的擦写 周期是有限的,大约为 1000 次,应尽量节省它的使用寿命。7.运行和调试用户程序和用户电路:在各项参数设置好后,将 ICD 的工作窗口最小化,利用前面讲的”运行及调试”中介绍的几种方法进行

5、调试.当用自动单步方式调试时,建议临时禁止廷时子程序发挥作用,具体的方法是,可在 CALL DELAY 指令前添加一个分号,并且重新汇编一次.为了学习目的,在调试过程中可以人为地加入一些软件漏洞(BUG)或硬件故障,来模仿单片机端口引脚的片内或片外故障.8.定型烧写目标单片机;经过多次重复上述步骤的反复修改和调试,使得程序和电路在联机状态完全正常,这时可以进行定型烧写,即将 ICD 窗口中的”Enable Debug Mode”(使能调试模式)选项消除,不再将调试临控程序写入单片机中.9.独立运行验收:上一步中的烧写过程完成后,即可将 ICD 模块和 ICD 仿真头(或演示板)之间的 6 芯电

6、缆断开,让单片机在演示板独立运行,观察实际效果.;程序清单如下:;*LIST P=16F877A INCLUDEP16F877A.INC ERRORLEVEL-302;*_CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC;*文件寄存器定义*CBLOCK 0X20 WAW YIW BAW QIW GEW SHW TEMP COUNTER S3 DAA STATUS_TMP W_TMP ENDC;*程序开始*ORG 0000H NOP ;复位地址 GOTO MAIN

7、ORG 0004H ;*中断处理程序*MOVWF W_TMP SWAPF STATUS,W CLRF STATUS MOVWF STATUS_TMP ;以上 4 条指令为中断现场保护 BCF INTCON,2 ;清除 TMRO 中断标志位 MOVF TEMP,W ;时间存放单元的地址 MOVWF FSR MOVF INDF,W ;取得某一位的时间值 CALL BMA ;查表得时间的显示代码 MOVWF PORTC ;送数码管显示 COMF DAA,W ;位码取反 MOVWF PORTA ;点亮相应的数码管 RLF DAA,F ;准备点亮下一位 INCF TEMP,F ;下一时间存放单元地址 B

8、TFSS DAA,6 ;是否显示完六位 GOTO RT MOVLW 01H ;是,重新开始新一轮显示 MOVWF DAA MOVLW 20H ;重新获取时间单元的地址 MOVWF TEMP RT SWAPF STATUS_TMP,W ;中断现场恢复 MOVWF STATUS SWAPF W_TMP,F SWAPF W_TMP,W MOVLW 0XE0 ;赋定时器初值 MOVWF TMR0 RETFIE ;*主程序开始*MAIN BANKSEL TRISA ;选择体 1 MOVLW 00H MOVWF TRISA ;PORTA 设置为输出 MOVWF TRISC ;PORTC 设置为输出 MOV

9、LW 06H MOVWF ADCON1 ;设置 A 口为普通数字口 BANKSEL INTCON MOVLW 00H MOVWF YIW MOVWF WAW MOVWF QIW MOVWF BAW MOVWF SHW MOVWF GEW ;以上 7 条指令清零时间 MOVWF DAA MOVLW 20H MOVWF TEMP ;时间存放单元地址 BSF STATUS,RP0 MOVLW 0X05 MOVWF OPTION_REG ;分频器给 TMR0 做定时用,且分频比 1:4 BCF STATUS,RP0 BSF INTCON,7 ;开启中断总允许位 GIE BSF INTCON,5 ;开启

10、 TMRO 中断允许位 BCF INTCON,2 ;清除 TMRO 中断标志位 MOVLW 0XE0 ;TMRO 赋初值 MOVWF TMR0 CLRF DAA INCF DAA,F ;显示位设置;*KS CALL DELAY ;调用 200ms 定时程序 CALL DELAY CALL DELAY CALL DELAY CALL DELAY ;调用 5 次,刚好 1s INCF GEW,F MOVF GEW,W ;判断秒的个位是否够 10 XORLW.10 BTFSS STATUS,Z GOTO KS ;是,秒的个位清 0,秒的十位加 1 INCF SHW,F CLRF GEW CLRF S

11、TATUS MOVF SHW,W XORLW.6 ;判断秒的十位是否为 6(1 分钟 60 秒)BTFSS STATUS,Z GOTO KS INCF BAW,F ;是,秒的十位清 0,分的个位加 1 CLRF SHW CLRF STATUS MOVF BAW,W XORLW.10 ;判断分的各位是否够 10 BTFSS STATUS,Z GOTO KS INCF QIW,F ;是,分的个位清 0,分的十位加 1 CLRF BAW CLRF STATUS MOVF QIW,W XORLW.6 ;判断分的十位是否够 6(1 小时 60 分)BTFSS STATUS,Z GOTO KS INCF

12、WAW,F ;是,分的十位清 0,时的个位加 1 CLRF QIW CLRF STATUS MOVF WAW,W XORLW.4 ;判断时的个位是否够 4(24 小时制)BTFSS STATUS,Z GOTO KS INCF YIW,F ;是,时的个位清 0,时的十位加 1 CLRF WAW CLRF STATUS MOVF YIW,W XORLW.2 ;判断时的十位是否够 2 BTFSS STATUS,Z GOTO KS CLRF GEW ;是,使时间回到 00-00-00 CLRF SHW CLRF BAW CLRF QIW CLRF WAW CLRF YIW GOTO KS ;循环显示;

13、*200ms 延时程序*DELAY NOP BANKSEL PIE1 BCF PIE1,0 ;禁止 TMR1 中断 BANKSEL T1CON MOVLW 24H ;TMR1 分频 1:4 MOVWF T1CON BCF PIR1,0 MOVLW 0X3C MOVWF TMR1H MOVLW 0XB0 MOVWF TMR1L ;TMR1 赋初值 0X3CB0 BSF T1CON,0 LOP BTFSS PIR1,0 ;查询是否定时时间到 GOTO LOP RETURN ;*BMA ADDWF PCL,F ;考察偏移量 RETLW 0XC0 ;0 编码 RETLW 0XF9 ;1 编码 RETLW 0XA4 ;2 编码 RETLW 0XB0 ;3 编码 RETLW 0X99 ;4 编码 RETLW 0X92 ;5 编码 RETLW 0X82 ;6 编码 RETLW 0XF8 ;7 编码 RETLW 0X80 ;8 编码 RETLW 0X98 ;9 编码 RETLW 0XFF ;*END ;源程序结束;*;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁