网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
输出脉冲宽度为20s
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/07/22

  ; ***************************************************************************

  ;文件名“5_4.ASM”

  ;功能:输出脉冲宽度为20s,

  ;占空比为50%的方波,

  ;驱动继电器开关。

  ; ***************************************************************************

  STATUSEQU03H;定义状态寄存器地址

  PORTCEQU07H;定义端口C的数据寄存器地址

  PORTDEQU08H;定义端口D的数据寄存器地址

  TRISCEQU87H;定义端口C的方向寄存器

  TRISDEQU88H;定义端口D的方向寄存器

  INTCONEQU0BH;定义INTCON控制寄存器

  CCP1IFEQU2H;定义CCP1IF

  CCP1CONEQU17H;定义CCP1CON控制寄存器

  CCPR1LEQU0EH;定义CCPR1L控制寄存器

  CCPR1HEQU0FH;定义CCPR1H控制寄存器

  PIR1EQU0CH;定义第一外设中断标志寄存器

  PIR2EQU0DH;定义第二外设中断标志寄存器

  TMR1LEQU0EH;定义TMR1L

  TMR1HEQU0FH;定义TMR1F

  ADRESHEQU1EH;定义ADRESH

  ADCON0EQU1FH;定义数模转换器ADC的寄存器

  PIE1EQU8CH;定义第一外设中断屏蔽寄存器

  PIE2EQU8DH;定义第二外设中断屏蔽寄存器

  ADCON1EQU9FH;定义数模转换器ADC的寄存器

  T1CONEQU10H;定义TIMER1控制寄存器

  RP1EQU06H;定义状态寄存器中的页选位RP1

  RP0EQU05H;定义状态寄存器中的页选位RP0

  ZEQU02H;定义状态寄存器中的0标志位Z

  DATA1EQU20H;定义外循环变量

  DATA2EQU21H;定义内循环变量

  TEMPEQU22H;定义临时变量存储端口D的输入

  W_TEMPEQU25H

  STATUS_TEMPEQU26H

  SCALEREQU27H

  AD_STATUSEQU28H

  COUNT1EQU1AH;定义存储外循环次数的变量

  COUNT2EQU0FFH;定义存储内循环次数的变量

  ; ***************************主程序开始*********************************

  ORG00H

  NOP;空指令

  GOTO MAIN

  ORG04H;中断向量的地址为04H

  GOTOINT;跳到中断子程序

  ; *****************************中断子程序开始****************************

  INT

  MOVWFW_TEMP;W寄存器的内容存储

  SWAPFSTATUS,0;将STATUS寄存器中高低字节交换

  MOVWFSTATUS_TEMP;交换后的结果存入STATUS_TEMP

  MOVLW80H;让端口D的第8位的输出翻转

  XORWFPORTD,1;

  BTFSCPIR1,CCP1IF;清除中断标志位

  SWAPFSTATUS_TEMP,0;中断前的STATUS的内容,重新装入

  MOVWFSTATUS;

  SWAPFW_TEMP,1;中断前的W的内容重新装入

  SWAPFW_TEMP,0;

  RETFIE

  ; *******************************中断子程序结束**************************

  ; ********************************主程序开始*****************************

  MAIN

  CALL INITIAL;调初始化子程序

  LOOP

  NOP

  NOP

  CALLDELAY;调10ms定时子程序

  CALLDELAY;调10ms定时子程序

  GOTOLOOP;

  ; ***************************************************************************

  ; ***************************初始化子程序开始*********************************

  INITIAL

  BSFSTATUS,RP0;转到体1

  BCFSTATUS,RP1;

  MOVLW0FFH;将端口C设为输入

  MOVWFTRISC;

  MOVLW00H;将端口D设为输出

  MOVWFTRISC;

  BCFSTATUS,RP0;转到体0

  BCFSTATUS,RP1;

  MOVLW4EH;将CCPR1设为4E20H

  MOVWFCCPR1H;

  MOVLW20H;

  MOVWFCCPR1L;

  MOVLW0AH;设置TMR1预分频为1:1

  MOVWFT1CON;设置时钟为外部时钟

  ;使能振荡器

  MOVLW0BH;

  MOVWFCCP1CON;

  CLRFTMR1H;清TMR1H

  CLRFTMR1L;清TMR1L

  CLRFINTCON;清INTCON

  BSFT1CON,0;开启TMR1

  BSFINTCON,1;开中断的总开关

  RETURN

  ; ***************************初始化子程序结束*********************************

  ; ***************************延时子程序****************************************

  DELAY

  MOVLWCOUNT1;设置外部循环的次数

  MOVWFDATA1;

  LOOP1

  MOVLWCOUNT2;设置内部循环的次数

  MOVWFDATA2;

  LOOP2

  DECFSZDATA1,1;内部循环变量自减1,为0则跳转

  GOTOLOOP2;

  DECFSZDATA2,1;外部循环变量自减1,为0则跳转

  GOTOLOOP1;

  RETURN;返回主程序

  ; ***************************延时子程序结束*************************************

  ; ***************************主程序结束*************************************

  END

  • 下一篇资讯: 步进电机的控制
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号