日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]power down mode也就是sleep mode,狀態(tài)位PD被清零;程序中加入sleep()便可以使IC進(jìn)入sleep mode。在sleep mode下,若watchdog使能,則watchdog被清除后,繼續(xù)工作;oscillator停止工作;IO口保持進(jìn)入sleep mode時

power down mode也就是sleep mode,狀態(tài)位PD被清零;程序中加入sleep()便可以使IC進(jìn)入sleep mode。在sleep mode下,若watchdog使能,則watchdog被清除后,繼續(xù)工作;oscillator停止工作;IO口保持進(jìn)入sleep mode時的狀態(tài);MCLR 許要設(shè)置為邏輯高電平。從sleep mode醒來的幾種方式:1、外部MCLR的reset;2、若watchdog使能,可以利用watchdog喚醒,TO bit被清;3、INT喚醒,portB口有外部中斷的功能;另外在datasheet中也講解到利用外部中斷(如下幾種可以喚醒device)從sleep mode喚醒后,如果GIE=0被清除,device執(zhí)行sleep后的一條語句;如果GIE=1使能,喚醒后執(zhí)行sleep后的一條句子后,進(jìn)入中斷地址0x0004H 處執(zhí)行中斷內(nèi)容。通常在sleep后增加一條NOP()指令。另外在datasheet中提到在執(zhí)行sleep指令前、過程中、以及之后如有中斷,也可能不能使PD設(shè)置為0,使device進(jìn)入sleep mode。所以最好在執(zhí)行sleep mode前對PD位進(jìn)行一下檢查。下面的例程實(shí)現(xiàn)的功能是:正常工作時blink LED(RA0控制),外部中斷控制是否進(jìn)入sleep mode,進(jìn)入sleep mode時,LED保持亮的狀態(tài)。再次RB0 外部中斷觸發(fā)后,awake up device,LED燈繼續(xù)閃爍。#include #define uchar unsigned char#define uint unsigned int// CONFIG#pragma config FOSC = HS // 12MHZ 外部晶振#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)#pragma config LVP = ON // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)#define DELAY 1000uchar count;void delay(uint x) { uint y,z; for(y=x;y>0;y--) for(z=25;z>0;z--);}void init(void){ TRISB0=0; RB0=1; TRISB0=1; INTEDG=0; INTF=0; INTE=1; GIE=1; }void interrupt INT() { if(INTE&&INTF) { INTF=0; count++; TRISB0=0; RB0=1; TRISB0=1; }}void main(void){ uchar i,temp; TRISA=0x00; PORTA=0x00; init(); while(1) { RA0 =1; delay(DELAY); RA0 = 0; delay(DELAY); if((count%2)== 1) { RA0=1; SLEEP(); // go into sleep mode NOP(); } }}下面的內(nèi)容是從網(wǎng)上找的··

/SLEEP工作方式,單片機(jī)進(jìn)入休眠,可以節(jié)省電源,提高A/D轉(zhuǎn)換精度(此時AD轉(zhuǎn)換必須選擇內(nèi)部RC作為A/D轉(zhuǎn)換的時鐘源)

//SLEEP工作方式相愛,芯片的振蕩器停診,因此沒有系統(tǒng)時鐘。在剛進(jìn)入休眠工作模式下,如看門狗定時器是能狀態(tài),系統(tǒng)會自動把看門狗定時器的當(dāng)前計(jì)數(shù)值清零

//使其重新計(jì)數(shù),在SLEEP模式下,I/O端口保持執(zhí)行SLEEP指令之前的狀態(tài)。

//INTCON.GIE=1時,喚醒SLEEP計(jì)數(shù)之后,先執(zhí)行SLEEP之后的一條語句,然后進(jìn)入中斷服務(wù)程序若不希望執(zhí)行SLEEP之后的那條語句,可加上NOP指令

//INTCON.GIN=0,則喚醒SLEEP,但不進(jìn)入中斷。

//INTCON.INTE=0,則不管GIE為何值,按鍵時都不能喚醒SLEEP

