导航:首页 > 操作系统 > 单片机的软件校正

单片机的软件校正

发布时间:2022-09-25 04:52:11

单片机的硬件复位和软件复位有什么区别

嘿嘿 还是俺来帮你解答吧
1 单片机的硬件复位和门狗复位都是对单片机的复位引脚 加一个复位电平产生的 此时单片机
将进行复位操作 pc=0000h p0=p1=p2=p3=0ffh sp=07h 其它特殊寄存器将被清零。
复位结束后 单片机重新开始运行。
2 软件复位;
一般为了防止程序跑飞 可以在程序存储器中没有指令的地方 全部写入 LJMP 0000H指令
一旦单片机运行跑飞 进入LJMP 0000H指令区 将还返回单片机的第一条指令 重新运行单片机的正常程序.
软件复位时,P0 P1 P2 P3 和特殊寄存器的内容都不会再改变.这点与硬件复位不同.

呵呵 满意就给加分吧

❷ 51单片机如何实现软件复位系统(C语言),谢谢

单片机实现软件复位(软复位)的方法及讨论

单片机实现软件复位(软复位)的方法及讨论

(天堂雨林博客blog.sina.com.cn/acer收集整理)

单片机软复位有什么好的方法?如从机收到复位命令(软件命令),程序怎么使机器复位?虽然要使软件始终处于可控状态,最好不要用"复位",因为复位是纯硬件过程,软件是不可控的.但是我们还是要讨论方法,一般流传的方法如下:

1、放狗;

2、((void(code *)(void))0x0000)();

3、用单片机一个引脚控制点一下RSTRST;

4、用单片机一个引脚控制重新加电;

5、用单片机自带的软件复位指令或内狗指令;

6、goto大法;

天堂雨林博客对以上方法的意见:

方法1:“放狗”是单片机软复位的最好办法,也基本上是唯一的一个办法。但并不是所有单片机都具备看门狗的功能,也不是一个万全之策。

办法2:这不是复位,只是把程序转到地址0去执行,不如用一个JMP更直接。目前可能极少数单片机或者用户已经自行添加Boot load时用户程序的程序开始地址并不为0x0000,所以需要查找这些特定单片机的启动地址。
在keil C51下面可以这样实现:
void soft_reset(void)
{
((void (code *) (void)) 0x0000) ();
}
在需要软件复位的地方使用语句:
soft_reset();
一般可实现软件复位。

办法3:用软件实现的硬复位。需要牺牲一个单片机引脚,且增加了单片机外部电路构造的复杂性,很不可取。

办法4:类似办法3,同样需要牺牲一个单片机引脚,且增加了单片机外部电路构造的复杂性,很不可取。但不能把它单单地当成是复位,应该叫上电复位。

办法5:Atmel 89C不带内狗,S的有内狗,只是一条指令就行。如STC的单片机有软件复位指令,即ISP_CONTR,地址在0E7H 单元(即str ISP_CONTR=0xE7),MOV ISP_CONTR,#00100000B(C语言为ISP_CONTR=0x20),内狗也是一条指令MOV WDT_CONTR,#00111100B!
STC 51系列单片机Datasheet中指出:传统的8051 单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起来较麻烦。现STC 新推出的增强型8051 根据客户要求增加了ISP_CONTR 特殊功能寄存器,实现了此功能。用户只需简单的控制ISP_CONTR 特殊功能寄存器的其中两位 SWBS / SWRST 就可以系统复位了。

办法6:程序从头(上电复位处)开始运行,且只有一个循环这种情况,当然可以用goto,如在main()的开头设一个start:,在程序的唯一循环中设定一个条件,然后goto命令。但需要注意,如果是在中断例程里,那么中断挂号寄存器仍置位,同级中断不能执行。所以必须先使中断挂号寄存器清零,EA = 0。只有RETI指令可以使中断挂号寄存器清零。51单片机有两级中断优先级,所以需要执行两次RETI指令。这用汇编是很简单的事,而C则比较难以实现。但是,goto命令尽量不要用,因为goto会到处乱窜,而且goto不能跑到函数外面去执行一个命令。

