一、实验内容
手机APP红,绿,蓝显示。
二、实验器材
STC15W408AS芯片
三、实验环境
Keil4
四、实验流程
实验要求使用手机APP控制三路PWM从而控制全彩LED红黄蓝的输出显示,那我们使TXD, RXD分别连接串口转TTL通过OTG接口转换连接到手机上,并选择P20, P21, P22三个I/O口作为PWM输出引脚分别接到共阳多彩LED灯的R, G, B引脚,完成电路连接。
五、实验电路
六、实验程序
#include"2.h"
#include"intrins.h"
#define FOSC 24000000L
#define BAUD 9600
#define NONE_PARITY 0
#define PARITYBIT NONE_PARITY
#define u8 BYTE
#define u16 WORD
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long u32;
#define CCP_S0 0x10
#define CCP_S1 0x20
BYTE a;
BYTE BLINGBLING[5];
BYTE i=0;
BYTE JIANYANWEI=0;
bit busy;
void SendData(BYTE dat);
void SendString(char *s);
void main(void)
{
SCON = 0x50;
T2L = (65536 - (FOSC/4/BAUD));
T2H = (65536 - (FOSC/4/BAUD))>>8;
AUXR = 0x14;
AUXR |= 0x01;
ES = 1;
EA=1;
SendData(0xff);
ACC=AUXR1;
ACC&=~(CCP_S0|CCP_S1);
AUXR1=ACC;
CCON=0;
CL=0;
CH=0;
CMOD=0x02;
CR=1;
while(1)
{
if(JIANYANWEI==1)
{
SendData(0x01);
PCA_PWM0=0x00;
CCAP0H=CCAP0L=BLINGBLING[1];
CCAPM0=0x42;
PCA_PWM1=0x00;
CCAP1H=CCAP1L=BLINGBLING[2];
CCAPM1=0x42;
PCA_PWM2=0x00;
CCAP2H=CCAP2L=BLINGBLING[3];
CCAPM2=0x42;
JIANYANWEI=0;
}
}
}
void Uart() interrupt 4 using 1
{
if (RI)
{
RI = 0;
a=SBUF;
BLINGBLING=SBUF;
i++;
if (i>=5)
{
JIANYANWEI=1;
i=0;
}
P22 = RB8;
}
if (TI)
{
TI = 0;
busy = 0;
}
}
void SendData(BYTE dat)
{
while (busy);
ACC = dat;
if (P)
{
#if (PARITYBIT == 1)
TB8 = 0;
#elif (PARITYBIT == 2)
TB8 = 1;
#endif
}
else
{
#if (PARITYBIT == 1)
TB8 = 1;
#elif (PARITYBIT == 2)
TB8 = 0;
#endif
}
busy = 1;
SBUF = ACC;
}
|