串口通信后 ch1dcpwm chidcdir 均无输出 1.29.30脚均已接10k电阻接地了
通信程序如下
#include<reg51.h>
#include<7279.h>
#define uchar unsigned char
uchar serialReceiveChar;
/*********************************************************************************************************
函数声明
*********************************************************************************************************/
void Serial_Init(void);
void Send_Char(uchar ch);
void Serial_Send(uchar add,uchar dat);
uchar Serial_Receive(uchar add);
/*********************************************************************************************************
MMC-1芯片寄存器地址
*********************************************************************************************************/
#define CH1MODE 0x00
#define CH1FREQ 0x01
#define CH1STEP 0x02
#define CH1DUTY 0x03
#define CH2MODE 0x04
#define CH2FREQ 0x05
#define CH2STEP 0x06
#define CH2DUTY 0x07
#define CH3MODE 0x08
#define CH3FREQ 0x09
#define CH3STEP 0x0A
#define CH3DUTY 0x0B
#define SYNMODE 0x0C
/*********************************************************************************************************
串口通信初始化
*********************************************************************************************************/
void Serial_Init()
{
TMOD = 0x20;
TH1 = 0xFD;
IE |= 0x90; //打开串口中断,cpu中断
PCON &=0x7f;
TR1=1;
SCON = 0xD0;
}
/*********************************************************************************************************
** 函数名称 :send_char()
** 函数功能 :向串口发送一个字符
** 入口参数 :ch
** 出口参数 :无
*********************************************************************************************************/
void Send_Char(uchar ch)
{
SBUF=ch;
while (TI == 0);
TI = 0 ;
}
/*********************************************************************************************************
** 函数名称 :serial()
** 函数功能 :串口接收中断函数
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************/
void Serial() interrupt 4
{
while (RI)
{
RI = 0 ;
serialReceiveChar = SBUF;
}
}
/*********************************************************************************************************
** 函数名称 :Serial_Send()
** 函数功能 :串口接收中断函数
** 入口参数 :ucahr add,uchar dat
** 出口参数 :无
*********************************************************************************************************/
void Serial_Send(uchar add,uchar dat)
{
int i = 1500;
Send_Char( 0x05<<4 | add );
while( --i > 0 );
Send_Char( dat );
}
/*********************************************************************************************************
** 函数名称 :Serial_Receive()
** 函数功能 :串口接收中断函数
** 入口参数 :ucahr add,uchar dat
** 出口参数 :无
*********************************************************************************************************/
uchar Serial_Receive(uchar add)
{
Send_Char( 0x0A<<4 | add );
while( 0 == RI );
return(serialReceiveChar);
}
/*********************************************************************************************************
** Name: delay10ms(uchar a)
** Function: 10ms延迟函数
** 输 入: a : 延时长短的变量
** 输 出: 无
*********************************************************************************************************/
void delay10ms(unsigned char a)
{
unsigned char i;
unsigned int j;
for (i = 0;i < a; i++)
for (j = 0; j < 0x390; j++)
;
}
void main()
{
int i=60;
send_byte_7279(CMD_RESET); //显示复位
write7279(DEC0DE0,0);
write7279(DEC0DE0+1,0);
write7279(DEC0DE0+2,0);
write7279(DEC0DE0+3,0);
write7279(DEC0DE0+4,0);
write7279(DEC0DE0+5,0);
while(--i>0);
Serial_Init();
while(1)
{
Serial_Send(CH1MODE,0xC0);
Serial_Send(CH1DUTY,0xF0);
delay10ms(200);
}
}
求解