以下程序择晶振为12MHz
时钟i周期为晶振的倒数,位1/f(晶振),机器周期为时钟周期的12分频,即为12*1/f(晶振),故12MHz的机器周期为1us
定时器1/0
ORG 0000H ;复位入口地址
AJMP START ;熟记长跳转和短跳转的区别:跳转时有范围的
LJMP MAIN
ORG 001BH ;T1中断服务程序入口地址,若要实现T0中断,则地址改为000BH
AJMP TIME1
ORG 0030H ;主程序
START:
MOV SP, #60H ;初始化程序
MOV TMOD, #10H ;设置T1工作于定时方式1(有16位计数)
MOV TH1, #3CH ;设置加1计数器的计数初值高字节 (和TL1一起计数了50ms)要设置定时器0的话则把1改为0,下同
MOV TL1, #0B0H ;设置加1计数器的计数初值低字节
SETB TR1 ;开定时器1
SETB ET1 ;开定时器1的中断
SETB EA ;开总中断
MIAN:
AJMP MAIN ;死循环直到计数器溢出
TIME1:
MOV TL1, #0B0H ;先赋低8位
MOV TH1, #3CH
;保护现场 PUSH PSW PUSH ACC
;恢复现场 POP ACC POP PSW 遵循后进先出
RETI ;中断返回
END
外部中断1/0
ORG 0000H ;复位入口地址
AJMP START
LJMP MAIN
ORG 0013H ;INT1中断服务程序入口地址,若要实现INT0中断,则地址改为0003H
AJMP INT1
ORG 0030H ;主程序
START:
SETB EX1 ;开启外部中断1 (若要设置外部中断0则把1该位0,下同)
SETB IT1 ;为电平触发方式
SETB EA ;开总中断
MIAN:
AJMP MAIN ;死循环直到有中断的触发
INT1:
;保护现场 PUSH PSW PUSH ACC
;恢复现场 POP ACC POP PSW 遵循后进先出
RETI
END
关键字:单片机 模板程序 asm
引用地址:
单片机模板程序(asm)
推荐阅读最新更新时间:2024-03-16 15:28
有关单片机在线烧录的一点认识
这要看你是烧录什么单片机,不同单片机编程的时序、引脚是不同的.理论上来讲任何单片机都可以进行像你说的那样用另外一个单片机主机对它进行编程. 你要看你需要编程(也就是烧录)的单片机是什么型号,再去找它的资料,资料上应该提供有对它进行编程的方法,包括接线和编程时的信号时序.只要你设计的电路满足它的编程接线结构,你设计的软件能控制电路输出相应编程时序,就完成了这个功能 打个比方: 对8031编程,那么8031处于变成环境下,1、2脚接电源和地;3~10脚是需要编程的内部单元的地址线;11~19脚是编程的代码输入线;20脚是一个控制线; 编程的时序:控制线20每次为高电平,那么3~10就选通内部地址,11~18就是编程代码;控制线20每次为
[单片机]
μC/OS-II在凌阳单片机SPCE061A上的移植
摘要:以凌阳单片机为例详细介绍μC/OS-II的移植方法;重点讲解在系统移植过程中一些难以理解的概念,并首次实现了μC/OS-II在凌阳SPCE061A单片机上的移植。
关键词:μC/OS-II 凌阳单片机 嵌入式系统
目前,实时操作系统已广泛应用于工业控制的各个领域。μC/OS-II作为一个实时内核,由于其源码公开、代码规范,广受开发人员的喜爱。SPCE061A是凌阳公司继μ’nSPTM系列产品SPCE500A等之后新推出的一款16位单片机,内部集成A/D、D/A等多种接口电路,能很方便地嵌入工业控制的各种场合。更重要的是,其内嵌2K字的SRAM和32K的Flash ROM,因此,在不需要扩展外部存储器的情况下就可以实现
[应用]
使用ARM Cortex-M MCU拓展单片机教学
ARM在90年代末进入中国,借助其在全球移动终端和嵌入式系统上的成功,正在深刻地影响着嵌入式系统教学。2004年ARM发布Corex-M3 MCU内核之后,国际上主要的MCU厂商纷纷推出基于M3、M4、M0和M0+的各种MCU。其中M0/M0+瞄准的是替代传统的以8051为代表的8位MCU市场,这些给单片机(MCU)和嵌入式教育带来新的机遇和挑战。
近日,由嵌入式系统联谊会主办的第13次主题研讨会如期举行。来自清华大学、同济大学、太原理工大学等知名高校的专家学者与ARM、意法半导体、飞思卡尔等产业界人士齐聚一堂,就“使用ARM Cortex-M MCU拓展传统单片机教学”这一话题发表了精彩演讲,并展开了热烈的讨论。
清华大
[单片机]
ZigBee-CC2530单片机 - 1路硬件PWM控制舵机角度(精度为1us)
程序源码 #include ioCC2530.h typedef unsigned char uchar; typedef unsigned int uint; //系统时钟初始化 void SystemClockInit() { CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32M CLKCONCMD &= ~0x07; //设置系统主时钟频率为32MHZ } //定时器1输出PWM void Timer1PwmInit() { uint value; CLKCONCMD |= 0x28;
[单片机]
单片机系统中的红外通信接口
摘要:本文结合复费率电能表中红外通信的设计实从事贸易,介绍了单片机系统中红外通信的软硬件设计方法,并给出了具体的电路原理和通信源程序。 在许多基于单片机的应用系统中,系统需要实现遥控功能,而红外通信则是被采用较多的一种方法。一般市场上的摇控器协议简单、保密性不强、抗干扰能力较弱。这里,我们介绍一种基于字节传输的红外遥控系统,可以适合于各种复杂的应用场合。 红外通信的基本原理 红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。本系统采用的为永时市制方法。数据比特的
[单片机]
单片机 4*4 矩阵键盘应用
在单片机按键使用过程中,当键盘中按键数量较多时 为了减少端口的占用通常将按键排列成矩阵 形式如下图所示,在矩阵式键盘中 每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连接,到底这样做是出意何种目的呢? 大家看下面电路图,单片机的整一个8位端口可以构成 4*4=16 个矩阵式按键 ,相比独立式按键接法多出了一倍,而且线数越多区别就越明显,假如再多加一条线就可以构成 20个按键的键盘,但是独立式按键接法只能多出1个按键。由此可见,在需要的按键数量比较多时,采用矩阵法来连接键盘是非常合理的,矩阵式结构的键盘显然比独立式键盘复杂一些,单片机对其进行识别也要复杂一些。确定矩阵式键盘上任何一个键被按下通常采用行扫描法。行扫描法又称为逐
[单片机]
单片机89C51在直流调速控制系统中的应用
一、前言 直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础 。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率 。 二、转速的测量
[单片机]
MSP430单片机实践篇---内部FALSH的操作
//****************************************************************************** // 测试MSP430单片机向FLASH中写入操作 // // 描述; 每次掉电或复位后都能看到数码管上显示的数值增1,说明对flash的写入与读取成功 // // 注意:修改flash中的内容必须首先执行擦除操作, // 因为对FLASH的操作只能将1写成0,而不能将0写成1只有擦除才能将0写回1 // 擦除操作至少将擦除1个段 // // 如果使用其它型号的单片机,只需将头文件改为相应的 msp430xx.h ; // 并在Option的Target中的device改
[单片机]