資源簡介
純正正弦波源程序// spwm信號調制
//------------------------------------------------------------
#include
#include
//系統配置
__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTEN);
//打開看門狗,選擇高速晶振,上電延時復位,掉電復位使能,代碼保護
//------------------------------------------------------------
//指示燈宏定義
#define L1_RED_ON RB1=1;RB2=0;//L1紅燈亮
#define L1_OFF RB1=0;RB2=0;
#define L2_RED_ON RB4=1;RB3=0;//L2紅燈亮
#define L2_OFF RB4=0;RB3=0;
#define L3_RED_ON RB7=1;RB5=0;//L3紅燈亮
#define L3_OFF RB7=0;RB5=0;
#define L1_GREE_ON RB2=1;RB1=0;//L1綠燈亮
#define L2_GREE_ON RB3=1;RB4=0;//L2綠燈亮
#define L3_GREE_ON RB5=1;RB7=0;//L3綠燈亮

代碼片段和文件信息
#include?
#include
//系統配置
__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTDIS);
//關閉看門狗選擇高速晶振上電延時復位掉電復位使能代碼保護
//變量定義
//------------------------------------------------------------
//指示燈宏定義
#define?L1_RED_ON???RB1=1;RB2=0;//L1紅燈亮
#define?L1_RED_OFF??RB1=0;RB2=0;
#define?L2_RED_ON???RB4=1;RB3=0;//L2紅燈亮
#define?L2_RED_OFF??RB4=0;RB3=0;
#define?L3_RED_ON???RB7=1;RB5=0;//L3紅燈亮
#define?L3_RED_OFF??RB7=0;RB5=0;
#define?L1_GREE_ON??RB2=1;RB1=0;//L1綠燈亮
#define?L1_GREE_OFF?RB2=0;RB1=0;
#define?L2_GREE_ON??RB3=1;RB4=0;//L2綠燈亮
#define?L2_GREE_OFF?RB3=0;RB4=0;
#define?L3_GREE_ON??RB5=1;RB7=0;//L3綠燈亮
#define?L3_GREE_OFF?RB5=0;RB7=0;
//-----------------------------------------------------------
//模擬輸入通道宏定義
#define?AN0?CHS0=CHS1=HS2=0;
#define?AN1?CHS=0;CHS1=CHS2=1;
#define?AN2?CHS0=CHS2=1;CHS1=1;
//-----------------------------------------------------------
bit?ccp1kccp2;
unsigned?char?mode;
//-----------------------------------------------------------
//軟件延時子程序*/
void???????DELAY()
{
unsigned?int?i;
???for(i=10000;i>0;i--);
}
//-----------------------------------------------------------
void?adc_init()
{
//ad時鐘選擇
ADCS1=1;//FOSC/32
ADCS0=0;
//
PCFG0=0;
PCFG1=0;
PCFG2=0;//RA0=AN0RA1=AN1RA2=AN2VREF=VDD-VSS
ADON=1;//打開ad模塊
ADIF=0;//清除ad中斷標志
ADIE=1;//打開ad模塊中斷
PEIE=1;//打開外圍模塊中斷
GIE=1;//打開總中斷
}
//-----------------------------------------------------------
void?port_init()//端口初始化
{
//端口b設置
TRISB0=0;TRISB1=0;TRISB2=0;TRISB3=0;TRISB4=0;TRISB5=0;
TRISB6=1;//輸入
TRISB7=0;//RB端口方向設置
PORTB=0;//輸出0
RBPU=0;//使能內部弱上拉
INTE=0;//禁止RB0中斷
RBIF=0;
RBIE=1;//允許RB端口電平變化中斷
//端口c設置
TRISC=0X00;//PORTC?are?outputs
PORTC=0;//輸出為0
RC1=RC2=1;
//timer0?init
T0CS=0;//選擇內部指令時鐘
T0IF=0;
//T0IE=1;//在第一次ccp1比較后打開中斷使能
//timer1
TMR1CS=0;//定時器模式
}
//----------------------------------------------------------
void?init_start()//開始
{
L1_RED_ON;
L2_RED_ON;
L3_RED_ON;
DELAY();DELAY();DELAY();
L1_GREE_ON;
L2_GREE_ON;
L3_GREE_ON;
DELAY();DELAY();DELAY();
L1_GREE_OFF;
L2_GREE_OFF;
L3_GREE_OFF;
L1_GREE_ON;
}
//----------------
void?CCP2_pwm()//ccp2?pwm初始化CCP1比較初始化
{
TMR2ON=0;
//復位ccp
//CCP2M3=0;CCP2M2=0;CCP2M1=0;CCP2M0=0;
CCP1M3=0;CCP1M2=0;CCP1M1=0;CCP1M0=0;
GIE=0;PEIE=0;//禁止總中斷和外圍中斷
CCP1IF=0;
CCP1M3=1;CCP1M2=0;CCP1M1=0;CCP1M0=1;//比較模式
CCPR1H=0x17;
CCPR1L=0xe8;//每隔6個指令周期發生比較操作
TMR1L=TMR1H=0;
//--------
CCP2IF=0;
CCPR2L=0X6;//設置80%的脈寬輸出
CCP2X=CCP2Y=0;
CCP2M3=CCP2M2=1;//PWM模式
PR2=0Xff;//設置PWM的工作周期20mhzPWM周期=(PR2+1)*4*TOSC*TIMER2預分頻比=19.531khz
T2CKPS1=T2CKPS0=0;//timer2預分頻器1
TOUTPS3=TOUTPS2=TOUTPS1=TOUTPS0=0;//后分頻器1
//-------------------
CCP1IE=1;
TMR2ON=1;
GIE=1;
}
//---------------
void?CCP1_pwm()//ccp1?pwm初始化CCP2比較初始化
{
TMR2ON=0;
//復位ccp
CCP2M3=0;CCP2M2=0;CCP2M1=0;CCP2M0=0;
//CCP1M3=0;CCP1M2=0;CCP1M1=0;CCP1M0=0;
GIE=0;PEIE=0;//禁止總中斷和外圍中斷
//-------------------設置CCP2比較模式
CCP2IF=0;
CCP2M3=1;CCP2M2=0;CCP2M1=0;CCP2M0=1;//比較模式
CCPR2H=0x17;
CCPR2L=0xe8
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????93256??2005-12-26?15:33??pic_nibian程序\iss_picnibian\Last?Loaded?pic_spwm.DBK
?????文件??????93263??2006-01-05?10:02??pic_nibian程序\iss_picnibian\pic_spwm.DSN
?????文件????????852??2006-01-11?22:16??pic_nibian程序\iss_picnibian\pic_spwm.PWI
?????文件???????4215??2005-12-27?12:56??pic_nibian程序\nibian.c
?????文件??????31139??2005-12-27?12:56??pic_nibian程序\nibian.lst
?????文件??????39739??2005-12-27?12:56??pic_nibian程序\nibian.rlf
?????文件???????7685??2005-12-27?12:56??pic_nibian程序\nibian.sdb
?????文件??????13824??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.cod
?????文件??????19858??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.cof
?????文件???????7338??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.hex
?????文件?????????86??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.lde
?????文件??????16468??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.map
?????文件????????689??2006-01-06?09:55??pic_nibian程序\PIC_NIBIAN.mcp
?????文件????????656??2006-01-15?13:38??pic_nibian程序\PIC_NIBIAN.mcs
?????文件??????23552??2006-01-15?13:38??pic_nibian程序\PIC_NIBIAN.mcw
?????文件???????8021??2006-01-15?13:28??pic_nibian程序\PIC_NIBIAN.sym
?????文件???????3584??2005-12-26?16:57??pic_nibian程序\unti
?????文件???????8641??2006-01-15?13:38??pic_nibian程序\www.c.c
?????文件????????169??2006-01-15?13:28??pic_nibian程序\www.c.cce
?????文件??????73580??2006-01-15?13:28??pic_nibian程序\www.c.lst
?????文件??????21016??2006-01-15?13:28??pic_nibian程序\www.c.obj
?????文件?????110269??2006-01-15?13:28??pic_nibian程序\www.c.rlf
?????文件???????8396??2006-01-15?13:28??pic_nibian程序\www.c.sdb
?????目錄??????????0??2010-08-16?23:09??pic_nibian程序\iss_picnibian
?????目錄??????????0??2010-08-16?23:09??pic_nibian程序
-----------?---------??----------?-----??----
???????????????586296????????????????????25
- 上一篇:STC89C52芯片的模擬路燈控制系統
- 下一篇:小編譯器 詞法語法語義分析
評論
共有 條評論