文档详情

2015-PIC单片机原理及应用(二).pptx

发布:2018-03-12约1.2万字共130页下载文档
文本预览下载声明
PIC单片机原理及应用;主要内容;输出数据时;输入数据时;5;;7;8;;例1:实现发光二极管D1闪烁功能。 硬件分析:发光二极管D1连接着38引脚,即RE0端口; RE0输出高电平时(=1),D1亮; RE0输出低电平时(=0),D1不亮; ;;软件设计为: int main() { TRISEbits.TRISE0 = 0; //设置RE0为输出(1输入,0输出); while(1) { LATEbits.LATE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 LATEbits.LATE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } ;例2、实现6个发光二极管流水灯功能。 硬件分析:6个发光二极管D1-D6分别连接着33-38引脚,即RE0-RE5端口;每个引脚输出高电平时(=1)灯亮;输出低电平时(=0)灯不亮。;;;软件设计 方法一:循环输出 int ledcode[6]={0x01,0x02, 0x04, 0x08, 0x10, 0x20}; //存放6个输出值 int main(void) { TRISE =0x00; //设置RE0-RE5为输出 while(1) { for (i=0;i6;i++) { LATE=ledcode[i]; //6个输出值依次输出循环点灯 delay(); //延时 } } };软件设计 方法二:移位输出 int led=0x01; //存放输出值,初值是第一个输出值 int main(void) { TRISE =0x00; //设置RE0-RE5为输出 while(1) { LATE =led; //点灯 delay(); //延时 led = led1; //左移1位,改变为下个输出值 if (led == 0x40) led = 0x01; //第6个灯亮后,重新从 //第1个灯点亮 } };例2、实现按按键加1计数功能。每按S8按键一次,加1计数,发光二极管D1-D6显示二进制的计数值。 硬件分析:D1-D6连接在33-38引脚(RE0-RE5),按键S8连接17引脚(RE8)。S8没有按下时,RE8输入为高电平(=1);S8按下时,RE8输入为低电平(=0);;20;实验一、I/O端口实验;四. 实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击DebuggerSelect ToolsPICkit 3 选择调试工具; (3)点击DebuggerSettings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; (5)完成实现流水灯或花样彩灯实验; (6)完成实现按按键加1计数实验。 五. 实???报告内容与要求 (1)简述3个实验任务的程序设计方法; (2)分析观察到的实验结果; (3)分析PIC单片机IO端口输入与输出操作的不同之处。;主要内容;1. 中断 中断是指在程序运行过程中,当出现情况时,CPU暂时停止当前程序的执行,转而执行处理新情况的过程叫做中断。 简单来说:中断是一种发生了一个外部的事件时调用相应的处理程序的过程。 2.中断源 引起中断的原因,或能够发出中断请求信号的来源统称为中断源。 (1)软件中断源:软件陷阱产生的中断为软件中断源(不可屏蔽中断) (2)硬件中断源:外设发出的请求为硬件中断源(可屏蔽中断);3.中断处理过程 一个完整的中断处理过程应该包括:中断请求、中断排队或中断判优、中断响应、中断处理和中断返回。 ;26;;;;30;31;32;33;34;(2)中断服务程序ISR的编写 void __attribute__((__interrupt__(__save__(variable1,variable2)))) _INT0Interrupt(void) { //中断服务程序代码 } __attribute__((__interrupt__ [( [__save__ (symbol-list)] [, __ irq__ (irqid)]
显示全部
相似文档