PIC单片机的INT中断设计思路及程序设计

发布者:bln898最新更新时间:2013-03-14 来源: dzsc关键字:PIC单片机  INT中断  寄存器地址 手机看文章 扫描二维码
随时随地手机看文章
    1. 设计思路

  PIC单片机端口RC连接8只发光二极管LED作为流水灯模拟发光部件。利用片内的定时器/计数器TMR0模块和中断逻辑功能部件,使TMR0工作在定时器模式,并且在超时溢出时向CPU发送中断请求信号,外部中断信号输入脚INT作为电源故障检测端。

  电源电压检测模块电路原理图如图1所示,流水灯电路原理图如图2所示.

  图1  电源电压检测模块电路原理图

  图2  流水灯电路原理图

  2. 程序设计

  程序设计流程如图3~图6所示。

  图3  主程序流程

  图4  中断服务程序流程

  图5  延时子程序1流程

  图6  延时子程序2流程[page]

  程序代码如下:

  (1)寄存器地址及变量的定义

  (2)主函数

  (3)中断服务子程序

  (4)延时子程序1,通过定时器0的溢出中断来实现,溢出4次作为一次延时

  (5)延时子程序2,通过定时器0的溢出中断来实现,溢出1次作为一次延时

  (6)显示码查表子程序,该子程序完成查表功能

关键字:PIC单片机  INT中断  寄存器地址 引用地址:PIC单片机的INT中断设计思路及程序设计

上一篇:PIC单片机人机接口模块独立式按键的工作原理
下一篇:PIC单片机端口RB中断的程序设计

推荐阅读最新更新时间:2024-03-16 13:20

基于PIC单片机的4×4行列式键盘系统设计方案解析
在本文中,小编将对pic单片机的4×4行列式键盘的工作原理加以介绍,以帮助大家增进对pic单片机键盘系统的了解,方便后期编程使用。 (1)单片机系统键盘原理 行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图1所示。 图1 4×4行列式键盘的原理图 实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单片器件就能够完成键盘输入和显示控制两种功能。 行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以
[单片机]
基于<font color='red'>PIC单片机</font>的4×4行列式键盘系统设计方案解析
PIC单片机实现8个数码管实现循环显示的设计
8个数码管滚动显示同一个数字 8个数码管显示多个不同的字符 8个数码管闪烁显示 8个数码管滚动显示数字串 #include __CONFIG(0x3B31); unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-F--共阴极数码管 #defineLEDPORTB void delay1ms(unsigned int x) { unsigned char i; for(;x》0;x--) for(i=0;i《165;i++); } void init() { TRISB=
[单片机]
<font color='red'>PIC单片机</font>实现8个数码管实现循环显示的设计
PIC单片机之SPI从机框架
#include pic.h #include string.h #include STDIO.H __CONFIG(0x3F32); //芯片配置字 选择HS模式振荡器,关WDT typedef unsigned char uchar; typedef unsigned int uint; uchar resive=0; uchar resive1=0; uchar send_buf ={'S',0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xc,0xD,0xe,0xf}; uchar send_num=0; uchar resive_flag=0; #defi
[单片机]
PIC单片机入门总结
1. 安装软件流程 1)安装mplab8.85 2)安装CCS_PCWHD_4.120 a) 双击Compiler目录下的pcwhdupd.exe安装编译器,按照提示安装了编译器之后在桌面上会有PIC C Compiler,这个图标,这就是C编译器。 b)把PIC C profiler挂到mplab上。方法:双击plugins目录下的setup_mplab_plugin.exe按照提示完全安装即可。 2. 建立工程方法(pic wizard) 3. 简单的一个io口控制源码 注意调试模式和下载程序模式 1) 对配置位要进行正确配置 例如: #device HIGH_
[单片机]
<font color='red'>PIC单片机</font>入门总结
PIC单片机如何从汇编转向PICC
一、如何从汇编转向PICC 首先要求你要有C语言的基础。C代码的头文件一定要有#include,它是很多头文件的集合,C编译器在pic.h 中根据你的芯片自动载入相应的其它头文件。这点比汇编好用。载入的头文件中其实是声明芯片的寄存器和一些函数。 static volaTIle unsigned char TMR0 @ 0x01; staTIc volaTIle unsigned char PCL @ 0x02; staTIc volatile unsigned char STATUS @ 0x03; 可以看出和汇编的头文件中定义寄存器是差不多的。如下: TMR0 EQU 0X01; PCL EQU 0X02; STATUS E
[单片机]
<font color='red'>PIC单片机</font>如何从汇编转向PICC
通过PIC单片机设计让电风扇送出仿自然风
硬件电路及原理 要使电风扇送出仿自然风,就需要改变电风扇送风的强弱,即需要改变风扇电机的电压和电流,从而改变其转速。如图1所示,风扇插座与晶闸管TREAC相串联,改变晶闸管控制角α,即控制晶闸管导通的时间,就能使风扇电机的电压、电流发生变化。图2展示了α角和电机负载电压的关系。 Α角的变化又可通过电容C1的充放电时间的改变来实现。PIC16F84 单片机按一定规律选择电阻Rx,即可改变电容C1的充放电时间,从而改变2N2646的导通时间。改变了TREAC的导通角,达到改变电风扇送风强弱的目的。控制角α和强弱风的关系如图3所示 市电频率f=50Hz,则可得下式 α/360°=t/0.02……………(1) 根据图1所示RxC1充
[单片机]
通过<font color='red'>PIC单片机</font>设计让电风扇送出仿自然风
PIC单片机软件在关机器人控制中的编程技巧
本文介绍项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1、 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: list P=16c73 call
[单片机]
PIC16F877A单片机在智能双电源装置中的应用
1. 智能双电源装置的简介 随着对供电可靠性的要求也越来越高,很多场合用两路电源来保证供电的可靠性。当常用电源异常,智能双电源装置能自动切换到备用电源,智能双电源装置就是这种在两路电源之间进行可靠切换、以保证供电的装置。在医院、宾馆和矿山等有广泛的应用。 智能双电源装置由开关本体和控制器两部分组成。开关本体由电机通过机械联锁机构控制常用电源的断路器和备用电源的断路器的分合,进而控制电源的切换。控制器通过对电压的采样来判断电源是否异常,如果出现异常应产生相应的切换。 2. PIC16F877A的简介 美国Microchip公司的PIC 8位单片机其生产史11年,但现在其产量已跃居世界第二位(仅次于Motoro
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved