这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » 管教没有输出

共6条 1/1 1 跳转至

管教没有输出

菜鸟
2009-09-02 16:58:00     打赏

串口通信后 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);
 }
}
求解




关键词: 管教     没有     输出     #define     uchar     函数    

助工
2009-09-02 17:15:54     打赏
2楼

如果是UART模式,确保UART/SPI脚上拉


菜鸟
2009-09-02 18:03:13     打赏
3楼
已经接了啊 你的好使了吗

助工
2009-09-02 19:04:39     打赏
4楼

是接到高电平吗?


菜鸟
2009-09-02 19:13:37     打赏
5楼
UART模式的时候需要有奇校验,请再仔细阅读一下手册

菜鸟
2009-09-02 20:02:20     打赏
6楼
奇校验 怎么该啊 scon=0xd0 不是改过了吗

共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]