资料介绍
C语言程序例程
/*该程序实现PIC18F458的休眠工作方式,并由实验板上的按键产生"电平变化中断"将其
从休眠状态中激活。休眠与激活的状态由与D口相连的8个LED显示。休眠时高4个
LED发光,低4个LED熄灭; 激活以后高4个LED熄灭,低4个LED发光*/
#include "p18f458.h"
unsigned long i;
/*系统初始化子程序*/
void initial()
{
INTCON=0x08; /*全局中断禁止,"电平变化中断"只执行唤醒功能*/
/*清除B口电平变化中断标志*/
TRISA=0x00; /*A口设置为输出*/
TRISB=0XF0; /*RB1输出,RB4输入*/
TRISD=0X00; /*D口为输出*/
TRISE=0x00; /*E口设置为输出*/
PORTBbits.RB1=0;
PORTAbits.RA3=0;
PORTE=0; /*将K1,K2,K3,K4四条列线置0*/
PORTB=PORTB; /*读PORTB的值,锁存旧值,也为“电平变化
中断”作准备*/
}
void SLEEP()
{
_asm
SLEEP /*进入休眠状态*/
_endasm
}
/*主程序*/
main ()
{
initial(); /*初始化*/
PORTD=0X0F; /*高4个LED灯亮*/
SLEEP(); /*单片机开始进入休眠状态*/
PORTD=0X