欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > 153单片机_单片机1302

153单片机_单片机1302

日期:2023-09-22 23:12

本文目录一览:

  • 1、义隆单片机153s能不能做掉电数据保护
  • 2、请教:用EMC153 单片机如何实现 乘法运算.
  • 3、义隆单片机153TCC溢出,不进入中断
  • 4、应单片机PMC153,I/O编程输出110KHz频率误差极大,在102~1116KHz跳变

义隆单片机153s能不能做掉电数据保护

什么单片机都可以做,只是有些单片机不需要扩展

电压检测电路

掉电后能保存数据的EEPROM.只要查看一下数据数据。掉电数据保护的条件,

1.

检测电压,如电压低到一定值

产生中断,保存数据。

2.

能保存数据的EEPROM.

STC

系列单片机的几个型号,内部就有

低电压中断

EEPROM

存储器。

请教:用EMC153 单片机如何实现 乘法运算.

带浮点数的,你就得知道小数点二进制加减如何变化即可,乘法始终是以加法来实现的,除法以减法来实现

义隆单片机153TCC溢出,不进入中断

看了你这个程序,感觉你对单片机中断的处理过程还不是非常熟悉。最起码的,你进入中断以后,连一些关键的寄存器保护都没有,比如保护A,保护状态寄存器,PC等。中断执行完毕后再恢复这些寄存器的内容。下面我给你一个义隆官网给的TCC中断实例,你也可以自己去下载。

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

;举例:利用TCC定时来实现在P5输出脉冲波形,

;P5口每隔500ms翻转一次。

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

;MCU: EM78P153S

;Oscillator: Crystal 3.58MHz

;Clock: 2

;WDT: Disable

;编译软件: WicePulse version 2.6081015

INCLUDE "www.introzo.com"

COUNTER ==0X10;定时寄存器

A_buffer==0x1F;保存A寄存器

R4_buffer==0x2F;保存R4寄存器

R3_buffer==0x2E;保存R3寄存器

ORG0X00

JMPINITIAL

ORG0X08

TCC_INT:

MOV A_buffer,A;保存 A

MOV A,R3

MOV R3_buffer,A;保存 R3

MOV A,R4

MOV R4_buffer,A;保存 R4

JBS TCIF;是否为TCC中断

JMP INT_RET

MOV A,@81;是,计时器赋初值

MOV TCC,A

INC COUNTER

MOV A,COUNTER

SUB A,@19

JBC Z;定时到没?

JMP INT_RET

CLR COUNTER;到,清计数器

COM PORT5

INT_RET:

MOV A,ISR

AND A,@0XFE

MOV ISR,A;清除TCC溢出中断标志

MOV A,R4_buffer;返回 R4

MOV R4,A

MOV A,R3_buffer;返回 R3

MOV R3,A

SWAP A_buffer;返回 A

SWAPA A_buffer

RETI

ORG 0X50

INITIAL:

CLR COUNTER;清除COUNTER值

CLRA

CLR PORT5

IOW IOCE

IOW IOC5;PORT5设为输出口,初始状态为低电位

MOV A,@0B00000111

CONTW;TCC作为定时器,选用内部指令时钟周期作为TCC信号源

;TCC预分频比为1:256

MOV A,@81

MOV TCC,A;TCC 计数频率为(256-81)

;TCC overflow time = (1/3.58MHz)*(256-81)*256=25ms

CLR ISR;清除中断标志

MOV A,@0B00000001

IOW IMR;使能TCC中断功能

ENI;使能全局中断功能,以进入中断入口地址0X08

MAIN:

WDTC

NOP

JMP MAIN

系统需要的头文件,义隆官网都有的INCLUDE "www.introzo.com",就是这个头文件,你下载一个就行了。

应单片机PMC153,I/O编程输出110KHz频率误差极大,在102~1116KHz跳变

不知道你用的是做么做的频率,晶振频率是多少,如果是4MHZ或者8MHZ,而且你又是用c写的话,10khz的误差都不奇怪。你计算一下就知道了,用8M晶振的话,寄存器数值相差一,就会产生几k的误差了。

关灯