Browsing this Thread:
1 Anonymous Users
|
Re: pic16f877的timer用法
|
|
版主
Joined
: 2004/4/30 10:53 最後登入時間
: 2021/11/30 18:11
From CAE, Microchip
Group:
站務管理者 註冊會員
Level : 75 HP : 744 / 1861 MP : 5367 / 108971 EXP : 45
|
一言難盡,有關如何使用 Timer 的方法用打電話吧!
發表於: 2005/10/24 18:26
|
|
|
pic16f877的timer用法
|
|
新會員
Joined
: 2005/10/18 13:53 最後登入時間
: 2005/11/9 14:14
Group:
註冊會員
Level : 1 HP : 0 / 0 MP : 0 / 37 EXP : 2
|
請問下列的問題 1.PIC16F877的TIMER0.TIMER1.TIMER2他們三者是否有不同的功能 2.以下程式是用TIMER2來寫中斷的.我想用TIME0來寫這程式的中斷 我該怎麼寫 若用TIME1又該怎麼寫
很想了解 希望大家多多指教 謝謝大家
/**************************************************************** * Hi-Tech workshop exercise Lab6 ***************************************************************** * * * Files required: * * * lab6.c * cnfig877a.h (Set the Configuration Word) * * * pic.h (Hi-Tech file) * * ***************************************************************** * * * Notes: * * * * Device Fosc -> 16.00MHz (Clock supplied by target) * * *****************************************************************/
#include <pic.h> #include "cnfig877a.h"
//********************************** //* Function Prototype Declaration //********************************** void interrupt isr_Sevr ( void );
// ================================================================ // **** Establish PIC16F877A Configuration Word // **** == HS Oscillator Mode // **** == Brown-Out Detect Enabled // **** == Watch-Dog Timer Off // **** == Code Protect Off // **** == Low Voltage Programming Off // **** == ICD2 Debug Mode On
__CONFIG ( HS_OSC & BODEN_ON & WDT_OFF & CP_OFF & LVP_OFF & DEBUG_ON );
// =================================================================
volatile unsigned char Long_Count ; volatile unsigned char Direct_LED ; volatile unsigned char Dir_Count ;
void main(void) { TRISD=0x00; PORTD=0b00000001;
T2CON=0b01111110; TMR2IE=1; PEIE=1; GIE=1; PR2 = 155;
Long_Count=0; Direct_LED=0; Dir_Count=0;
while(1); }
//*********************************************** //* Interrupt Service Routine //***********************************************
void interrupt isr_Sevr ( void ) { TMR2IF=0;
if (Long_Count <=9) Long_Count++; else { Long_Count=0;
if (Direct_LED==0x00) { PORTD<<=1; Dir_Count++; if (Dir_Count==7) { Dir_Count=0; Direct_LED=0x1; } } else { PORTD>>=1; Dir_Count++; if (Dir_Count==7) { Dir_Count=0; Direct_LED=0x00; } } } }
發表於: 2005/10/20 17:41
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.