📄 main.c.bak
字号:
/************************************************************************
DMX512接收解码程序
唐小正2006年9月19日
王雷2009年04月09日
使用单片机:STC12C5404 晶振8M
最后修改:2007年12月2日
版本说明:适用于高电平pwm输出
485方向输出正向
拨码开关版本
R: PWM1 P3.5 - PIN11
G: PWM0 P3.7 - PIN17
B: PWM2 P2.0 - PIN26
************************************************************************/
/************************************************************************
485芯片控制说明
RE和DE并在一起
当为高电平时,为发送
低电平为接收
************************************************************************/
#include "5410ad.h"
sbit RX_D = P3^2; // 接到了INT0脚
sbit RX_EN = P2^2; // 接受允许,低电平有效
unsigned char time_out_1s; // 1秒超时标志
unsigned int frame_num; // 帧计数
unsigned char timer0_counter; // 时间计数
unsigned int addr; //灯的DMX512地址 ,当前灯的地址
/************************************************************************
函数功能:初始化PWM口
备注 :无
************************************************************************/
void PWM_Init(void)
{
CMOD = 0x00; //时钟源选择内部时钟fosc/12
// pwm频率为8M/(12*256) = 2.6k
CL = 0; CH = 0;
CCAPM0 = 0x42; //设置为PWM模式
CCAPM1 = 0x42;
CCAPM2 = 0x42;
PCA_PWM0 = 0x00;
PCA_PWM1 = 0x00;
PCA_PWM2 = 0x00;
CCAP0L = 255; CCAP0H = 255;//设置PWM初值
CCAP1L = 255; CCAP1H = 255;
CCAP2L = 255; CCAP2H = 255;
CR = 1; // 启动pwm
}
/************************************************************************
函数功能:初始化串口
************************************************************************/
void UART_Init(void)
{
SCON = 0XD0; // 1101 0000: SM0,SM1=11,方式3,允许接收
TMOD = 0X21; // 定时器1为自动重装,定时器0为16位
PCON |= 0X80; // SMOD=1,波特率加倍
TH1 = 254; // 设置波特率 250 000
AUXR |= 0X40; // T1速度为12倍标准51
// 计算公式
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -