2015-PIC单片机原理与应用2.pptx

  1. 1、本文档共135页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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)]

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档