打印
[ZLG-MCU]

901不工作请帮忙看看

[复制链接]
1254|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoxin1986|  楼主 | 2009-4-18 00:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
kenand| | 2009-4-18 10:08 | 只看该作者

re

 http://www.zlgmcu.com/download/downs.asp?ID=1476

使用特权

评论回复
板凳
linhai1986| | 2009-4-18 14:28 | 只看该作者

最简的测试程序

#include "reg935.h"
#include <intrins.h> //包括有下面可用函数_nop_,_cror_,_iror_,_lror_,_crol_,_chkfloat_等
#include <absacc.h>  //包括有下面可用函数CBYTE,DBYTE,XBYTE等
#define uchar unsigned char
#define uint unsigned int  

void Delay1ms(unsigned int t); 
void sendbyte(unsigned char value);

void main (void)
{
unsigned char x = 0;

//DIVM = 3 ;   //进行6分频和IO配置成双向口方式,即变成标准单片机了

P0M1 = 0x00;
P0M2 = 0x00;

P1M1 = 0x00;
P1M2 = 0x00;

P2M1 = 0x00;
P2M2 = 0x00;

P3M1 = 0x00;
P3M2 = 0x00;  

  while (1)
  {
 // for (x=0; x<15; x++)
 // {
 // }
  }
}
  
/********************************************************************
** 函数名称:Delay1ms
** 函数功能:LPC900用内部RC,占用TO延时
** 入口参数:要延时的时间
** 出口参数:无
**********************************************************************/
/*
void Delay1ms(unsigned int t)  

 unsigned char tempTMOD;
 tempTMOD        =TMOD;
 TMOD           &=0xF0;
 TMOD           |=0x01;
 do
 {
  TH0         =0xF1;
  TL0         =0x60;
  TR0         =1;
  while(TF0 == 0);
  TF0         =0;
  TR0         =0;
 }while(--t);
 TMOD            =tempTMOD;
}
*/  

 

/********************************************************************
** 函数名称:UartIntIni
** 函数功能:UART初始化,打开串行中断,串口要随时处于中断的状态
    用内部晶振,9600,用T1作为波持率发生器
    硬件上要接上TXD,RXD引脚
** 入口参数:无
** 出口参数:无
**********************************************************************/ 
/*
static unsigned char  UartGetChar=0;
static bit UartIntFlag=0; 
void UartIntIni (void)
{
 TMOD&= 0x0F;
 TMOD|= 0X20;
 TH1  = 0xF4; 
 TL1  = 0XF4;
    TR1  = 1;
 SCON = 0X50; 
 ES   = 1;
 EA   = 1;
}
void UartInt (void) interrupt 4
{
 EA = 0;
 if (RI == 1)
 {
  UartGetChar = SBUF;
  RI = 0;
  UartIntFlag = 1;
 }
 P00  =  ~P00; 
 EA = 1;
}
*/


/********************************************************************
** 函数名称:SendAndGetByte
** 函数功能:查询法来实现向串**换数据
    调用这个函数,先向PC送参数value,然后等待PC送数,之后把数据回送到PC表示应答,最后收到的数据作为返回值。
    即如果用串口助手查看当处于等待的时候,光标前的一个数是函数的参数,当点击发送数据的按键后,则再出现一个数,
    这个数一方面表明你刚才发送的数,另一方面,作为函数的返回值加以利用。
  ---- 用内部晶振,9600,用T1作为波持率发生器---- 
    硬件上要接上TXD,RXD引脚。
**********************************************************************/ 
/*用专用的波特率发生器,使用内部7.3768MHz晶振,9600波特率*/
/*
#define  BRGR1_DAT 0x02
#define  BRGR0_DAT 0xF0  
void sendbyte(unsigned char value)
{   P1M1 = 0x00;    // 设置P1口为准双向口
 P1M2 = 0x00;
    
 SCON = 0x50;    // 设置串口工作模式
 BRGCON = 0x00;   // 关波特率发生器
 BRGR1 = BRGR1_DAT;   // 设置波特率值
 BRGR0 = BRGR0_DAT;  
 BRGCON = 0x03;   // 起动波特率发生器
 
 SBUF  = value;
 while (TI == 0);
 TI    =  0;   
} */


/*用T1作为波特率发生器,使用内部7.3768MHz晶振,9600波特率*/
/*
void sendbyte(unsigned char value)
{
 TMOD = 0X20;
 TH1  = 0xF4; 
 TL1  = 0XF4;
    TR1  = 1;
 SCON =0X50; 

 SBUF  = value;
 while (TI == 0);
 TI    =  0;    

*/   
/*
unsigned char SendAndGetByte(unsigned char value) 
{
 bit tempTR1;
 unsigned char tempTMOD,tempTH1,tempTL1,tempSCON,GetByte;

 tempTR1  = TR1;
 tempTMOD = TMOD; 
 tempTH1  = TH1;
 tempTL1  = TL1;
 tempSCON = SCON;   

 TMOD = 0X20;
 TH1  = 0xF4; 
 TL1  = 0XF4;
    TR1  = 1;
 SCON =0X50; 

 SBUF  = value;
 while (TI == 0);
 TI    =  0;
 while (RI == 0);
 RI    = 0;
 GetByte  = SBUF;
 SBUF  = GetByte;
 while (TI == 0);
 TI    =  0;  

 TR1 = 0;

 TR1  = tempTR1;
 TMOD = tempTMOD;
 TH1  = tempTH1;
 TL1  = tempTL1;
 SCON = tempSCON;  
 TR1 = tempTR1; 

 return GetByte;

*/

/*
提供一些常用的语句
LED3A_B(LED_yellow);
Delay1ms(500);
LED3A_B(LED_off);
Delay1ms(500); 

bit myflag = 0;
if( myflag == 0)
{
LED3A_B(LED_yellow); 
}
else
{
LED3A_B(LED_off); 
}
myflag = ~myflag;
*/
/*
//value 为0灭,为1点红灯,为2点绿灯,为3点橙灯。
//双色二极管,P0.6,P0.7,推挽,01,高电平亮,要接上LED3A和LED3B 
void LED3A_B (unsigned char value)  
{
    #define LED_off    0
 #define LED_red    1
    #define LED_green  2
    #define LED_yellow 3  

 P0M1 &=0x3f;        //双推挽方式去点亮双色二极管  
 P0M2 |=0xC0; 
 switch (value)
 {
  case 0:    P0  &= 0x3F; break; 
  case 1:  P0  &= 0x3F; P0  |= 0x40; break;  
  case 2:     P0  &= 0x3F; P0  |= 0x80; break; 
     case 3:     P0  |= 0xC0; break; 
  default:    break;  
 }
}
*/  

使用特权

评论回复
地板
linhai1986| | 2009-4-18 14:29 | 只看该作者

配置字中的状态字要设置成0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