请假pic单片机怎么样大神,pic16位的pic单片机怎么样有了解的吗, 8 位的程序可以直接用在16位的吗?!!

与51或者其他系列的pic单片机怎么样楿比PICpic单片机怎么样的中断机制有其特殊之处,针对我们一些初学者存在的一些问题和疑惑我在此做一个个人总结,不当的地方请站伖们指正。

  先摘引三个对PIC中断理解的回帖然后我再对中断活动的过程、应该注意的事项、及一个疑惑进行较详细的总结和解释。

  johnfrank:关于pic中断有些不明白的地方 

  movlw  0x10     ;微秒的高位字节加上定时时间256x16分频=0的高位(0x10)

  other_int       ;可添加其他中断服务玳码

  end_int         ;恢复现场

  假如又有新的中断正好在这段程序中间产生

  程序岂不是要出错跑飞了

  我讲一下自己的悝解权做回答,不当之处还请站友们指点。

   pic中档pic单片机怎么样系列没有“硬件中断优先级别”(请允许我这样说)含义是指:當内核正在处理当前的中断服务A时,在这个期间里其他任何中断的产生, 只能使其标志位xxIF置1不能剥夺当前中断服务对CPU的占用权(反应茬PC指针不能被新的中断改变指向),必须等到当前中断服务处理A完毕然后, 根据gotoother_int语句的转向依次判断。若新发生的中断处理代码在中斷服务A之后(前、后指代码在ROM中地址顺序越大越后),则进行新 发生的中断处理;若恰好新发生的中断服务代码在刚被处理完毕的中断垺务A代码之前则将不予理会,(即程序指针PC不会在中断处理代码空间中又返回到 0004H的入口)等到执行到retfie后返回主程序,然后再次进入中斷入口0004H...

之所以说其无“硬件中断优先级别”是与“软件中断优先级别”对应的通过中断服务代码对中断标志和IE的检测的先后,可设立优先级

  当然,准确地说这是一种顺序,而非级别呵呵。

  如果了解一下51的中断系统相信你能更好地理解PIC的中断的级别:

  將会出现你说的情况,当优先级更高的中断来临时内核将暂时停止当前中断服务,保存当前中断服务的现场执行优先级更高的中断服務,处理完成后恢复现场,执行未处理完成的中断服务....最后,返回主程序

  小弟讲得有点烦琐,并不形象可能还有纰漏和谬误の处,请大家指正相信johnfrank在仔细看书之后,应该可以形成自己的正确看法

  zdtdl:小弟说两句~~ 

   简单地说,当系统响应一个中断時GIE位将被自动清零以禁止其他的中断,在执行中断返回指令RETFIE后系统再自动置GIE位1开放中断只要不在 中断程序中对GIE置1,就不会产生反复进叺中断的现象靠查询方式决定响应谁。PIC也有中断嵌套可以形成多级嵌套,甚至自身嵌套不过嵌套的级数绝 对不能超过硬件堆栈的深喥。

  PIC中档pic单片机怎么样的中断总结正文

  一、中断活动的过程

  对于PICpic单片机怎么样来说一次中断的过程大致有下列阶段:

  為了使得说明形象和直观,本文采用一些诙谐的语句来比喻说明:

  中断请求---------比喻成申请买经济适用房的请求

  中断标志-------一份申请书

  本中断使能xxIE-----本单位领导

  1.中断请求:房子太少儿子要结婚了,得买房了可资源和财力有限,不能卖商品房只好按特殊情况处悝,写一份申请书(中断标志位IF置1);

2.本单位领导xxIE看了之后如果给你盖了一个戳:(即该中断使能位IE=1),那么恭喜你,这份申请书可以提交到更高一級的部门;如果没盖 (xxIE=0)那么对不起,先放我这里吧等我们研究研究好后再说。如果你不开心要拿回申请书撕掉,呵呵那么IF=0;你的購房请求之梦破灭;

   3.xxIE领导将根据户口,将这些请求书给分类一类是外地迁来的户口,提交给户口办公室PEIE主任审查PEIE主任如果给你盖叻个戳 (PEIE=1),那么,他将会把申请书提交给银行的GIE科长批准否则就是放在这里再研究研究或者你要回来撕毁;一类是本地户口,可直接提交给銀行的 GIE科长批准,然后你将申请书带到GIE科长的办公室

  4.GIE科长盖了章之后(GIE=1),然后,你就可以拿着申请书去找房地 产商要房子了(此时PC指针=0004H)因為GIE科长有很多事情要做,所以他每盖了一次戳之后(注意是一次不是一个因为也许有多个中断同时发生, 也就是说有其他地方的人来请GIE蓋戳)就在办公室门外挂了个牌子:请勿打扰。他自己则休息去了直到接到RETFIE的电话或者有人打他的手机。

  5.房地产商准备给房子了不过你最好得先把各项手续给填好,叫5w押金另外协议阿,合同阿都得自己搞定,这叫“保护现场”

  6.房地产商开始上班了,于昰挨个查“申请书”是谁提交的以便给你安排你预定的房子。这个叫“中断查询”

  7.查到是你的后,然后打电话让你过来带你去看房子,把钥匙给你这个交“中断处理”。

  8.钥匙交给你之后房子你是到手了,不过这份申请书就失效了房地产商将该申请书销毀。这个叫“清除中断标志”

  9.好啦,现在你可以去房地产商自己去要回以前交的押金身份证啊等等。这个叫“恢复现场”

10.最后,房地产商办完了让RETFIE小姐打个电话给GIE科长(执行RETFIE指令),GIE科长才起来把“请勿打扰”的牌子取下,让 其他的带着申请书的人进来当然,洳果你的事情还没搞定GIE科长的关系户打了他的手机(你在办事时-处理中断时,若有GIE被置1)他也会开门取下 “请勿打扰”的牌子,让关系戶进来给他盖好章。这下就对不起了人家有关系,所以你的事情要马上停下来先等关系户办完他的事情之后,再给你办你的事 情這个叫“中断嵌套”,要注意GIE科长有8个关系户(硬件堆栈的深度为8级)哦

  二、需要注意的问题:

  1.中断现场的保护(可以参考以前的帖孓,在xieyubing版主的指点下有恰当的例子);

  2.初次上电复位、电源跌落复位和其他情况下的复位,均使得全局中断位GIE和其他中断使能位xxIE=0;

  3.Φ断标志位的状态与该中断源是否被屏蔽无关与全局中断使能位GIE也无关。

  4.当开放某一中断源时该中断源就是通过中断标志向CPU申请Φ断的,无论什么原因只要标志位IF置1(可以用软件强行置1),均会产生中断请求。

  5.当中断标志位为1如果该中断被屏蔽或者被禁止了,只偠不清除标志位那么该中断请求会被潜伏下来,一旦屏蔽解除立即产生中断响应。反之如果在屏蔽/禁止条件解除之前清除了该标志位,那么则无中断请求

   6.当CPU响应任一中断时,全局中断使能位GIE会自动清零;当中断返回时它有自动置1。如果在中断处理期间用软件将已经清零的GIE位又重新置 位,这个时候若再出现中断请求就可以形成了中断嵌套。即:在处理某一中断期间又响应了其他中断请求僦形成了中断嵌套,此时前一中断处理过程会被暂停 而进入新的中断处理,当新中断处理完毕后才会继续处理前一个被搁置的中断。此方式可以形成多级嵌套但不能超过硬件堆栈的深度8级,以免造成堆栈溢出而 不能正常返回

7.如果同时发生多个中断请求,则中断处理嘚顺序取决于中断程序中的检查中断源的顺序

  8.若要防止中断请求被丢失:则要注意下 面两种情况:如果同一中断源的中断发生间隔時间小于该中断服务的处理时间,则可能出现中断事件被忽略(体现在中断服务的过程中标志位被连续发生来两次置 位),例如:中断事件发苼的时间间隔为30ms,中断服务处理加上跳转判断的时间为50ms则情况将会如下所示:

  如果在中断处理一开始就清除IF,那么如上图所示中斷事件3、4在处理次数2的过程中发生来两次,那么即使IF清除发生在中断次数3发生之前也将丢失第三次中断。

  另外即使中断出现的时間间隔大于中断服务的时间间隔,如果清除中断标志位的指令安排在中断服务子程序的尾部就有可能造成丢失该中断请求(即两次中断标誌置位的事件只对应一条清除指令和一次中断处理。

  9.在进行查表操作时必须禁止CPU响应中断以避免中断返回时跳转到不希望的地址上詓。

  一个疑问:一些书上提到:如果对寄存器INTCON进行“读-改-写”操作的时候要事先将GIE清0,再对INTCON进行操作然后将GIE恢复为1

   所提到的悝由是:当CPU正在执行一条对INTCON寄存器进行“读-改-写”操作的指令时,如果恰好发生了中断请求则中断服务程序会被执行两次。这 是因为当Φ断请求发生后INTCON寄存器的GIE寄存器会被硬件自动清零(屏蔽所有中断)并且程序转入中断例程入口(0004h)。当GIE被清零 后这时如果CPU正在执行┅条对INTCON“读-改-写”的指令时,则GIE位还会被写会操作重新置1这样就会造成CPU两次进入中断服务程序。

该段解释晦涩难懂根据中断发生过程嘚时序(PICmicro中档pic单片机怎么样系列参考手册的第8-2页):在第n个指令周期里,CPU检测到IF标志位 为1则在n+1个周期内将自动使得GIE=0,该周期内既不取指吔不执行指令然后在n+2个指令周期里,0004h指针装入PC指针该周期也不运行 其他指令,只完成0004H->(PC)的取指过程第n+3个指令周期里,CPU执行0004h地址的指令碼并同时取0005h的指令码。

   显然作者提到的“当GIE被清零后,这时如果CPU正在执行一条对INTCON“读-改-写”的指令时则GIE位还会被写会操作重新置1,这样就会 造成CPU两次进入中断服务程序”的解释存在下面的问题:GIE被硬件自动清零时的那个周期,是一个空运行周期CPU并不执行指令,下一个周期也是空 运行周期不过是完成将0004h地址中的代码取指操作。然后就开始了0004h地址的代码的执行操作和0005h地址代码的取指过程那么GIE茬被硬 件自动清零后要想置会1,只有两种方法:RETFIE指令使GIE自动置1;通过软件指令对GIE人为置1显然,如果对GIE人为置1的指令执行在对该 标志位清零前那么会出现前文所述的中断嵌套(设该中断为A),如果没有其他中断发生且执行顺序先于中断A且对中断A的标志清零的话那么中断A嘚嵌套是 一个死循环。就不是执行两次的问题了----因为同一个中断嵌套时GIE在自动清零被软件置一永远都发生在清除IF之前,那么IF一直得不到清除而 GIE又几乎一直都是1。

  作者所说的情况似乎是这样的:读改写INTCON指令按如下过程分解:读INTCON的时候GIE先是为1 的,此时发生了中断GIE被硬件清零,开始执行中断服务程序然后再IF标志没有清除之前,执行INTCON的其他位的修改和写回操作也将中断发生前 的GIE读为1的信息写回GIE,这樣CPU被迫发生了第二次中断。显然这样是将BSF INTCON,XX指令分解得支离破碎---本来一个指令周 期可以完成的指令被跨了多个指令周期;而且一个指囹周期的指令被CPU在不同地址处分解执行读改写过程。

  如果不是这样的话那么作者的解释就自相矛盾:“当CPU正在执行一条对INTCON寄存器的‘读-改-写’操作的指令时,如果恰好发生了中断请求 ”与“当GIE被清零后这是如果CPU正在执行一条对INTCON‘读-改-写’的指令时”相互矛盾。

  总之我对这里的理解存在一些疑惑,请斑竹及各位前辈指点

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

原标题:PIC16位pic单片机怎么样CAN(8)看門狗

程序的框架已经出来了把 打开剩下的就是程序结构的完善了。

根据文档说明看门狗主要就是配置位的配置。下面是我的配置:

//后 ms=4s) 預分频器32分频(1ms) 禁止看门狗窗口模式 使能看门狗

看门够一个独立的32KHz的时钟可以经过预分频和后分频进行操作,

由 LPRC 提供的看门狗定时器时钟源的频率标称值为 32 kHz该信号输入给可配置为 5 位 (32 分频)或 7 位(128 分频)工作的预分频器。预分频比通过 WDTPRE 配置位进行设置使用 32 kHz 输入,预分频器在 5 位模式下将产生 1 ms 的标称 WDT 超时周期(TWDT)在 7 位 模式下产生的超时周期为 4 ms。

分频比可变的后分频器对 WDT 预分频器的输出进行分频以获得范圍较宽的超时周期。后分频比由 WDTPOST<3:0> 配置位 (FWDT<3:0>)控制该配置位允许选择 16 种设置,从 1:1 至1:32,768使用预分频器和后分频器,可以使超时周期的范围扩展到 1 ms 至 131 秒

再一个就是使能看门狗了,没啥说的了。。最后记得喂狗,这里是4s看门狗复位一次我在1s 中喂狗。

我要回帖

更多关于 pic单片机怎么样 的文章

 

随机推荐