新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C51软复位分析

C51软复位分析

作者:时间:2012-07-04来源:网络收藏


单片机复位的更好方法

帖子中汇编语言解释如下:

clra//清除ACC=0

pushacc//压0到堆栈——8位

pushacc//再压0到堆栈——再8位

reti//返回到0地址,从而执行。

帖子作者的这种复位方法比较麻烦,更加简单的复位写法是(摘自《C缺陷与陷阱》):

(*(void(*)())0)();

本句的分析方法同上,但更加精炼,没有多余的汇编语句。



上述复位的方法可称为软件复位。

软件复位跟真正上电复位有很大差别:上电复位时大部分寄存器都有确定的复位值;软件
复位则只相当于从0地址开始执行而已,寄存器不会变为确定的复位值。

如果用户要编程实现上电复位这种情况,在程序中不要踢看门狗即可。大部分单片机都有
看门狗吧。

附录

笔者精于DSPC24xx,但不太懂;读者应能从函数指针的定义和引用中看出来,C语言的
设计哲学是使用形式和定义形式一致,虽然这一点饱受质疑。

如果你觉得鸡蛋好吃时,不必认识那只母鸡;但如果你觉得本文不错,请来笔者网站坐坐
吧www.1piao.com/wlg.asp。

2004年7月看到这个有意思的帖子,也干了一件蠢事——买了飞利浦的一款拍照手机,屏幕
有强烈闪烁感,飞利浦拒换,服务意识真是不敢恭维。

可来信免费转载本文,请保持整篇文章的完整性,包括本句。


----------------2---------------


汇编中的ORG0X0000H在中如何实现.
一般是在连接定位模块中来进行地址分配
1、选择"optionsfotarget"
2、选择“BL51Locate”
3、在code栏填入?PR?MAIN?SS(0x800)

其中MAIN是你要定位的函数名,SS是函数所在的文件名,要是有多个函数需要定位,则在中间加
逗号。

功能强大的时钟中断
  在单片机程序设计中,设置一个好的时钟中断,将能使一个CPU发挥两个CPU的功效,大大方
便和简化程序的编制,提高系统的效率与可***作性。我们可以把一些例行的及需要定时执行的程
序放在时钟中断中,还可以利用时钟中断协助主程序完成定时、延时等***作。
  下面以6MHz时钟的AT89系统为例,说明时钟中断的应用。
  定时器初值与中断周期 时钟中断无需过于频繁,一般取20mS(50Hz)即可。如需要百分之一
秒的时基信号,可取10mS(100Hz)。这里取20mS,用定时器T0工作于16位定时器方式(方式1)。


关键词: C51 软复位分析

评论


相关推荐

技术专区

关闭