原创 51单片机汇编学习和系统除错步骤

2011-10-9 21:13 1497 15 16 分类: 消费电子

 

我刚参加工作时使用最普通的AT89C51单片机,汇编编程。调试过程中系统出现奇怪的问题,十有**都是以下地方处理有误,收集整理的系统除错流程,供新手参考学习
 
如果单片机系统出现问题,检修流程如下:
一、对硬件电路的检查
  1、检查电源(40脚)
  2、检查振荡(18、19脚)
  3、检查地(20脚)
  3、检查复位电路(9脚)
  4、检查中断允许(31脚)
  5、然后再检查是否有信号
  6、信号是否正确
 
二、软件编写规则
  1、只被调用一次的不要写成子程序
  2、不比自己定义太多的ORG地址入口,只需定义两个,一个0000H,还有一个主程序入口,
  3、中断程序需定义自己的程序入口地址,
    中断源有INT0,定时器T0,INT1,定时器T1,串行口中断,共5种中断,
入口地址分别为,INT0 = 0003H, 定时器T0 = 000BH,
INT1 = 0013H, 定时器T1 = 001BH
串口 = 0023H
从0003H开始,彼此相差8个存储单元,在此处中断程序是放不下的,需要跳转到其他地址,
  4、一般的跳转和调用都使用LJMP 和 LCALL 
  
三、串口控制寄存器的设置
  SCON sm0,sm1,sm2,ren,tb8,rb8,ti,ri
 
  一般不能对TB8、RB8 设置,这样会影响串口中断位 RI,即在发生中断的时候,数据还没有完全接收完,但是此时因为设置了RB8位,有可能把RI置位使得数据丢失。对于TI存在同样情况。
 
发送与接收数据都可以有两种方式
   1、查询 (查询RI,TI)2。中断设定入口地址 (ORG 0023H)
 
   2、对于外部中断,有两种触发方式,一是低电平触发,一是下降沿触发,看情况选则触发方式。在以上的两种触发方式下,IE0、IE1都能被CPU自动复位成0,但是在电平触发方式下,必须保证INT1、INT0上的电平在中断被CPU响应以后立即变为高电平,否则会再次触发中断。
触发方式控制位   IT1    IT0
 
SETB IT1
SETB IT0       下降沿触发
 
CLR IT1
CLR IT0  低电平触发
 
四、防止程序混乱的软处理方法
  1.利用软件狗来处理
  2.软件陷阱技术
  3.刷新寄存器
 
定时时间长度计算(方式1):
定时器初值 = FFFF - ( 定时时间长度/( 1/f*12 )) 

文章评论1条评论)

登录后参与讨论

用户1602177 2011-10-10 16:56

感谢博主的分享~~
相关推荐阅读
用户1270792 2012-05-22 21:37
转载--《三大跨国石油公司艰辛创业路》
此文系装载,原文作者是一个石油行业一线工作者,写了很多关于石油测井行业的奇闻异事,挺有意思,与大家分享http://my.hongxiu.com/059/583330/   在世界石油...
用户1270792 2012-01-17 13:44
为什么不能用MEMS陀螺仪寻北
首先说一下寻北仪的工作原理,它是利用陀螺仪测量地球的自转角速度的分量结合加速度的值,经过计算与真北方向的夹角,从而得到方位值。 目前能够测量到地球角速率的陀螺仪有动调、光纤、激光,这些陀螺都可以...
用户1270792 2012-01-03 21:11
捷联惯性导航之姿态更新详细流程
捷联惯性导航之姿态更新详细流程 1、初始对准(静态寻北或借助其他设备测量初始姿态),这里选择二 2、输入初始姿态参数 3、使用欧拉角计算出方向余弦矩阵 4、使用方向余弦矩阵推算四元...
用户1270792 2011-12-06 22:30
真北、磁北、网络北
  来源于网络,共学习参考   磁北(magnetic north,MN)地球是有磁场的,能用指南针测出方向,磁北是根据地磁点确定的北极,是指南针指示的北极 而真北(True No...
用户1270792 2011-10-10 08:08
如何制定通信协议、程序流程、编制程序
  如何制定通信协议 1、选择通信方式,确定硬件通信标准。 2、选择通信速率,如果需要。 3、确定通信数据帧格式,要求可扩展和向上、向下兼容格式统一。 4、数据帧中数据的作用与...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条