收藏 分销(赏)

51单片机C语言编程100例.doc

上传人:二*** 文档编号:4479619 上传时间:2024-09-24 格式:DOC 页数:349 大小:757KB 下载积分:5 金币
下载 相关 举报
51单片机C语言编程100例.doc_第1页
第1页 / 共349页
本文档共349页,全文阅读请下载到手机保存,查看更方便
资源描述
<p>51单片机C语言编程100例 目 录 实例3:用单片机控制第一个灯亮 3 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 3 实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 4 实例6:使用P3口流水点亮8位LED 4 实例7:通过对P3口地址的操作流水点亮8位LED 5 实例8:用不同数据类型控制灯闪烁时间 6 实例9:用P0口、P1 口分别显示加法和减法运算结果 8 实例10:用P0、P1口显示乘法运算结果 8 实例11:用P1、P0口显示除法运算结果 9 实例12:用自增运算控制P0口8位LED流水花样 9 实例13:用P0口显示逻辑”与”运算结果 9 实例14:用P0口显示条件运算结果 10 实例15:用P0口显示按位&quot;异或&quot;运算结果 10 实例16:用P0显示左移运算结果 10 实例17:&quot;万能逻辑电路&quot;实验 11 实例18:用右移运算流水点亮P1口8位LED 11 实例19:用if语句控制P0口8位LED的流水方向 12 实例20:用swtich语句的控制P0口8位LED的点亮状态 12 实例21:用for语句控制蜂鸣器鸣笛次数 14 实例22:用while语句控制LED 15 实例23:用do—while语句控制P0口8位LED流水点亮 15 实例24:用字符型数组控制P0口8位LED流水点亮 16 实例25: 用P0口显示字符串常量 17 实例26:用P0 口显示指针运算结果 18 实例27:用指针数组控制P0口8位LED流水点亮 18 实例28:用数组的指针控制P0 口8 位LED流水点亮 19 实例29:用P0 、P1口显示整型函数返回值 20 实例30:用有参函数控制P0口8位LED流水速度 21 实例31:用数组作函数参数控制流水花样 22 实例32:用指针作函数参数控制P0口8位LED流水点亮 23 实例33:用函数型指针控制P1口灯花样 24 实例34:用指针数组作为函数的参数显示多个字符串 25 实例35:字符函数ctype。h应用举例 26 实例36:内部函数intrins。h应用举例 26 实例37:标准函数stdlib.h应用举例 27 实例38:字符串函数string.h应用举例 28 实例39:宏定义应用举例2 28 实例40:宏定义应用举例2 29 实例41:宏定义应用举例3 29 实例42:用定时器T0查询方式P2口8位控制LED闪烁 30 实例43:用定时器T1查询方式控制单片机发出1KHz音频 30 实例44:将计数器T0计数的结果送P1口8位LED显示 31 实例45:用定时器T0的中断控制1位LED闪烁 32 实例46:用定时器T0的中断实现长时间定时 32 实例47:用定时器T1中断控制两个LED以不同周期闪烁 33 实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频 34 实例49:用定时器T0的中断实现&quot;渴望”主题曲的播放 35 实例50—1:输出50个矩形脉冲 38 实例50-2:计数器T0统计外部脉冲数 39 实例51-2:定时器T0的模式2测量正脉冲宽度 39 实例52:用定时器T0控制输出高低宽度不同的矩形波 40 实例53:用外中断0的中断方式进行数据采集 41 实例54—1:输出负脉宽为200微秒的方波 42 实例54-2:测量负脉冲宽度 42 实例55:方式0控制流水灯循环点亮 43 实例56-1:数据发送程序 44 实例56—2:数据接收程序 45 实例57—1:数据发送程序 46 实例57-2:数据接收程序 48 实例58:单片机向PC发送数据 48 实例59:单片机接收PC发出的数据 50 实例60:用LED数码显示数字5 51 实例61:用LED数码显示器循环显示数字0~9 51 实例62:用数码管慢速动态扫描显示数字”1234” 52 实例63:用LED数码显示器伪静态显示数字1234 52 实例64:用数码管显示动态检测结果 53 实例65:数码秒表设计 55 实例66:数码时钟设计 57 实例67:用LED数码管显示计数器T0的计数值 60 实例68:静态显示数字“59” 62 实例69:无软件消抖的独立式键盘输入实验 62 实例70:软件消抖的独立式键盘输入实验 62 实例71:CPU控制的独立式键盘扫描实验 63 实例72:定时器中断控制的独立式键盘扫描实验 66 实例73:独立式键盘控制的4级变速流水灯 70 实例74:独立式键盘的按键功能扩展:”以一当四” 72 实例75:独立式键盘调时的数码时钟实验 73 实例76:独立式键盘控制步进电机实验 78 实例77:矩阵式键盘按键值的数码管显示实验 80 实例78:矩阵式键盘按键音 83 实例79:简易电子琴 85 实例80:矩阵式键盘实现的电子密码锁 91 实例81:用LCD显示字符’A’ 94 实例82:用LCD循环右移显示”Welcome to China” 97 实例83:用LCD显示适时检测结果 100 实例84:液晶时钟设计 104 实例85:将数据”0x0f”写入AT24C02再读出送P1口显示 110 实例86:将按键次数写入AT24C02,再读出并用1602LCD显示 115 实例87:对I2C总线上挂接多个AT24C02的读写操作 122 实例88:基于AT24C02的多机通信 &nbsp;读取程序 127 实例88:基于AT24C02的多机通信 写入程序 131 实例90:DS18B20温度检测及其液晶显示 142 实例91:将数据&quot;0xaa”写入X5045再读出送P1口显示 151 实例92:将流水灯控制码写入X5045并读出送P1口显示 155 实例93:对SPI总线上挂接多个X5045的读写操作 158 实例94:基于ADC0832的数字电压表 163 实例95:用DAC0832产生锯齿波电压 169 实例96:用P1口显示红外遥控器的按键值 169 实例97:用红外遥控器控制继电器 172 实例98:基于DS1302的日历时钟 174 实例99:单片机数据发送程序 183 实例100:电机转速表设计 184 模拟霍尔脉冲 189 /*函数的使用和熟悉*/ //实例3:用单片机控制第一个灯亮 #include&lt;reg51.h〉 &nbsp;//包含51单片机寄存器定义的头文件 void main(void) &nbsp;{ &nbsp;while(1) &nbsp; &nbsp; &nbsp;//无限循环 P1=0xfe; &nbsp; //P1=1111 1110B,即P1.0输出低电平 &nbsp;} //实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 #include〈reg51。h〉 &nbsp; &nbsp;//包含单片机寄存器的头文件 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) &nbsp; &nbsp; &nbsp; &nbsp;//两个void意思分别为无需返回值,没有参数传递 { &nbsp;unsigned int i; &nbsp; &nbsp; &nbsp; //定义无符号整数,最大取值范围65535 &nbsp;for(i=0;i〈20000;i++) &nbsp;//做20000次空循环 &nbsp; &nbsp; &nbsp; &nbsp;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //什么也不做,等待一个机器周期 } /******************************************************* 函数功能:主函数 (C语言规定必须有也只能有1个主函数) ********************************************************/ void main(void) { &nbsp;while(1) &nbsp; &nbsp; &nbsp;//无限循环 &nbsp; { &nbsp;P1=0xfe; &nbsp; //P1=1111 1110B, P1.0输出低电平 &nbsp;delay(); &nbsp; //延时一段时间 &nbsp;P1=0xff; &nbsp; //P1=1111 1111B, P1。0输出高电平 &nbsp;delay(); &nbsp;//延时一段时间 } } //实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 #include&lt;reg51。h〉 &nbsp; //包含单片机寄存器的头文件 /******************************************************* 函数功能:主函数 (C语言规定必须有也只能有1个主函数) ********************************************************/ void main(void) { &nbsp; &nbsp;while(1) &nbsp; //无限循环 &nbsp;{ P1=0xff; &nbsp; &nbsp;// P1=1111 1111, 熄灭LED &nbsp; &nbsp;P0=P1; // 将 P1口状态送入P0口 P2=P1; // 将 P1口状态送入P2口 &nbsp; &nbsp; &nbsp; P3=P1; // 将 P1口状态送入P3口 &nbsp;} } //实例6:使用P3口流水点亮8位LED #include&lt;reg51.h〉 &nbsp; //包含单片机寄存器的头文件 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) &nbsp; { &nbsp;unsigned char i,j; &nbsp; for(i=0;i〈250;i++) for(j=0;j&lt;250;j++) &nbsp; &nbsp; ; } /******************************************************* 函数功能:主函数 ********************************************************/ void main(void) { &nbsp; while(1) &nbsp;{ &nbsp; P3=0xfe; &nbsp; //第一个灯亮 delay(); &nbsp; //调用延时函数 P3=0xfd; &nbsp; //第二个灯亮 delay(); &nbsp; //调用延时函数 P3=0xfb; &nbsp; //第三个灯亮 delay(); &nbsp; //调用延时函数 P3=0xf7; &nbsp; //第四个灯亮 delay(); &nbsp; //调用延时函数 P3=0xef; &nbsp; //第五个灯亮 &nbsp; &nbsp; delay(); &nbsp; //调用延时函数 P3=0xdf; &nbsp; //第六个灯亮 &nbsp; delay(); &nbsp; //调用延时函数 P3=0xbf; &nbsp; //第七个灯亮 &nbsp; &nbsp; delay(); &nbsp; //调用延时函数 P3=0x7f; &nbsp; //第八个灯亮 &nbsp; &nbsp; delay(); &nbsp; //调用延时函数 &nbsp; } } &nbsp; &nbsp; //实例7:通过对P3口地址的操作流水点亮8位LED #include</p><reg51.h>//包含单片机寄存器的头文件 sfr x=0xb0; &nbsp; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的操作 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) &nbsp; { &nbsp;unsigned char i,j; &nbsp; for(i=0;i〈250;i++) for(j=0;j&lt;250;j++) &nbsp; ; &nbsp; //利用循环等待若干机器周期,从而延时一段时间 &nbsp;} /***************************************** 函数功能:主函数 ******************************************/ void main(void) { &nbsp; &nbsp;while(1) &nbsp;{ &nbsp; &nbsp;x=0xfe; &nbsp; //第一个灯亮 delay(); &nbsp;//调用延时函数 x=0xfd; &nbsp;//第二个灯亮 delay(); &nbsp;//调用延时函数 x=0xfb; &nbsp;//第三个灯亮 delay(); &nbsp;//调用延时函数 x=0xf7; &nbsp;//第四个灯亮 delay(); &nbsp;//调用延时函数 x=0xef; &nbsp; //第五个灯亮 &nbsp; &nbsp; delay(); &nbsp;//调用延时函数 x=0xdf; &nbsp; //第六个灯亮 &nbsp; delay(); &nbsp;//调用延时函数 x=0xbf; &nbsp; //第七个灯亮 &nbsp; &nbsp; delay(); &nbsp;//调用延时函数 x=0x7f; &nbsp; //第八个灯亮 &nbsp; &nbsp; delay(); &nbsp;//调用延时函数 &nbsp; &nbsp; } } &nbsp; &nbsp; //实例8:用不同数据类型控制灯闪烁时间 #include<reg51.h>//包含单片机寄存器的头文件 /****************************************************** 函数功能:用整形数据延时一段时间 ******************************************************/ void int_delay(void) //延时一段较长的时间 { &nbsp;unsigned int m; &nbsp; &nbsp;//定义无符号整形变量,双字节数据,值域为0~65535 &nbsp;for(m=0;m&lt;36000;m++) ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//空操作 &nbsp; &nbsp; &nbsp; } /****************************************************** 函数功能:用字符型数据延时一段时间 ******************************************************/ void char_delay(void) //延时一段较短的时间 { &nbsp; unsigned char i,j; &nbsp; //定义无符号字符型变量,单字节数据,值域0~255 for(i=0;i&lt;200;i++) &nbsp;for(j=0;j&lt;180;j++) &nbsp; ; &nbsp; &nbsp; &nbsp; &nbsp;//空操作 } /****************************************************** 函数功能:主函数 ******************************************************/ void main(void) &nbsp; { &nbsp;unsigned char i; &nbsp;while(1) { &nbsp;for(i=0;i&lt;3;i++) { &nbsp; &nbsp; P1=0xfe; &nbsp; &nbsp; //P1。0口的灯点亮 &nbsp;int_delay(); &nbsp;//延时一段较长的时间 &nbsp;P1=0xff; &nbsp; &nbsp; //熄灭 &nbsp;int_delay(); &nbsp;//延时一段较长的时间 } &nbsp; &nbsp; for(i=0;i&lt;3;i++) { &nbsp; &nbsp; P1=0xef; &nbsp; &nbsp; //P1。4口的灯点亮 &nbsp;char_delay(); //延时一段较长的时间 &nbsp;P1=0xff; &nbsp; &nbsp; //熄灭 &nbsp;char_delay(); //延时一段较长的时间 } &nbsp;} } &nbsp; &nbsp; //实例9:用P0口、P1口分别显示加法和减法运算结果 #include〈reg51。h〉 void main(void) &nbsp; { &nbsp; &nbsp;unsigned char m,n; &nbsp;m=43; &nbsp; &nbsp; //即十进制数2x16+11=43 &nbsp;n=60; &nbsp; &nbsp; //即十进制数3x16+12=60 &nbsp;P1=m+n; &nbsp;//P1=103=0110 0111,结果P1。3、P1。4、P1。7 口的灯被点亮 &nbsp;P0=n-m; &nbsp;//P0=17=0001 0001,结果P0。0、P0。4的灯被熄灭 } &nbsp; &nbsp; //实例10:用P0、P1口显示乘法运算结果 #include<reg51。h>//包含单片机寄存器的头文件 void main(void) &nbsp; { &nbsp;unsigned char m,n; &nbsp;unsigned int s; &nbsp;m=64; &nbsp;n=71; &nbsp;s=m*n; &nbsp; &nbsp; &nbsp; //s=64*71=4544,需要16位二进制数表示,高8位送P1口,低8位送P0口 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //由于4544=17*256+192=H3*16*16*16+H2*16*16+H1*16+H0 //两边同除以256,可得17+192/256=H3*16+H2+(H1*16+H0)/256 //因此,高8位16进制数H3*16+H2必然等于17,即4544除以256的商 //低8位16进制数H1*16+H0必然等于192,即4544除以256的余数 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;P1=s/256; &nbsp; &nbsp;//高8位送P1口 ,P1=17=11H=0001 0001B, P1。0和P1.4口灭,其余亮 &nbsp;P0=s%256; &nbsp; &nbsp;//低8位送P0口 , P3=192=c0H=1100 0000B,P3.1,P3。6,P3。7口灭,其余亮 } //实例11:用P1、P0口显示除法运算结果 #include<reg51.h>//包含单片机寄存器的头文件 void main(void) &nbsp; { &nbsp;P1=36/5; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//求整数 &nbsp;P0=((36%5)*10)/5; &nbsp;//求小数 &nbsp;while(1) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//无限循环防止程序“跑飞&quot; } &nbsp; &nbsp; //实例12:用自增运算控制P0口8位LED流水花样 #include〈reg51。h&gt; &nbsp; //包含单片机寄存器的头文件 /****************************************************** 函数功能:延时一段时间 ******************************************************/ void delay(void) { &nbsp; unsigned int i; &nbsp; for(i=0;i&lt;20000;i++) &nbsp; &nbsp;; } /****************************************************** 函数功能:主函数 ******************************************************/ void main(void) &nbsp; { &nbsp;unsigned char i; &nbsp;for(i=0;i〈255;i++) &nbsp;//注意i的值不能超过255 &nbsp; { &nbsp;P0=i; &nbsp; &nbsp;//将i的值送P0口 &nbsp;delay(); //调用延时函数 } } //实例13:用P0口显示逻辑”与&quot;运算结果 #include〈reg51。h&gt;//包含单片机寄存器的头文件 void main(void) &nbsp; { &nbsp;P0=(4〉0)&amp;&(9&gt;0xab);//将逻辑运算结果送P0口 &nbsp;while(1) &nbsp; &nbsp;; &nbsp; &nbsp;//设置无限循环,防止程序“跑飞” } //实例14:用P0口显示条件运算结果 #include<reg51.h〉 void="" p0="(8">4)?8:4;//将条件运算结果送P0口,P0=8=0000 1000B &nbsp;while(1) &nbsp; &nbsp;; &nbsp; &nbsp;//设置无限循环,防止程序“跑飞&quot; } //实例15:用P0口显示按位”异或&quot;运算结果 #include〈reg51.h&gt; &nbsp; //包含单片机寄存器的头文件 void main(void) &nbsp; { &nbsp;P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=0000 1000B &nbsp;while(1) &nbsp; &nbsp;; &nbsp; &nbsp;//设置无限循环,防止程序“跑飞” } //实例16:用P0显示左移运算结果 #include〈reg51。h&gt; &nbsp; //包含单片机寄存器的头文件 void main(void) &nbsp; { &nbsp;P0=0x3b&lt;&lt;2; p0=&quot;1110&quot; 1100b=&quot;0xec&quot; reg51.h=&quot;&quot;&gt;//包含单片机寄存器的头文件 sbit F=P1^4; &nbsp; &nbsp; &nbsp; //将F位定义为 P1。4 sbit X=P1^5; &nbsp; &nbsp; &nbsp; //将X位定义为 P1.5 sbit Y=P1^6; &nbsp; &nbsp; &nbsp; //将Y位定义为 P1.6 sbit Z=P1^7; &nbsp; &nbsp; &nbsp; //将Z位定义为 P1.7 void main(void) { &nbsp; &nbsp; while(1) { &nbsp; &nbsp; &nbsp; F=((~X)&Y)|Z; //将逻辑运算结果赋给F &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; &nbsp; &nbsp; &nbsp; &nbsp; } } //实例18:用右移运算流水点亮P1口8位LED #include<reg51.h>//包含单片机寄存器的头文件 /***************************** 函数功能:延时一段时间 *****************************/ void delay(void) { unsigned int n; &nbsp;for(n=0;n&lt;30000;n++) void=&quot;&quot; unsigned=&quot;&quot; char=&quot;&quot; p1=&quot;P1&quot; i=&quot;0;i〈8;i++)//设置循环次数为8&quot;&gt;〉1; &nbsp; //每次循环P1的各二进位右移1位,高位补0 delay(); &nbsp; &nbsp;//调用延时函数 } &nbsp;} &nbsp; &nbsp; &nbsp; } //实例19:用if语句控制P0口8位LED的流水方向 #include〈reg51。h&gt; &nbsp;//包含单片机寄存器的头文件 sbit S1=P1^4; &nbsp; &nbsp; //将S1位定义为P1.4 sbit S2=P1^5; &nbsp; &nbsp; //将S2位定义为P1。5 /***************************** 函数功能:主函数 *****************************/ void main(void) { &nbsp; &nbsp; while(1) { &nbsp;if(S1==0) &nbsp; //如果按键S1按下 &nbsp; &nbsp;P0=0x0f; &nbsp;//P0口高四位LED点亮 &nbsp;if(S2==0) &nbsp; //如果按键S2按下 &nbsp; &nbsp;P0=0xf0; &nbsp;//P0口低四位LED点亮 &nbsp;} &nbsp; &nbsp; &nbsp; } //实例20:用swtich语句的控制P0口8位LED的点亮状态 #include&lt;reg51.h〉 &nbsp;//包含单片机寄存器的头文件 sbit S1=P1^4; &nbsp; &nbsp; //将S1位定义为P1.4 /***************************** 函数功能:延时一段时间 *****************************/ void delay(void) { unsigned int n; for(n=0;n&lt;10000;n++) 0=&quot;&quot; 1=&quot;&quot; void=&quot;&quot; unsigned=&quot;&quot; char=&quot;&quot; i=&quot;1;&quot; s1=&quot;=0)&quot; case=&quot;&quot; p0=&quot;0xff;&quot; 3:p0=&quot;0xfb;&quot; 5:p0=&quot;0xef;&quot; 7:p0=&quot;0xbf;&quot; 8:p0=&quot;0x7f;&quot; led=&quot;&quot; reg51.h=&quot;&quot;&gt;//包含单片机寄存器的头文件 sbit sound=P3^7; &nbsp;//将sound位定义为P3.7 /**************************************** 函数功能:延时形成1600Hz音频 ****************************************/ void delay1600(void) { unsigned char n; &nbsp; for(n=0;n&lt;100;n++) &nbsp; &nbsp; &nbsp; &nbsp;; } /**************************************** 函数功能:延时形成800Hz音频 ****************************************/ void delay800(void) { unsigned char n; &nbsp; for(n=0;n&lt;200;n++) &nbsp; &nbsp; &nbsp; &nbsp;; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { &nbsp; &nbsp;unsigned int i; while(1) &nbsp; &nbsp;{ &nbsp;for(i=0;i&lt;830;i++) &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp;sound=0; &nbsp;//P3。7输出低电平 &nbsp; &nbsp; &nbsp; &nbsp;delay1600(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sound=1; &nbsp;//P3。7输出高电平 &nbsp; &nbsp; &nbsp; &nbsp;delay1600(); } &nbsp;for(i=0;i〈200;i++) &nbsp; { &nbsp;sound=0; &nbsp;//P3。7输出低电平 &nbsp; &nbsp; &nbsp; &nbsp;delay800(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sound=1; &nbsp;//P3.7输出高电平 &nbsp; &nbsp; &nbsp; &nbsp;delay800(); } &nbsp; &nbsp; } } //实例22:用while语句控制LED #include<reg51.h>//包含单片机寄存器的头文件 /**************************************** 函数功能:延时约60ms (3*100*200=60000μs) ****************************************/ void delay60ms(void) { unsigned char m,n; for(m=0;m&lt;100;m++) &nbsp; for(n=0;n〈200;n++) &nbsp; &nbsp; &nbsp; &nbsp;; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { &nbsp; &nbsp;unsigned char i; while(1) &nbsp; &nbsp;//无限循环 { &nbsp; &nbsp;i=0; &nbsp; &nbsp;//将i初始化为0 while(i&lt;0xff) &nbsp; //当i小于0xff(255)时执行循环体 &nbsp;{ &nbsp; &nbsp;P0=i; &nbsp; &nbsp; &nbsp; &nbsp;//将i送P0口显示 delay60ms(); //延时 i++; &nbsp; &nbsp; &nbsp; &nbsp; //i自增1 &nbsp;} } } //实例23:用do-while语句控制P0口8位LED流水点亮 #include<reg51。h>//包含单片机寄存器的头文件 /**************************************** 函数功能:延时约60ms (3*100*200=60000μs) ****************************************/ void delay60ms(void) { unsigned char m,n; for(m=0;m&lt;100;m++) n=&quot;0;n〈200;n++)&quot; void=&quot;&quot; do=&quot;&quot; p0=&quot;0x7f;&quot; h=&quot;&quot;&gt;//包含单片机寄存器的头文件 /**************************************** 函数功能:延时约60ms (3*100*200=60000μs) ****************************************/ void delay60ms(void) { unsigned char m,n; for(m=0;m&lt;100;m++) &nbsp; for(n=0;n&lt;200;n++) &nbsp; &nbsp; &nbsp; &nbsp;; } /**************************************** 函数功能:主函数 ****************************************/ void main(void) { &nbsp; &nbsp;unsigned char i; &nbsp;unsigned char code Tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义无符号字符型数组 &nbsp; &nbsp;while(1) &nbsp;{ for(i=0;i&lt;8;i++) &nbsp; &nbsp; &nbsp;{ &nbsp; &nbsp; &nbsp; &nbsp;P0=Tab[i];//依次引用数组元素,并将其送P0口显示 &nbsp; &nbsp; &nbsp; &nbsp;delay60ms();//调用延时函数 &nbsp; } } } //实例25: 用P0口显示字符串常量 #include<reg51。h>//包含单片机寄存器的头文件 /************************************************* 函数功能:延时约150ms (3*200*250=150 000μs=150ms *************************************************/ void delay150ms(void) { &nbsp;unsigned char m,n; &nbsp;for(m=0;m〈200;m++) &nbsp; &nbsp;for(n=0;n&lt;250;n++) &nbsp; ; } /************************************************* 函数功能:主函数 *************************************************/ void main(void) { &nbsp; &nbsp;unsigned char str[]={”Now,Temperature is :&quot;}; &nbsp;//将字符串赋给字符型全部元素赋值</reg51。h><!--100;m++)--></reg51。h></reg51.h><!--10000;n++)--><!--30000;n++)--></reg51.h><!--<2;--></reg51.h〉></reg51.h></reg51。h></reg51.h></reg51.h>
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服