您的位置 首页 硬件

单片机中止小试验

这两天一直搞不明白中断和定时,听说这东西可以提高CPU的效率,我想应该是很重要的编程方法,所以就在书上找了一个小程序,想从实验中发现

这两天一向搞不明白中止和守时,传闻这东西能够进步CPU的功率,我想应该是很重要的编程办法,所以就在书上找了一个小程序,想从试验中发现点什么。

要求是使用守时器T0的方法1,发生10ms的守时,并使P1.0引脚上输出周期为20ms的方波,选用中止方法,设体系的时钟频率为12MHz。

先说程序,如下

ORG0000H
LJMPMAIN ;跳转到主程序
ORG000BH ;T0的终端进口地址
LJMPDVT0 ;转向中止服务程序
ORG0100H
MAIN: MOVTMOD,#01H ;置T0作业于方法1
MOV TH0,#0D8H
MOV TL0,#0F0H ;装入计数初值
SETBET0;T0开中止
SETB EA ;CPU开中止
SETB TR0 ;发动T0
SJMP $ ;等候中止
DVT0: CPL P1.0 ;P1.0取反输出
MOV TH0,#0D8H
MOV TL0,#0F0H ;从头装入初值
RETI ;中止回来
END

上面的程序选用的是中止的方法发生中止的,计数器每次加1需求花必定的时刻,守时器守时便是靠这个时刻的堆集得到的,89C51有四个寄存器单元TH0,TL0,TH1,TL1是寄存计数值的,每个寄存器8位,还有一个寄存器TMOD能够设置作业形式,每种形式计数地规模不一样,所具有的功用也不一样,这个问题今后有空再说一下。

守时器的操控是经过设置相关的寄存器得到的,主要有两个TCON 和TMOD

TCON是操控寄存器,里边有很多中止标志位,经过对它的设置能够操控单片机的中止,单片机经过它能够知道体系是不是有中止发生

TMOD是作业形式寄存器,它能够操控单片机的作业方法,经过它能够操控单片机的触发方法以及C/T的切换

由于本文的思维是选用中止操控的方法,所以还需求对中止操控位IE进行设置

在此再介绍一下KEIL软件和PROTEUS软件的联调

先看一下keil软件


这个软件是免费的,用起来十分便利,能够支撑C言语编程和汇编编程,咱们挑选的是汇编编程,在编译前要建好工程

编译的时分,要留意,本软件终究要生成hex类型的文件以支撑仿真,所以要点击一下target左面的按钮,如下图


翻开之后,便是下面的界面,挑选output选项卡,在creat hex file前面打钩


假如程序没有过错,就在工程那个文件夹下面生成了hex文件,好了,程序作业完成了

下面进入单片机硬件电路的规划(实践中应该是先硬件后软件,本文忘考虑这点了)

这是在proteus环境下的电路图,这是一款十分不错的仿真软件(留意要设置一下晶振的振动频率为12MHz)


我的电路是要在P1.0口输出脉冲信号,下面是仿真


作用十分不错,小有成就感啊

经过此次规划,能够发现,单片机的中止是在单片机计数满之后发生的,那么计数器在这个进程便是一个精确的计时功用,发生中止,就要进入中止服务程序,这个程序是由咱们自己编写的,为了脉冲可继续输出,需求在这个程序中为计数器赋初值,而且取反P1.0,好了,歇息一下

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/260923.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部