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

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

  1. 【HC89S003F4开发板】 10汇编指令

    HC89S003F4开发板汇编指令 一.数据传递类指令 MOV.MOVC.MOVX 1.MOV,用于片内数据存储器中的数据传递指令中. 2.MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数 ...

  2. 【HC89S003F4开发板】 3串口调试

    HC89S003F4开发板串口调试 使用资料自带的demo 主程序 /************************************系统初始化************************ ...

  3. 【HC89S003F4开发板】 1环境搭建

    HC89S003F4开发板环境搭建 一.概述 芯圣电子做活动,一个开发板只用一块钱,买过来玩玩.︿( ̄︶ ̄)︿ 全套资料可以在论坛或qq群里下载.总之先安装个环境先. 二.安装Keil C51 作为增 ...

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

    问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...

  5. 给XC2440开发板烧写程序的N种方式

    转:http://blog.chinaunix.net/uid-22030783-id-3420080.html 给XC2440开发板烧写程序非常灵活,总结起来有这么几种方式:   空片烧写(flas ...

  6. 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”

    版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...

  7. 【HC89S003F4开发板】 8c转义成汇编工程

    HC89S003F4开发板建立汇编工程 选择编译文件 @选用开发板闪灯例程,将例程删除多余的注释,后面生成的文件会更直观. #define ALLOCATE_EXTERN #include " ...

  8. 【HC89S003F4开发板】 7ASM&C混合编程

    HC89S003F4开发板ASM&C混合编程 一.前言 在配套资料里有实现ASM&C混合编程的说明文档,这里来实现这个功能. 二.实现ASM&C混合编程 1.打开 Keil 工 ...

  9. 【HC89S003F4开发板】 2调度器

    HC89S003F4开发板调度器调试 一.前言 逛论坛看到有人给HC89做了调度器,调度部分直接操作堆栈的. 下载链接 下载下来调试看看. 二.用户代码 @实现效果 编译后led灯闪烁 #includ ...

随机推荐

  1. [spring-boot] ControllerAdvice异常类

    package com.example.demo.exception; import org.springframework.web.bind.annotation.ControllerAdvice; ...

  2. 【深度学习】关于Adam

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_31866177/articl ...

  3. 我们一起分析一下这个刚刚修复的RDP漏洞CVE-2019-0708

    写在前面的话 在微软今年五月份的漏洞更新安全公告中,提到了一个跟远程桌面协议(RDP)有关的漏洞.我们之所以要在这里专门针对这个漏洞进行分析,是因为这个漏洞更新涉及到Windows XP以及其他多个W ...

  4. K8S集群Master高可用实践

    K8S集群Master高可用实践    https://blog.51cto.com/ylw6006/2164981 本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以 ...

  5. android studio: 对齐成员变量及链式方法

    "File"-"Settings"-"Editor"-"Java"-"Wrapping and Braces& ...

  6. Typora的日常使用方法

    原文地址:https://www.jianshu.com/p/a6a6a22e9393 ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易 ...

  7. flutter 不规则底部工具栏实现

    import 'package:flutter/material.dart'; import 'each_view.dart'; class BottomAppBarDemo extends Stat ...

  8. 报错:java.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonMappingException

    报错背景: 执行hdfs-mysql的job任务的时候报错. 报错现象: Exception has occurred during processing command Exception: org ...

  9. spring 使用@Bean装配Bean

    通过@Component装配Bean,但是@Component只能注解在类上,不能注解到方法上.对于Java而言,大部分的开发都需要引入第三方的包(jar文件),而且往往并没有这些包的源码,这时候将无 ...

  10. Gitlab提交时间错误问题修复

    gitlab-ctl status gitlab提交时间显示错误,明明是近期修改提交的代码在页面显示的时间是19年前 查看配置文件 /etc/gitlab/gitlab.rb 时区设置正确,再说就算是 ...