51新手问题:中断响应后片子里面哪些地方改写了

[复制链接]
hotpower 发表于 2007-1-22 23:02 | 显示全部楼层

三十而立~~~不晚~~~

 楼主| bg6nw 发表于 2007-1-22 23:40 | 显示全部楼层

平凡老师的教材真好

我是一个星期之前开始看的【平凡的单片机】,之前没有接触过单片机,看了他的教程依葫芦画瓢写的这个半拉的,漏洞百出的,貌似程序的东东,见笑。
因为本人文化程度不高,初中毕业,基础不好,只能看这些速成的教材,至于程序结构之类的,呵呵,看不懂的准
dengm 发表于 2007-1-23 00:17 | 显示全部楼层

加 IE=0, 确保不被中断

    TIMER_1  DATA 30H
    ;....
    INC TIMER_1
    ;.......

    acall treti;//空调用一次reti
    clr a
    push acc
    push acc
    MOV IE, A   ; 加 IE=0, 确保不被中断
treti:
    reti;//调用第二次reti//;回到开始,挂掉电话,重来。
hotpower 发表于 2007-1-23 00:33 | 显示全部楼层

又来一个~~~学好汇编,要先拜邓苗同志为师~~~

在此处加不加clr ea不是很重要,当然最好加上,否则其他中断可能要搞一些破坏活动.
但复位后应该clr ea或mov ie,#0,且设置好sp后再经过2次reti后再开始运行初始化程序为好.
 楼主| bg6nw 发表于 2007-1-23 11:11 | 显示全部楼层

我想也是

还有很多问题,软复位太难了
特别是堆栈部分,堆进去多少,就要弹出来多少,要不几十个软复位下来,堆栈就可能溢出到其他地方,到时候执行的是什么就不好说了。
我现在还不知道软复位之后怎么清堆栈呢,是不是像菜农前辈说的设置好SP后用两个ERTI弹空它
 楼主| bg6nw 发表于 2007-1-23 11:21 | 显示全部楼层

我发现学单片机就像金庸老先生的笑傲江湖

笑傲江湖里面有对华山派的描写,说道是剑宗和气宗,剑宗是先学技巧,入门很快,气宗是先学基础,等功力到家了,剑就自然成了。我现在是入了剑宗了,呵呵
xwj 发表于 2007-1-23 11:25 | 显示全部楼层

堆栈不成问题,你重设SP后原来的就都不管了:-)

当然,之前的数据丢失、程序中断(中止)、外围模块操作到一半等会不会造成问题就看你想没想到了

所以才说软复位没你想的那么简单
 楼主| bg6nw 发表于 2007-1-23 11:39 | 显示全部楼层

我想好了,做硬复位

我想好了,软复位太难,不是我现在现学可以弄成的,就像各位大侠说的,有一个地方照顾不到,就会出现不可欲知的问题。
下一步我想用空端口做一个硬复位,知难而退了,呵呵
computer00 发表于 2007-1-23 12:08 | 显示全部楼层

真是晕菜,搞个主循环不就得了?还要搞复位?

hotpower 发表于 2007-1-23 12:17 | 显示全部楼层

主程序里要有00(圈圈)~~~

dengm 发表于 2007-1-23 12:22 | 显示全部楼层

没那么复杂

          STACK_BUF EQU 60H
          F_55      DATA 7EH
          F_AA      DATA 7FH
     ;-------------------------------
       ORG 0000H
        AJMP START
        NOP
 

INT_RET:
        RETI  

START:
       CLR A
       MOV IE, A
       MOV PSW, A
       CPL A
       MOV P1, A
       MOV P3, A
       MOV SP, #(STACK_BUF-1)
       ACALL INT_RET
       ACALL INT_RET
       MOV A, F_55
       CPL A
       XOR A, F_AA
       JNZ CLR_RAM_1
         MOV A, #55H
         XOR A, F_AA
         JZ SKIP_CLR_RAM
CLR_RAM_1:
           CLR A
           MOV R0, A 
CLR_RAM:
             MOV @R0, A
           DJNZ R0, CLR_RAM
           MOV F_55, #55H
           MOV F_AA, #0AAH

SKIP_CLR_RAM:
   ;....
   ;...
           



        ;....
        ;....
 
 楼主| bg6nw 发表于 2007-1-23 15:18 | 显示全部楼层

谢谢邓大侠

看了半天,理解一点了
等会我把你的这个初始化程序粘贴到我的程序头上,试试,来个貂续狗尾。
hotpower 发表于 2007-1-23 16:10 | 显示全部楼层

XOR A, F_AA改为XRL A, F_AA

学邓大侠你可要小心点~~~他根基太深,小心把你套牢~~~
caai 发表于 2007-1-23 20:23 | 显示全部楼层

这么强!

不是吧~~    7.8天   不要这样无情的打击我的自信心啊  还是去做点端盘子的事算了~~
 楼主| bg6nw 发表于 2007-1-23 21:09 | 显示全部楼层

还强呢

我写的这些东东,对前面几位大侠来说,呵呵。
打个比方吧,就像你看三年级小学生写的作文一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部