C51单片机C语言程序100例_Keil(5)

2018-11-19 21:56

unsignedchari;

unsignedcharTab[ ]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,

0xFE,0xFC,0xFB,0xF0,0xE0,0xC0,0x80,0x00, 0xE7,0xDB,0xBD,0x7E,0x3C,0x18,0x00,0x81, 0xC3,0xE7,0x7E,0xBD,0xDB,0xE7,0xBD,0xDB}; //流水灯控制码

unsignedchar*p; //定义无符号字符型指针

p=Tab; //将数组首地址存入指针p while(1) {

for(i=0;i<32;i++) //共32个流水灯控制码 {

P0=*(p+i); //*(p+i)的值等于a[i] delay150ms(); //调用150ms 延时函数 } }

}

// 29 P0 P1

//实例29:用P0 、P1 口显示整型函数返回值

#include

/************************************************* 函数功能:计算两个无符号整数的和

*************************************************/ unsignedintsum(inta,intb) {

unsignedints; s=a+b; return(s); }

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

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

unsignedz;

z=sum(2008,2009);

P1=z/256; //取得z 的高8位 P0=z%6; //取得z的低8 位 while(1) ;

221/ 192

}

//实例30:用有参函数控制P0 口8位LED流水速度

#include

/************************************************* 函数功能:延时一段时间

*************************************************/ voiddelay(unsignedcharx) {

unsignedcharm,n; for(m=0;m

;

}

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

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

unsignedchari;

unsigned charcodeTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

//流水灯控制码

while(1) {

//快速流水点亮LED

for(i=0;i<8;i++)//共8个流水灯控制码 {

P0=Tab[i];

delay(100); //延时约60ms,(3*100*200=60000μs) }

//慢速流水点亮LED

for(i=0;i<8;i++)//共8个流水灯控制码 {

P0=Tab[i];

delay(250); //延时约150ms,(3*250*200=150000μs) } } }

22/ 192 2

// 31

//实例31:用数组作函数参数控制流水花样

#include

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

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

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

;

}

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

*************************************************/ voidled_flow(unsignedchara[8]) {

unsignedchari; for(i=0;i<8;i++) {

P0=a[i]; delay(); } }

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

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

unsigned charcodeTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

//流水灯控制码

led_flow(Tab);

}

// 32 P0 8 LED

//实例32:用指针作函数参数控制P0口8 位LED流水点亮

#include

223/ 192

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

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

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

;

}

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

*************************************************/ voidled_flow(unsignedchar*p) //形参为无符号字符型指针 {

unsignedchari; while(1) {

i=0; //将i 置为0,指向数组第一个元素

while(*(p+i)!='\\0')//只要没有指向数组的结束标志 {

P0=*(p+i);// 取的指针所指变量(数组元素)的值,送P0口 delay(); //调用延时函数

i++; //指向下一个数组元素 } } }

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

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

unsigned charcodeTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,

0xFF,0xFE,0xFC,0xFB,0xF0,0xE0,0xC0,0x80,

0x00,0xE7,0xDB,0xBD,0x7E,0xFF,0xFF,0x3C,

0x18,0x0,0x81,0xC3,0xE7,0xFF,

0xFF,0x7E};

//流水灯控制码

unsignedchar*pointer;

224/ 192

pointer=Tab;

led_flow(pointer); }

// 33 P1

//实例33:用函数型指针控制P1口灯花样

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

unsignedcharcode Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量

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

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

unsignedcharm,n;

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

;

}

/************************************************************** 函数功能:流水灯左移

**************************************************************/ voidled_flow(void) {

unsignedchari;

for(i=0;i<8;i++) //8位控制码 {

P0=Tab[i]; delay(); }

}

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

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

void(*p)(void);//定义函数型指针,所指函数无参数,无返回值 p=led_flow; //将函数的入口地址赋给函数型指针p while(1)

225/ 192


C51单片机C语言程序100例_Keil(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:【2068·南京西路公馆】销售说辞2.0

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: