【HC89S003F4开发板】9ASM写定时器1

HC89S003F4开发板ASM写定时器1

一、实现过程

1、外部寄存器设置

  • 扩展 XSFR 采用和 XRAM 同样的访问方式,使用 MOVX A, @DPTR 和 MOVX @DPTR ,A 来进行读写。
WDTCCR  EQU     0FEA0H
    CLR     A
    MOV     DPTR,#WDTCCR
    MOVX    @DPTR,A ; 关闭看门狗

2、设置定时器1

  • 定时器计算方法

    • 公式: 65536 - ((1/1000) / (1/(Fosc / Timer分频系数)))
    • Fosc=16000000,Timer分频系数=12
    • 得到反推值 0xFACB
EA      BIT     0A8H.7
TCON    DATA    088H
IE      DATA    0A8H
TL1     DATA    08BH
TH1     DATA    08DH
TMOD    DATA    089H
TCON1   EQU     0FE80H
CLR     A
MOV     DPTR,#TCON1
MOVX    @DPTR,A
MOV     TMOD,A
MOV     TH1,#0FAH
MOV     TL1,#0CBH
ORL     IE,#08H
ORL     TCON,#040H
SETB    EA

3、程序地址定位

程序前80H作为中断向量地址需要跳过,并且使用了T1中断需要添加转移

ORG 00H
AJMP MAIN
ORG 01BH
AJMP TIME1
ORG 80H

二、完整程序

  • @实现效果:led闪烁
$NOMOD51
P0_0    BIT     080H.0
EA      BIT     0A8H.7
TCON    DATA    088H
IE      DATA    0A8H
TL1     DATA    08BH
TH1     DATA    08DH
TMOD    DATA    089H
CLKSWR  DATA    08EH
WDTCCR  EQU     0FEA0H
CLKDIV  EQU     0FE91H
TCON1   EQU     0FE80H
P0M0    EQU     0FF00H
        ORG 00H
        AJMP MAIN
        ORG 01BH
        AJMP TIME1
        ORG 80H
MAIN:
    USING   0
    MOV     R0, #00H
    CLR     A
    MOV     DPTR,#WDTCCR
    MOVX    @DPTR,A

    MOV     CLKSWR,#051H
    MOV     DPTR,#CLKDIV
    INC     A
    MOVX    @DPTR,A
    MOV     DPTR,#P0M0
    MOVX    A,@DPTR
    ANL     A,#0F0H
    ORL     A,#08H
    MOVX    @DPTR,A
    CLR     A
    MOV     DPTR,#TCON1
    MOVX    @DPTR,A
    MOV     TMOD,A
    MOV     TH1,#0FAH
    MOV     TL1,#0CBH
    ORL     IE,#08H
    ORL     TCON,#040H
    SETB    EA
DELAY:
    SJMP    DELAY

TIME1:
    USING   0
    CJNE    R0, #0C8H, exit
    CPL     P0_0
    MOV     R0, #00H
exit:
    INC     R0
    RETI

    END
    

原文地址:https://www.cnblogs.com/yywBlogW/p/11386652.html

时间: 2024-10-21 03:20:05

【HC89S003F4开发板】9ASM写定时器1的相关文章

【HC89S003F4开发板】 10汇编指令

HC89S003F4开发板汇编指令 一.数据传递类指令 MOV.MOVC.MOVX 1.MOV,用于片内数据存储器中的数据传递指令中. 2.MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数据传送: 3.MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思 MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM : 4.MOVC是读取ROM中的数据,只能读不能写(一般来说主要是用来读取常量或常量表) MOVX是读写外部扩展的RAM和扩展的IO

荣品RP4412开发板烧写内核cannot load出错的原因

问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zImage, 你打成了zImag. 问: 现在出现这个提示了,是正确的吗? 答:你需要另外安装驱动. 下个360手机助手, 然后装上驱动后,在重头来吧. 问:哦,但是我用豌豆荚可以连接到开发板,什么原因? 答:这个是因为你的电脑不识别fastboot状态下的硬件. 就在目前的状态下, 安装USB驱动,

【HC89S003F4开发板】 6crc校验

HC89S003F4开发板crc校验 前言 第一次用有带crc的mcu 使用资料自带的demo @实现效果 通过PC向MCU发送5个8位数据,MCU返回CRC校验值 void main() { /************************************系统初始化****************************************/ WDTCCR = 0x00; //关闭看门狗 //本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程 CLKS

【HC89S003F4开发板】 4端口消抖

HC89S003F4开发板端口消抖 一.前言 看到资料里有中断消抖的例子,因为以前项目里有遇到高频干扰频繁退出休眠的情况,所以好奇用这个配置能不能解决. 二.对demo进行修改 @实现效果 P01设置为下降沿中断,每进一次中断后唤醒掉电模式,LED1状态改变一次 void main() { /************************************系统初始化****************************************/ WDTCCR = 0x00; //关闭看

【HC89S003F4开发板】 2调度器

HC89S003F4开发板调度器调试 一.前言 逛论坛看到有人给HC89做了调度器,调度部分直接操作堆栈的. 下载链接 下载下来调试看看. 二.用户代码 @实现效果 编译后led灯闪烁 #include "HC51SRTOS.h" #include "math.h" //#define LED_RED P0_0 // 将P20设置为绿灯 sbit LED_RED = P0^0; sbit LED_GREEN = P0^1; /******************定义

iMX6开发板烧写Android系统

平台:迅为-imx6开发板 系统:Android 4.4系统 镜像文件在光盘目录"04_源码_android4.4 文件系统"下.将其拷贝到前一小节解压的得到目录的"Profiles\MX6Q Linux Update\OS Firmware\files\android"文件夹下,如下图所示. 打开"Mfgtools-Rel-1.1.0_121218_MX6Q_UPDATER_V2.0\Mfgtools-Rel-1.1.0_121218_MX6Q_UPDA

SAMA5D3 Xplained 开发板烧写官方固件后启动失败【已解决】

一.失败原因:这块开发板从同事手里接过来时,外部32.768KHz晶体Y2被焊掉了.而原厂的故件程序是需要依赖这颗32.768KHz晶体才能正常启动. 这颗 32.768KHz晶体,主要用于低功耗模式,以及为RTC提供时钟. 二.解决方法1)将这颗外部32.768KHz晶体焊上后,使用原来的步骤就正常2)如果保持其不焊接的状态,需要修改bootstrap代码,具体修改方式如下:step1: 获取代码 git clone git://github.com/linux4sam/at91bootstr

iMX6Q/PLUS开发板烧写设备树内核的Ubuntu系统

基于迅为-iMX6D.iMX6Q 和 iMX6PLUS 三个硬件版本,设备树镜像的烧写方法以及镜像所在目录,镜像名称全部一致,所以作者将烧写章节合并到一起. 请注意,如果购买的是 iMX6D 版本,想要烧写设备树版本镜像,请使用 iMX6D 设备树版本的光盘(iMX6D 还有一个非设备树版本的光盘): 如果购买的是 iMX6Q 版本,想要烧写设备树版本镜像,请使用 iMX6Q 设备树版本的光盘(iMX6Q 还有一个非设备树版本的光盘): 如果购买的还是 PLUS 版本,请使用 PLUS 版本的光

驱动开发读书笔记.0.00 从拿到一块开发板开始

当我们手上有一块arm开发板,我们应该怎么下手呢?(假设你有少许计算机和电子的基础) 1.01安装桌面版linux: 你可以装虚拟机 或者 双系统windows + linux [假装有链接] 1.如果你会重装系统,我建议你装双系统或直接ubuntu,end 2.如果你不会重装系统,跳到3 3.学会它,跳到1 1.02:开发板上装系统[链接以后再补] 烧boot 烧内核 烧文件系统 讲真,如果你看到这三个名词之后蒙圈了,请左拐去预习/复习操作系统 1.03 系统安装完成,开发板怎么和PC进行通信