專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
十年專注單片機(jī)方案開(kāi)發(fā)的方案公司英銳恩,分享CCSC timer.c程序使用MCD2demo 用PIC16F877A片內(nèi)Timer1定時(shí)。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。
/*=============================================================================
使用PIC16F877A片內(nèi)Timer1定時(shí),運(yùn)行程序:
程序開(kāi)始 -> LED0亮,
每0.5秒鐘 -> LED7交替亮滅,
循環(huán)10次后 -> Timer1中斷關(guān)閉,LED6亮,LED7保持當(dāng)前狀態(tài)。
=============================================================================*/
///////////////////////////////////////////////////////////////////////////////
// MPLAB IDE V7.11 + CCS C3.18
// Use 16F877A internal timer1 for MCD2-demo
//
// by LW7807@163.com
// 2005/06/22
///////////////////////////////////////////////////////////////////////////////
#include <16F877A.h> // PIC16F877 header file
#use delay(clock=4000000) // for 4Mhz crystal
#fuses XT, NOWDT, NOPROTECT, NOLVP // for debug mode
#define TIMER1_500MS (0xFFFF - 62500 + 1)
#define DO_THIS_TIMES 10
#define LED7_IO PIN_C7
#define LED6_IO PIN_C6
#define LED0_IO PIN_C0
#define LED_ON 1
#define LED_OFF 0
int1 led7_status = LED_OFF;
int8 cnt = 0;
///////////////////////////////////////////////////////////////////////////////
//
#int_TIMER1
void timer1_isr(void)
{
led7_status = ~led7_status;
++ cnt;
if(cnt >= 2*DO_THIS_TIMES)
{
disable_interrupts(INT_TIMER1);
output_bit(LED6_IO, LED_ON);
}
}//end timer1_isr()
/*===========================================================================*/
void main(void)
{
// begin program
output_bit(LED0_IO, LED_ON);
// setup timer1 for 0.5s interrupt
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(TIMER1_500MS);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
// show led7 status
while(1){
output_bit(LED7_IO, led7_status);
}
}//end main()