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

📄 fun.h

📁 从零开始学51单片机源代码
💻 H
字号:
#include "intrins.h"
#include <reg51.h>	//包含头文件  

//定义端口寄存器	 
sfr P0M0 = 0X93;
sfr P0M1 = 0X94;
sfr P1M0 = 0X91;
sfr P1M1 = 0X92;
sfr P2M0 = 0X95;
sfr P2M1 = 0X96;  
sfr P3M0 = 0Xb1;
sfr P3M1 = 0Xb2; 

//与PCA0有关的寄存器
sfr CCON = 0xd8; //PCA控制寄存器
	sbit CCF0 = CCON^0; //PCA0中断标志位 
	sbit CR = CCON^6;	//运行控制位 
	sbit CF = CCON^7;	//溢出标志 
sfr CMOD = 0xd9; //PCA工作模式寄存器
sfr CL = 0xe9;
sfr CH = 0xf9;
sfr CCAPM0 = 0xda;//PCA0寄存器  
sfr CCAP0L = 0xea;
sfr CCAP0H = 0xfa;
sfr PCAPWM0 = 0xf2;

#define fosc 11059200L	
sbit s1 = P3^2;

unsigned char duty[5] = {0,25,50,75,100}; 
unsigned char duty_level;

void init_int()
{
	IT0 = 1;//设置INT0为下降沿触发 
	EX0 = 1;//允许INT0中断  
}

void init_port()
{
	P1M1 = 0x00;  //P1.3强推挽输出 
	P1M0 = 0x04; 
}

void init_pca()
{
	CCON = 0;
	CL = 0;
	CH = 0;
	CMOD = 0x08; //时钟源为系统时钟,得到PWM的频率 = fosc / 256 = 43.2k
	duty_level = 2;	//占空比50%
	CCAP0H =  255 - 255 * duty[duty_level] / 100;
	CCAP0L =  CCAP0H;
	CCAPM0 = 0x42; //上升沿捕获,PWM使能 
	CR = 1;	//	启动PWM
}

//定义延时函数
void ms_delay(unsigned int t)
{
	unsigned  int  i;
	for (t; t > 0; t--)	//外层循环t次	 
		for (i = 1320;i > 0; i--)	//内层循环110*12次		   
		;
} 

⌨️ 快捷键说明

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