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

2018-11-19 21:56

// 14 P0

//实例14:用P0 口显示条件运算结果

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

P0=(8>4)?8:4;//将条件运算结果送P0口,P0=8=00001000B while(1)

; //设置无限循环,防止程序“跑飞” }

//实例15:用P0口显示按位\异或\运算结果

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

P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=00001000B while(1)

; //设置无限循环,防止程序“跑飞” }

// 16 P0

//实例16:用P0显示左移运算结果

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

P0=0x3b<<2;//将左移运算结果送P0口,P0=11101100B=0xec while(1)

; //无限循环,防止程序“跑飞” }

//实例17:\万能逻辑电路\实验

#include //包含单片机寄存器的头文件 sbitF=P1^4; //将F 位定义为 P1.4

111/ 192

sbitX=P1^5; //将X位定义为 P1.5 sbitY=P1^6; //将Y 位定义为 P1.6 sbitZ=P1^7; //将Z 位定义为 P1.7 voidmain(void) {

while(1) {

F=((~X)&Y)|Z;//将逻辑运算结果赋给F ; } }

//实例18:用右移运算流水点亮P1 口8位LED

#include //包含单片机寄存器的头文件 /***************************** 函数功能:延时一段时间

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

unsignedintn;

for(n=0;n<30000;n++)

; }

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

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

unsignedchari; while(1) {

P1=0xff; delay();

for(i=0;i<8;i++)//设置循环次数为8 {

P1=P1>>1; //每次循环P1的各二进位右移1位,高位补0 delay(); //调用延时函数 } }

}

112/ 192

// 19 iff P0 8 LED

//实例19:用iff语句控制P0 口8位LED的流水方向

#include //包含单片机寄存器的头文件 sbitS1=P1^4; //将S1位定义为P1.4 sbitS2=P1^5; //将S2位定义为P1.5 /***************************** 函数功能:主函数

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

while(1) {

if(S1==0) //如果按键S1按下

P0=0x0f; //P0口高四位LED 点亮 if(S2==0) //如果按键S2按下

P0=0xf0; //P0口低四位LED 点亮 } }

//实例20:用swtich语句的控制P0口8 位LED 的点亮状态

#include //包含单片机寄存器的头文件 sbitS1=P1^4; //将S1位定义为P1.4 /***************************** 函数功能:延时一段时间

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

unsignedintn;

for(n=0;n<10000;n++)

;

}

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

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

unsignedchari;

113/ 192

i=0; //将i 初始化为0 while(1) {

if(S1==0) //如果S1键按下 {

delay(); //延时一段时间

if(S1==0)//如果再次检测到S1键按下 i++; //i自增1

if(i==9) //如果i=9,重新将其置为1 i=1;

} switch(i//使用多分支选择语句 ) {

case 1:P0=0xfe; //第一个LED 亮

break;

case 2:P0=0xfd; //第二个LED亮

break;

case 3:P0=0xfb; //第三个LED亮

break;

case 4:P0=0xf7; //第四个LED亮

break;

case 5:P0=0xef; //第五个LED亮

break;

case 6:P0=0xdf; //第六个LED亮

break;

case 7:P0=0xbf; //第七个LED亮

break;

case 8:P0=0x7f; //第八个LED亮

break;

default: //缺省值,关闭所有LED

P0=0xff;

}

}

}

// 21 for

//实例21:用for 语句控制蜂鸣器鸣笛次数

#include //包含单片机寄存器的头文件 sbitsound=P3^7; //将sound 位定义为P3.7

/**************************************** 函数功能:延时形成1600Hz 音频

114/ 192

****************************************/ voiddelay1600(void) {

unsignedcharn;

for(n=0;n<100;n++)

;

}

/**************************************** 函数功能:延时形成800Hz 音频

****************************************/ voiddelay800(void) {

unsignedcharn;

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

;

}

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

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

unsignedinti; while(1) {

for(i=0;i<830;i++) {

sound=0; //P3.7输出低电平 delay1600();

sound=1; //P3.7输出高电平 delay1600(); }

for(i=0;i<200;i++) {

sound=0; //P3.7输出低电平 delay800();

sound=1; //P3.7输出高电平 delay800(); }

} }

11/ 192 5


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

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

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

马上注册会员

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