⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initial.c

📁 该程序是pic单片机程序
💻 C
字号:
#include 	    <pic.h>


persistent unsigned int pwmold,setdataC;
unsigned   int pwmhigh,pwmlow,setdataA;
unsigned  char CCPXYNEW;
//CCP1模块的PWM工作方式初始化子程序
void  CCP1INIT1()
{
 CCPR1L=0X7F;
 //CCPR1L=pwm2;
 setdataC=0X01E0;
 setdataA=0X01FF;
 CCP1CON=0X3C;			    //设置CCP1模块为PWM工作方式,且其工作
							//循环的低2位为11,高8位为01111111=7F//
 INTCON=0X00;				//禁止总中断和外围中断//
 PR2=0XFF;					//设置PWM的工作周期//
 TRISC=0XFB;				//设置CCP1引脚为输出方式//
}

void  CCP1INIT2()
{
 setdataC=0X01FC;
 setdataA=pwmold;
 pwmlow=pwmold&0X0003;    //提取pwm的低两位。     
 pwmhigh=pwmold>>2;       //右移2位,提取pwm高8位。

 pwmlow=pwmlow<<4;        //新的CCP1X:CCP1Y
 CCPXYNEW=CCP1CON&0XCF;   //清CCP1X:CCO1Y
 CCPXYNEW=CCPXYNEW|pwmlow;//获取新的CCP1CON,存储于CCPXYNEW中。

// CCPR1L=0X7F;
 CCPR1L=pwmhigh;
 //CCP1CON=0X3C;			//设置CCP1模块为PWM工作方式,且其工作
 CCP1CON=CCPXYNEW;		//循环的低2位为11,高8位为01111111=7F

 INTCON=0X00;				//禁止总中断和外围中断
 PR2=0XFF;					//设置PWM的工作周期
 TRISC=0XFB;				//设置CCP1引脚为输出方式
}
//串行通信初始化子程序
void	sciint()
{
	SPBRG=0X77;			///将传输的波特率设为约9 600位/秒(20M晶振 0x81),(18.432M晶振 0x77)
	TXSTA=0X04;			///选择异步高速方式传输8位数据
	RCSTA=0X80;			///允许同步串行口工作
	TRISC6=1;
	TRISC7=1;				///将RC6、RC7设置为输入方式,对外部呈高阻状态
}	
//A/D转换初始化子程序
void	adinitial()
{
	ADCON0=0x89;			//选择A/D通道为RA1,且打开A/D转换器
		      				//在工作状态,使A/D转换时钟为32Tosc
	ADCON1=0X84;			//转换结果右移,及ADRESH寄存器的高6位为"0"
	                 		//把RA1口设置为模拟量输入方式
	//ADIE=1;				    //A/D转换中断允许
	//PEIE=1;					//外围中断允许
	TRISA1=1;				//设置RA1为输入方式
}

void i2c_init()
{
    SSPSTAT=0x00;
    TRISC=0xD8;  //RC3,RC4  input mode
    SSPADD=12;   //计算波特率,clock=OSC/4(SSPADD+1)
    SSPIE=0;
    SSPCON=0x28;    //IIC使能,主模式
}
/////////////////////////////////////////////////////////////////////
void  slavei2c_init()
{
   SSPSTAT=0X00;   //
   TRISC=0xD8;     //RC3,RC4  input mode
   SSPADD=0x7E;    //从机地址-0X7E
   SSPIE=1;        //SSP中断使能
   SSPCON=0X36;    //7位地址,slave-mode,enable-clock,SSP模块使能 
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -