智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 944|回复: 0
打印 上一主题 下一主题

我的报告

[复制链接]

1

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
威望
245
贡献
46
兑换币
18
注册时间
2010-5-6
在线时间
3 小时
跳转到指定楼层
1#
发表于 2010-5-6 15:47:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*=========================================================
        ProjectName:        SCI_TEST_V
        Description:        A SCI TEST PROGRAM for 9S12XS128,CW4.7
        Author     :        lucev       
        Date           :        2009.2.15
        Notes           :       
==========================================================*/


#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"



/*=========================================================
        MACRO  DEFINE ( FirstSndThd )
==========================================================*/

#define BusClock        8000000                                //8MHz
#define        BaudRate        9600                                //SCI baud rate (hz)




/*=========================================================
        GLOBAL        VIRIABLE DEFINE ( FirstSndThd )
==========================================================*/






/*=========================================================
        FUNCTION DECLARE ( Module_Func_ADDITION() ) ( GE = general )
==========================================================*/

void        GE_Delay( unsigned int x );                //延时控制

void        SCI_Init( void );                                //SCI初始化函数,波特率根据宏定义
void        SCI_Tx( byte TxData );                        //SCI发送数据函数
void send_int_type(int data_int)
        {  int i;
           int data1;
           int data[2];
           data1=data_int;
           data[0]=data1>>8;
           data[1]=data1;
          for(i=0;i<2;i++)
          {  
                SCI_Tx(data[i]);
                       
          }

        }
//byte        SCI_Rx( void );                                        //SCI接收数据函数
interrupt        void        SCI_Rx_IRS( void );        //SCI接收中断处理【回显】函数





/*==========================================================
        FUNCTION DEFINE
===========================================================*/

void main(void)
{
        DisableInterrupts;
       
        SCI_Init();
       
        EnableInterrupts;
       
        for( ; ; )
        {
    send_int_type(12.34*10);
    GE_Delay( 157);
        }

}


void        GE_Delay( unsigned int x )
{
        unsigned int i,j;
        for( i=0;i<=x;i++ )
                for( j=0;j<=10000;j++ )
                        ;
}

void        SCI_Init( void )
{
        SCI0BDL        = ( byte ) ( BusClock / BaudRate / 16 ); //必须/16,不能写出后两项相乘
        SCI0CR1        = 0x00;                                                //8位数据位,1位停止位,无校验
        SCI0CR2        = 0x2C;                                                //接收中断使能,使能发送与接收       
}

void        SCI_Tx( byte TxData )
{
        unsigned char        ReadStatus1;
       
//        ReadStatus1        = SCI0SR1;                                //为清除标志位,读状态寄存器【下次写入后完全清除】
        SCI0DRH        = 0;
        SCI0DRL        = TxData;                                        //将待发数据写入寄存器
        while( !SCI0SR1_TDRE );                                //等待发送结束
        ReadStatus1        = SCI0SR1;                                //为清除标志位,读状态寄存器【下次写入后完全清除】
}

/*
byte        SCI_Rx( void );
*/


//不能有返回值
interrupt 20 void SCI_Rx_IRS( void )
{
        byte        ReadStatus1 , RxData;
       
        DisableInterrupts;
       
        ReadStatus1        = SCI0SR1;
        RxData        = ( byte ) SCI0DRL;

        SCI_Tx( RxData );
               
        EnableInterrupts;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-15 13:19 , Processed in 0.059477 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表