//INT中斷與休眠

#include

__CONFIG(0X3F39);//調(diào)試用

void DELAY_I(unsigned int);

void interrupt INT_ISR(void);

#define LED1 RB1

#define LED2 RB2

void main(void)

{

OPTION=0b1001101;//RB0/INT下降沿中斷

TRISB=0b11111001;//設(shè)置RB0/RB1為輸出

LED1=0;

LED2=0;

INTE=1;//中斷控制寄存器INTCON的位4INTE(INT引腳中斷使能)

GIE=1;//位7全局中斷使能

SLEEP();//進(jìn)入休眠工作方式

NOP();//SLEEP之后要加上NOP語句

LED1=1;//喚醒后LED1亮

while(1); //等待中斷

}

void interrupt INT_ISR(void)

{

char x;

if(INTF)

{

LED2=1;

DELAY_I(30);

INTF=0;

}

}

void DELAY_I(unsigned int n)

{

unsigned int j;

char k;

for(j=0;j

for(k=246;k>0;k--) NOP();

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Nokia曾是手機(jī)界的王者,但因?yàn)橐恍┰?,在手機(jī)方面的成就逐漸被其他品牌趕超,為保持生存,Nokia將自己的觸角延伸至了智能穿戴與醫(yī)療健康領(lǐng)域,下面一起來看看Nokia在該領(lǐng)域的建樹吧。

關(guān)鍵字: sleep 智能穿戴

//軟件思路:選擇RAO做為模擬輸入通道; // 連續(xù)轉(zhuǎn)換4次再求平均值做為轉(zhuǎn)換結(jié)果 // 最后結(jié)構(gòu)只取低8位 // 結(jié)果送數(shù)碼管的低3位顯示 #include //包含內(nèi)部資源預(yù)定義...

關(guān)鍵字: ad轉(zhuǎn)換 pic16f877a picc

unsigned char eeprom_read(unsigned char addr);void eeprom_write(unsigned char addr, unsigned char value);這兩個函數(shù)...

關(guān)鍵字: pic16f877a eeprom使用

//*****************電子園PIC16F877A開發(fā)板 SPI總線驅(qū)動74595實(shí)驗(yàn)***************////CKP=0; 空閑為低電平//CKP=1; 空閑為高電平//STAT_CKE=0;...

關(guān)鍵字: pic16f877a spi總線 驅(qū)動74595

用c語言寫的一個時鬧鐘程序單片機(jī)用16F877,主時鐘用20MHz,用32768作定時時間??梢詫?shí)現(xiàn)2路定鬧,每一路都可分別設(shè)置和開關(guān),采用4x4鍵盤,16x2的字符型LCD顯示。連線在程序開頭有...

關(guān)鍵字: pic16f877a 時鐘 程序 語言

/****************************************************標(biāo)題:萬年歷**說明:包含文件,*****************************...

關(guān)鍵字: pic16f877a 萬年歷 程序

//數(shù)碼管顯示//★★★★★★★★★數(shù)碼管顯示★★★★★★★★★★★\\\\ //單征機(jī)型號:PIC16F877A //功能描述:采用動態(tài)掃描方式,初始時顯示123,當(dāng)按下RB0時,數(shù)值加一,當(dāng)按下RB1時,數(shù)值減一...

關(guān)鍵字: pic16f877a 數(shù)碼管顯示

/************************************************PIC16F877A 內(nèi)部EEPROM讀寫實(shí)驗(yàn)*******Author:hnrainDate:2010-12-26Ver...

關(guān)鍵字: pic16f877a 內(nèi)部eeprom 內(nèi)部函數(shù) 讀寫實(shí)驗(yàn)

/*Capture mode時,外部CCP1事件觸發(fā)后,CCPR1H和CCPR1L將獲取Timer1的TMR1H和TMR1L中的數(shù)值對于CCP1的觸發(fā)事件,設(shè)置鍵CCP1Con中的相應(yīng)位CCP1M3--CCP1M0CCP...

關(guān)鍵字: capture mode pic16f877a
關(guān)閉