最后总结如下:最好使用办法5最为简洁方便,使用办法2实现也不失为一种好方法

❸ AVR单片机中晶振校准如何实现怎么测晶振是否校准

AVR本身功能只能校准片内RC吧,外部晶振本身就是一个基准,正常情况下偏差是很小的,可以通过两端的电容微调。要完全校准只能通过一个外部基准时钟来测出偏差值并记录下来,再在软件里根据偏差来调整
另外一般时钟晶振偏差会小很多,32.768K或它的倍频。

❹ 单片机怎么进行软件复位STC89C52

就从复位口引出一个按键和原来的复位开关并联就可以了。
用其它IO做需要软件配合,不通用。

❺ 单片机调试的方法和步骤是什么

首先,了解硬件接口以及功能,以便于配置IO端口;
第二,根据硬件设计以及功能需要,编写单片机程序;
第三,编译程序,把程序烧写到单片机中,或者链接debug调试器,在线对单片机进行仿真;
第四,在线仿真可以支持单步调试和断点调试,测试单片机的软件功能;
第五,如果出现问题,首先分析是软件逻辑的问题,还是硬件方面的问题,以便于对症下药;
最后,将软件写入单片机的flash中,将单片机加密,防止其他人窃取单片机内部代码。

❻ 请问pic单片机怎么软件强行复位。请教

(1)两边都是输入的话,那就是没人去置高低电平,呈现三态里的高阻态。(2)如果左侧单片机I/O是高或低电平,那右侧是就相应的电平;如果左侧单片机I/O是输入或空接,那高阻态电平不确定你不就是用光耦嘛,使用上拉或下拉的方法使光耦输入有一个确定电平就行了。即如你图所示,光耦二极管输入上方接上拉限流电阻到高电平,光耦二极管输入下方接地,你的单片机I/O接到光耦的二极管输入端(上拉电阻下方)即可。

❼ 温度传感器PT100应用电路

温度传感器PT100是一种稳定性和线性都比较好的铂丝热电阻传感器,可以工作在200℃ 至 650℃ 的范围。本电路选择其工作在 -19℃ 至 500℃ 范围。

整个电路分为两部分,一是传感器前置放大电路,一是单片机 A/D 转换和显示,控制,软件非线性校正等部分。

前置放大部分原理图如下: { pt100.date }

工作原理:

传感器的接入非常简单,从系统的 5V 供电端仅仅通过一支 3K92 的电阻就连接到 PT100 了。这种接法通常会引起严重的非线性问题,但是 由于有了单片机的软件校正作为后盾,因此就简化了传感器的接入方式。

按照 PT100 的参数,其在 0℃ 到 500℃ 的区间内,电阻值为 100 至 280.9Ω,我们按照其串联分压的揭发,使用公式:Vcc/(PT100+3K92)* PT100 = 输出电压(mV),可以计算出其在整百℃时的输出电压。

❽ 软件如何校正 单片机的电压表

实际测量最有效的办法,如果你的电路足够稳定

阅读全文

与单片机的软件校正相关的资料

热点内容
php模拟浏览器环境 浏览:349
编程谁都能学会吗 浏览:407
使用国家反诈app都要开启什么 浏览:712
下载民宿APP有什么用 浏览:50
续子语pdf 浏览:385
2021年加密货币最新行情 浏览:162
nfs怎么加密ipsec 浏览:245
国二考试调用编译器运算选择题 浏览:750
同济大学高等数学pdf 浏览:234
延时的宏命令怎么设置 浏览:596
数据库有哪些加密 浏览:209
改之理反编译注册教程 浏览:391
什么是编译程序和翻译程序 浏览:207
python课程心得总结 浏览:17
派派中怎么看对方在哪个服务器 浏览:796
xp配置java环境变量配置 浏览:9
python中1到100怎么算 浏览:767
小度我想看程序员 浏览:508
bs刷装备建立后文件夹没有 浏览:81
找漫画看应该下载什么app 浏览:182