📄 fun.h
字号:
#include "intrins.h"
#include <reg52.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;
sfr AUXR=0x8e;
#define fosc 11059200L
sbit en = P1^1;
sbit dir = P1^2;
sbit s1 = P1^7;
sbit s2 = P1^6;
bit run_flag;//操作锁
unsigned int step; //剩余步数
//升降速表
//设计64步,低速时尽快提速,高速时尽量平顺
unsigned int speedtable[64] =
{ //5~120 r/min
0xf5e0,0xf8e0,0xfaf0,0xfbf0,0xfce0,0xfd23,0xfd78,0xfdac,
0xfdce,0xfe00,0xfe28,0xfebc,0xfece,0xfee0,0xfef2,0xff04,
0xff16,0xff28,0xff2e,0xff34,0xff3a,0xff40,0xff46,0xff4b,
0xff50,0xff54,0xff58,0xff5e,0xff60,0xff62,0xff64,0xff66,
0xff68,0xff6a,0xff6c,0xff6e,0xff70,0xff72,0xff74,0xff76,
0xff78,0xff7a,0xff7c,0xff7e,0xff80,0xff82,0xff83,0xff84,
0xff85,0xff86,0xff87,0xff88,0xff89,0xff8a,0xff8b,0xff8c,
0xff8d,0xff8e,0xff8f,0xff90,0xff91,0xff92,0xff93,0xff94
};
void init_port()
{
///P1.1 P1.2 P1.3强推挽输出 P1.6 P1.7准双向
P1M1 = 0x00;
P1M0 = 0x0e;
}
void init_timer0()
{
TMOD = 0X01; //定时器0模式1,16bit
AUXR |=0x80; //T0x12=1,1T模式
TH0 = 0;
TL0 = 0;
ET0 = 1; //允许T0中断
}
void init_pca()
{
CCON = 0;
CL = 0;
CH = 0;
CMOD = 0x04; //时钟源为T0,得到PWM的频率 = T0 / 256
//占空比50%
CCAP0H = 255 - 255 * 50 / 100;
CCAP0L = CCAP0H;
CCAPM0 = 0x42; //上升沿捕获,PWM使能
CR = 0; // 停止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 + -