2015-PIC单片机原理及应用(二).pptx
文本预览下载声明
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)]
显示全部