单片机C语言程序设计教程与实训源代码及图片 单片机C语言程序设计教程与实训源代码及图片
源代码在线查看: l3-17.c
/**********************************************************************
程序名称:L3-17.c
程序功能:演示标准库函数scanf( )、printf( )、cos( )、_crol_( )、_cror_( )的使用
程序作者:张三
创建时间:2008-3-28
**********************************************************************/
#include
#include
#include
#include
#define PAI 3.14159
/**********************************************************************
函数名称:serial_Init( void )
函数功能:初始化单片机的串行口,以便在Serial #1窗口中观察程序运行结果
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void serial_init( void )
{
SCON = 0x50; // 串行口:工作模式1
TMOD |= 0x20; // 定时器T1:工作模式2
TH1 = 0xf3; // 波特率为2400时T1的初值
TR1 = 1; // 启动T1
TI = 1; // 允许发送数据
}
/**********************************************************************
函数名称:tst_scanf( void )
函数功能:从串行口读数据
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
unsigned int tst_scanf( void )
{
unsigned int ch;
int args_read;
printf ("\nEnter a number (0 ~ 3): ");
args_read = scanf ("%d", &ch);
return ch+args_read;
}
/**********************************************************************
函数名称:main( void )
函数功能:主函数,根据串行口输入的数据做相应的计算
调用函数:serial_init( )、tst_scanf( )、cos( )、_crol_( )
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void main( void )
{
unsigned int num, ch;
float x;
serial_init( );
for( ; ; ){
num=tst_scanf( )-1;
switch( num ){
case 1: ch=num;
x=cos(ch/PAI); // 调用数学函数cos( )
break;
case 2: ch=_crol_( num, 1 ); // 调用内部函数_crol_( )
x=cos(ch/PAI);
break;
case 3: ch=_cror_( num, 3 ); // 调用内部函数_cror_( )
x=cos(ch/PAI);
break;
default: num=0;
}
if( num!=0 ) printf("\nCase%d: ch=%d, x=%f \n", num, ch, x );
}
}