【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
【HC89S003F4开发板】9ASM写定时器1的更多相关文章
- 【HC89S003F4开发板】 10汇编指令
HC89S003F4开发板汇编指令 一.数据传递类指令 MOV.MOVC.MOVX 1.MOV,用于片内数据存储器中的数据传递指令中. 2.MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数 ...
- 【HC89S003F4开发板】 3串口调试
HC89S003F4开发板串口调试 使用资料自带的demo 主程序 /************************************系统初始化************************ ...
- 【HC89S003F4开发板】 1环境搭建
HC89S003F4开发板环境搭建 一.概述 芯圣电子做活动,一个开发板只用一块钱,买过来玩玩.︿( ̄︶ ̄)︿ 全套资料可以在论坛或qq群里下载.总之先安装个环境先. 二.安装Keil C51 作为增 ...
- 荣品RP4412开发板烧写内核cannot load出错的原因
问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...
- 给XC2440开发板烧写程序的N种方式
转:http://blog.chinaunix.net/uid-22030783-id-3420080.html 给XC2440开发板烧写程序非常灵活,总结起来有这么几种方式: 空片烧写(flas ...
- 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”
版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...
- 【HC89S003F4开发板】 8c转义成汇编工程
HC89S003F4开发板建立汇编工程 选择编译文件 @选用开发板闪灯例程,将例程删除多余的注释,后面生成的文件会更直观. #define ALLOCATE_EXTERN #include " ...
- 【HC89S003F4开发板】 7ASM&C混合编程
HC89S003F4开发板ASM&C混合编程 一.前言 在配套资料里有实现ASM&C混合编程的说明文档,这里来实现这个功能. 二.实现ASM&C混合编程 1.打开 Keil 工 ...
- 【HC89S003F4开发板】 2调度器
HC89S003F4开发板调度器调试 一.前言 逛论坛看到有人给HC89做了调度器,调度部分直接操作堆栈的. 下载链接 下载下来调试看看. 二.用户代码 @实现效果 编译后led灯闪烁 #includ ...
随机推荐
- 设置windows service方式启动GitBlit
1.在Gitblit目录下,找到installService.cmd文件. 2.用记事本或者notepad++打开 2.1修改 ARCH 32位系统:SET ARCH=x86 64位系统:SET AR ...
- #C++初学记录#日常学习函数
静态变量static,只进行一次初始化. #include<cstring> #include<iostream> using namespace std; int main( ...
- ubuntu取消自动登录
/etc/lightdm/lightdm.conf.d/50-nvidia.conf 注释 autologin-user=<YOUR USER>
- api-ms-win-crt-runtime-l1-1-0.dll 丢失
api-ms-win-crt-runtime就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和runt ...
- Dart对象和类
/* 面向对象编程(OOP)的三个基本特征是:封装.继承.多态 封装:封装是对象和类概念的主要特性.封装,把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象调用, 而一部分属性和方法则 ...
- java中 try catch的妙用
程序开发中,格式转换的时候,经常由于字符串可能是其他的不可预知的符号导致,字符串转数值失败, 这个时候可以妙用try catch来解决,如下图所示.其实,很多其他不可预知的异常情况,也可以用它来处理. ...
- netty5服务端检测心跳超时断连
客户端每5秒发送一次心跳给服务端,服务端记录最后一次心跳时间,通过定时任务每10秒检测一下,如果当前时间与最后一次收到的心跳时间之差超过某个阈值,断开与客户端的连接.基于之前的例子(netty5心跳与 ...
- 泡泡一分钟:Semi-Dense Visual-Inertial Odometry and Mapping for Quadrotors with SWAP Constraints
张宁 Semi-Dense Visual-Inertial Odometry and Mapping for Quadrotors with SWAP Constraints 具有SWAP约束的四旋翼 ...
- linux下配置face_recognition
1.如linux下已有python2.7,但需要更新一下python 2.7至python2.x sudo add-apt-repository ppa:fkrull/deadsnakes-pytho ...
- Python - Django - 组件
网站中通常会有一个导航条,如下图 这个导航条在很多页面都会存在 可以把导航条做成一个组件,让要显示导航条的网页包含 导航条组件 nav.html: <h1>假装这是一个导航条</h1 ...