好文档 - 专业文书写作范文服务资料分享网站

C51单片机C语言程序100例 - Keil 

天下 分享 时间: 加入收藏 我要投稿 点赞

(*p)(); }

//通过函数的指针p调用函数led_flow()

// 34

//实例34:用指针数组作为函数的参数显示多个字符串

#include //包含51单片机寄存器定义的头文件

unsignedcharcode str1[]=\ is testedbyDS18B20\语言中,字符串 是作为字符数组来处理的

unsignedcharcode str2[]=\temperatureis:\ //所以,字符串的名字就是 字符串的首地址

unsignedcharcode str3[]=\ Systerm is designedbyZhangSan%unsignedcharcode str4[]=\ dateis2008-9-30\

unsignedchar*p[]={str1,str2,str3,str4};//定义p[4]为指向4个字符串的字符型指 针数组

/************************************************************** 函数功能:延时约150ms

**************************************************************/ voiddelay(void) {

unsignedcharm,n;

for(m=0;m<200;m++) for(n=0;n<250;n++)

;

}

/************************************************************** 函数功能:流水点亮P0口8位LED

**************************************************************/ voidled_display(unsignedchar*x[]) //形参必须为指针数组 {

unsignedchari,j;

for(i=0;i<4;i++)//有4个字符串要显示 {

j=0; //指向待显字符串的第0号元素

while(*(x[i]+j)!='\\0')//只要第i 个字符串的第j 号元素不是结束标志 {

P0=*(x[i]+j);//取得该元素值送到P0口显示 delay(); //调用延时函数 j++; //指向下一个元素 } }

}

226/ 192

/************************************************************** 函数功能:主函数

**************************************************************/ voidmain(void) {

unsignedchari; while(1) {

for(i=0;i<4;i++)

led_display(p);//将指针数组名作实际参数传递 } }

//实例35:字符函数ctype.h 应用举例

#include //包含51单片机寄存器定义的头文件 #include voidmain(void) {

while(1) {

P3=isalpha('_')?0xf0:0x0f;//条件运算,若'_'是英文字母,P3=0xf0 } }

//实例36:内部函数intrins..h 应用举例

#include //包含51单片机寄存器定义的头文件 #include //包含函数isalpha()声明的头文件 /************************************************* 函数功能:延时约150ms

*************************************************/ voiddelay(void) {

unsignedcharm,n; for(m=0;m<200;m++) for(n=0;n<250;n++)

;

}

227/ 192

/************************************************* 函数功能:主函数

*************************************************/ voidmain(void) {

P3=0xfe; //P3=11111110B while(1) {

P3=_crol_(P3,1);// 将P3的二进制位循环左移1 位后再赋给P3 delay(); //调用延时函数 } }

// 37 stdlib.h

//实例37:标准函数stdliib.h 应用举例

#include //包含51单片机寄存器定义的头文件 #include //包含函数isalpha()声明的头文件 /************************************************* 函数功能:延时约150ms

*************************************************/ voiddelay(void) {

unsignedcharm,n; for(m=0;m<200;m++) for(n=0;n<250;n++)

;

}

/************************************************* 函数功能:主函数

*************************************************/ voidmain(void) {

unsignedchari; while(1) {

for(i=0;i<10;i++) //产生10个随机数 {

P3=rand()/160;//将产生的随机数缩小160倍后送P3显示 delay(); } }

228/ 192

}

//实例38:字符串函数striing.h应用举例

#include //包含51单片机寄存器定义的头文件 #include //包含函数isalpha()声明的头文件 voidmain(void) {

unsignedcharstr1[]=\The temperature is :\

unsignedcharstr2[]=\The temperature is 36Centgrade:%unsignedchari;

i=strcmp(str1,str2);//比较两个字符串,并将结果存入i if(i==0) //str1=str2 P3=0x00; else

if(i<0) //str1

P3=0xf0;

else //str1>str2

P3=0x0f; while(1)

; //防止程序“跑飞” }

// 39 2 //实例39:宏定义应用举例2

#include //包含51单片机寄存器定义的头文件 #define F(a,b)(a)+(a)*(b)/256+(b) //带参数的宏定义,a和b 为形参 voidmain(void) {

unsignedchari,j,k; i=40; j=30; k=20;

P3=F(i,j+k); //i 和j+k分别为实参,宏展开时,实参将替代宏定义中的形 参

while(1) ;

}

229/ 192

//实例40:宏定义应用举例2

#include #include voidmain(void) {

P3_0=0; //将P3.0引脚置低电平,LED点亮 P3_1=0; //将P3.0引脚置低电平,LED点亮 P3_2=0; //将P3.0引脚置低电平,LED点亮 P3_3=0; //将P3.0引脚置低电平,LED点亮 P3_4=1; //将P3.4引脚置高电平,LED熄灭 P3_5=1; //将P3.5引脚置高电平,LED熄灭 P3_6=1; //将P3.7引脚置高电平,LED熄灭 P3_7=1; //将P3.7引脚置高电平,LED熄灭 while(1) ; }

//实例41:宏定义应用举例3

#include //将MAX宏定义为字符串100 #defineMAX100 voidmain(void) { //如果字符串100大于80

#if MAX>80 //P3口低四位LED 点亮 P3=0xf0; #else //否则,P3口高四位LED 点亮 P3=0x0f; //结束本次编译 #endif

}

33/ 192 0

C51单片机C语言程序100例 - Keil 

(*p)();}//通过函数的指针p调用函数led_flow()//34//实例34:用指针数组作为函数的参数显示多个字符串#include//包含51单片机寄存器定义的头文件unsignedcharco
推荐度:
点击下载文档文档为doc格式
8pn4b0vxbc6m3qp9xkwe9ersa9pruq00xab
领取福利

微信扫码领取福利

微信扫码分享