单片机之中断系统

单片机学习也将近一个月了体会挺多的一直没时间写个总结,今天总算可以抽出点时间来写点东西了

了解单片机后感觉是在了解一些接口及使用时其会产生什么作用,其本质如何工作不得而知,听老师和学长说那得看模数电计算机组成原理(路还很长啊加把劲!) 还有就是在学习单片机的同时学会了汇编,用汇编代替c来写程序(汇编的效率比c还高可想而知汇编的效率有多多高,不过现在还是流行单片机c编程因为其逻辑结构明了而且比汇编看起来更易懂最重要的是容易上手,但一些高级人士是用汇编+c来写程序以达到完美),以上纯属瞎扯,看重点:

前面几个章节都比较简单讲的都是一些概念

下面就几个比较重要的章节来写点总结

《单片机之中断系统总结》

三个内部中断源 两个外部中断源

中断源       入口地址

外部中断0   0003H

T0溢出中断   000BH

外部中断1   0013H

T1溢出中断   001BH

串行口中断   0023H

 

1)设置IE  EA %% % ES ET1 EX1 ET1 ET0 EX0

2)设置IP  % % % PS PT1 PX1 PT0 PX0

3)若为外部中断,需设置触发方式.即设置TCON  TF TR1 TF0 TR0 IE1 IT1 IE0 IT0

外部中断有两种方式: 0为电平触发方式 1为跳沿触发方式(在s5p2时采样int0int1引脚 变化为高电平变为低电平则该外部中断被响应当然前提是该允许该中断请求即设置ie1ie0

自己写的一简单交通灯及出现紧急情况的处理代码:

中断用的是外部中断0方式是电平触发方式,由于我买的开发板找不到原理图了就不知道p3.2口接的是哪个开关(悲剧!)不过整体功能在开发板上都已实现了

挺高兴的,给出代码:

   sred    equ p1.0

   sgreen  equ p1.1

   syellow equ p1.2

   ered    equ p1.3

   egreen  equ p1.4

   eyellow equ p1.5

   org  0000h

   ljmp start

   org  0003h

   ljmp stop

   start:mov sp,#50h

     mov ie,#81h

 mov ip,#01h

 mov tcon,#02h

 mov p1,#09h

   loop: clr sgreen

         setb  sred

 setb  syellow

 clr  ered

 setb   eyellow

 setb   egreen

 mov a,#05h

 lcall  delay0

 mov r3,#05h

 setb sgreen

   loop1:cpl syellow

 mov a,#02h

 lcall delay0

 djnz r3,loop1

   loop2:clr sred

     setb syellow

 setb sgreen

 clr egreen

 setb eyellow

 setb ered

 mov a,#05h

 lcall delay0

 mov r3,#05h

 setb egreen

   loop3:cpl eyellow

     mov a,#02h

 lcall delay0

 djnz r3,loop3

 ljmp loop

   stop: mov p1,#0f6h

         reti 

  delay0:mov r4,a

  delay: mov r7,#0d0h

  delay1:mov r6,#0ffh

  delay2:mov r5,#00ah

  delay3:djnz r5,delay3

         djnz r6,delay2

 djnz r7,delay1

 djnz r4,delay

 ret

 End

总结了下发现如下问题:

   起初我设置的主程序入口的地址大于中断入口地址导致一直出现中断弄了半天也没调试出红绿灯的效果只出现中断效果,以后应该注意,

上午看了下书写了点总结和代码,下午调了一下程序实现了,花了点时间,不过找出了一些自己容易犯错的地方,也值了。

晚上写定时器/计数器的总结,待续…… 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值