单片机编程实例大全.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机编程实例大全.doc》由用户(淡淡的紫竹语嫣)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 编程 实例 大全 doc
- 资源描述:
-
1、学习单片机学习单片机 /实例实例 1:用单片机控制第一个灯亮用单片机控制第一个灯亮 #include /包含 51 单片机寄存器定义的头文件 void main(void) P1=0xfe; /P1=1111 1110B,即 P1.0 输出低电平 /实例实例 2:用单片机控制一个灯闪烁:认识单片机的工作频率:用单片机控制一个灯闪烁:认识单片机的工作频率 #include /包含单片机寄存器的头文件 / 函数功能:延时一段时间 / void de
2、lay(void) /两个 void 意思分别为无需返回值,没有参数传递 unsigned int i; /定义无符号整数,最大取值范围 65535 for(i=0;i0)/将逻辑运算结果送 P0 口 while(1) ; /设置无限循环,防止程序“跑飞” /实例实例 14:用:用 P0 口显示条件运算结果口显示条件运算结果 #include /包含单片机寄存器的头文件 void main(void) P0=(84)?8:4;/将条件运算结果送 P0 口,P0=8=0000 1000B while(1)
3、; /设置无限循环,防止程序“跑飞” /实例实例 15:用:用 P0 口显示按位口显示按位“异或异或“运算结果运算结果 #include /包含单片机寄存器的头文件 void main(void) P0=0xa20x3c;/将条件运算结果送 P0 口,P0=8=0000 1000B while(1) ; /设置无限循环,防止程序“跑飞” /实例实例 16:用:用 P0 显示左移运算结果显示左移运算结果 #include /包含单片机寄存器的头文件 void main(void) P0=0x3b1; /每次循
4、环 P1 的各二进位右移 1 位,高位补 0 delay(); /调用延时函数 /实例实例 19:用:用 if 语句控制语句控制 P0 口口 8 位位 LED 的流水方向的流水方向 #include /包含单片机寄存器的头文件 sbit S1=P14; /将 S1 位定义为 P1.4 sbit S2=P15; /将 S2 位定义为 P1.5 / 函数功能:主函数 / void main(void) while(1) if(S1=0)
5、 /如果按键 S1 按下 P0=0x0f; /P0 口高四位 LED 点亮 if(S2=0) /如果按键 S2 按下 P0=0xf0; /P0 口低四位 LED 点亮 /实例实例 20:用:用 swtich 语句的控制语句的控制 P0 口口 8 位位 LED 的点亮状态的点亮状态 #include /包含单片机寄存器的头文件 sbit S1=P14; /将 S1 位定义为 P1.4 / 函数功能:延时一段时间 / void
6、 delay(void) unsigned int n; for(n=0;n80 /如果字符串 100 大于 80 P3=0xf0; /P3 口低四位 LED 点亮 #else P3=0x0f; /否则,P3 口高四位 LED 点亮 #endif /结束本次编译 / 中断、定时器中断、定时器 &nbs
7、p;中断、定时器中断、定时器 中断、定时器中断、定时器 中断、定时器中断、定时器 / /实例实例 42:用定时器:用定时器 T0 查询方式查询方式 P2 口口 8 位控制位控制 LED 闪烁闪烁 #include
8、/ 包含 51 单片机寄存器定义的头文件 / 函数功能:主函数 / void main(void) / EA=1; /开总中断 / ET0=1; /定时器 T0 中断允许 TMOD=0x01; &n
9、bsp;/使用定时器 T0 的模式 1 TH0=(65536-46083)/256; /定时器 T0 的高 8 位赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位赋初值 TR0=1; /启动定时器 T0 TF0=0; P2=0xff; while(1)/无限循环等待查询 while(TF0=0) ; TF0=0; P2=P2; TH0=(65536-46083)/256; /定时器 T0 的高 8 位赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位赋初值 /实例实例 43:
10、用定时器:用定时器 T1 查询方式控制单片机发出查询方式控制单片机发出 1KHz 音频音频 #include / 包含 51 单片机寄存器定义的头文件 sbit sound=P37; /将 sound 位定义为 P3.7 引脚 / 函数功能:主函数 / void main(void) / EA=1;  
11、; /开总中断 / ET0=1; /定时器 T0 中断允许 TMOD=0x10; /使用定时器 T1 的模式 1 TH1=(65536-921)/256; /定时器 T1 的高 8 位赋初值 TL1=(65536-921)%256; /定时器 T1 的高 8 位赋初值 TR1=1; /启动定时器 T1 TF1=0; while(1)/无限循环等待查询 while(TF1=0) ; TF1=0;
12、 sound=sound; /将 P3.7 引脚输出电平取反 TH1=(65536-921)/256; /定时器 T0 的高 8 位赋初值 TL1=(65536-921)%256; /定时器 T0 的高 8 位赋初值 /实例实例 44:将计数器:将计数器 T0 计数的结果送计数的结果送 P1 口口 8 位位 LED 显示显示 #include / 包含 51 单片机寄存器定义的头文件 sbit S=P34; /将 S 位定义为 P3.4 引脚 /
13、 函数功能:主函数 / void main(void) / EA=1; /开总中断 / ET0=1; /定时器 T0 中断允许 TMOD=0x02; /使用定时器 T0 的模式 2 TH0=256-156; /定时器 T0 的高 8 位赋初值 TL0=256-156; /定时器 T0 的高 8 位
14、赋初值 TR0=1; /启动定时器 T0 while(1)/无限循环等待查询 while(TF0=0) /如果未计满就等待 if(S=0) /按键 S 按下接地,电平为 0 P1=TL0; /计数器 TL0 加 1 后送 P1 口显示 TF0=0; /计数器溢出后,将 TF0 清 0 /实例实例 45:用定时器:用定时器 T0 的中断控制的中断控制 1 位位 LED 闪烁闪烁 #include / 包含 51 单片机寄存器定义的头文件 sbit D1=P20; /将 D1 位定义为 P2.0 引脚 /
15、 函数功能:主函数 / void main(void) EA=1; /开总中断 ET0=1; /定时器 T0 中断允许 TMOD=0x01; /使用定时器 T0 的模式 2 TH0=(65536-46083)/2
16、56; /定时器 T0 的高 8 位赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位赋初值 TR0=1; /启动定时器 T0 while(1)/无限循环等待中断 ; / 函数功能:定时器 T0 的中断服务程序 / void Time0(void) interrupt 1 using 0
17、/“interrupt”声明函数为中断服务函数 /其后的 1 为定时器 T0 的中断编号;0 表示使用第 0 组工作 寄存器 D1=D1; /按位取反操作,将 P2.0 引脚输出电平取反 TH0=(65536-46083)/256; /定时器 T0 的高 8 位重新赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位重新赋初值 /实例实例 46:用定时器:用定时器 T0 的中断实现长时间定时的中断实现长时间定时 #include / 包含 51 单片机寄存器定义的头文件 sbit D1=P20; /将 D1 位定义为 P2.0 引脚 unsigned
18、 char Countor; /设置全局变量,储存定时器 T0 中断次数 / 函数功能:主函数 / void main(void) EA=1; /开总中断 ET0=1; /定时器 T0 中断允许 TMOD=0x01; &nbs
19、p; /使用定时器 T0 的模式 2 TH0=(65536-46083)/256; /定时器 T0 的高 8 位赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位赋初值 TR0=1; /启动定时器 T0 Countor=0; /从 0 开始累计中断次数 while(1)/无限循环等待中断 ; / &nb
20、sp; 函数功能:定时器 T0 的中断服务程序 / void Time0(void) interrupt 1 using 0 /“interrupt”声明函数为中断服务函数 /其后的 1 为定时器 T0 的中断编号;0 表示使用第 0 组工作 寄存器 Countor+; /中断次数自加 1 if(Countor=20) /若累计满 20 次,即计时满 1s D1=D1; /按位取反操作,将 P2.0 引脚输出电平取反 Countor=0; /将 Countor 清 0,重新从 0 开始计
21、数 TH0=(65536-46083)/256; /定时器 T0 的高 8 位重新赋初值 TL0=(65536-46083)%256; /定时器 T0 的高 8 位重新赋初值 /实例实例 47:用定时器:用定时器 T1 中断控制两个中断控制两个 LED 以不同周期闪烁以不同周期闪烁 #include / 包含 51 单片机寄存器定义的头文件 sbit D1=P20; /将 D1 位定义为 P2.0 引脚 sbit D2=P21; /将 D2 位定义为 P2.1 引脚 unsigned char Countor1; /设置全局变量,储存定时器 T1 中断次数 unsigned char Coun
22、tor2; /设置全局变量,储存定时器 T1 中断次数 / 函数功能:主函数 / void main(void) EA=1; /开总中断 ET1=1; /定时器 T1 中断允许 TMOD=0x10;
23、 /使用定时器 T1 的模式 1 TH1=(65536-46083)/256; /定时器 T1 的高 8 位赋初值 TL1=(65536-46083)%256; /定时器 T1 的高 8 位赋初值 TR1=1; /启动定时器 T1 Countor1=0; /从 0 开始累计中断次数 Countor2=0; /从 0 开始累计中断次数 while(1)/无限循环等待中断 ; / &
24、nbsp; 函数功能:定时器 T1 的中断服务程序 / void Time1(void) interrupt 3 using 0 /“interrupt”声明函数为中断服务函数 /其后的 3 为定时器 T1 的中断编号;0 表示使用第 0 组工作 寄存器 Countor1+; /Countor1 自加 1 Countor2+; /Countor2 自加 1 if(Countor1=2) /若累计满 2 次,
25、即计时满 100ms D1=D1; /按位取反操作,将 P2.0 引脚输出电平取反 Countor1=0; /将 Countor1 清 0,重新从 0 开始计数 if(Countor2=8) /若累计满 8 次,即计时满 400ms D2=D2; /按位取反操作,将 P2.1 引脚输出电平取反 Countor2=0; /将 Countor1 清 0,重新从 0 开始计数 TH1=(65536-46083)/256; /定时器 T1 的高 8 位重新赋初值 TL1=(65536-46083)%256; /定时器 T1 的高 8 位重新赋初值 /实例实例 4
26、8:用计数器:用计数器 T1 的中断控制蜂鸣器发出的中断控制蜂鸣器发出 1KHz 音频音频 #include / 包含 51 单片机寄存器定义的头文件 sbit sound=P37; /将 sound 位定义为 P3.7 引脚 / 函数功能:主函数 / void main(void) EA=1; /开总中断 ET1=1;
27、 /定时器 T1 中断允许 TMOD=0x10; /TMOD=0001 000B,使用定时器 T1 的模式 1 TH1=(65536-921)/256; /定时器 T1 的高 8 位赋初值 TL1=(65536-921)%256; /定时器 T1 的高 8 位赋初值 TR1=1; /启动定时器 T1 while(1)/无限循环等待中断 ; / &nb
28、sp; 函数功能:定时器 T1 的中断服务程序 / void Time1(void) interrupt 3 using 0 /“interrupt”声明函数为中断服务函数 sound=sound; TH1=(65536-921)/256; /定时器 T1 的高 8 位重新赋初值 TL1=(65536-921)%256; /定时器 T1 的高 8 位重新赋初值 /实例实例 49:用定时器:用定时器 T0 的中断实现的中
29、断实现“渴望渴望“主题曲的播放主题曲的播放 #include /包含 51 单片机寄存器定义的头文件 sbit sound=P37; /将 sound 位定义为 P3.7 unsigned int C; /储存定时器的定时常数 /以下是 C 调低音的音频宏定义 #define l_dao 262 /将“l_dao”宏定义为低音“1”的频率 262Hz #define l_re 286 /将“l_re”宏定义为低音“2”的频率 286Hz #define l_mi 311 /将“l_mi”宏定义为低音“3”的频率 311H
30、z #define l_fa 349 /将“l_fa”宏定义为低音“4”的频率 349Hz #define l_sao 392 /将“l_sao”宏定义为低音“5”的频率 392Hz #define l_la 440 /将“l_a”宏定义为低音“6”的频率 440Hz #define l_xi 494 /将“l_xi”宏定义为低音“7”的频率 494Hz /以下是 C 调中音的音频宏定义 #define dao 523 /将“dao”宏定义为中音“1”的频率 523Hz #define re 587 /将“re”宏定义
31、为中音“2”的频率 587Hz #define mi 659 /将“mi”宏定义为中音“3”的频率 659Hz #define fa 698 /将“fa”宏定义为中音“4”的频率 698Hz #define sao 784 /将“sao”宏定义为中音“5”的频率 784Hz #define la 880 /将“la”宏定义为中音“6”的频率 880Hz #define xi 987 /将“xi”宏定义为中音“7”的频率 523H /以下是 C 调高音的音频宏定义 #define h_dao 1046
32、 /将“h_dao”宏定义为高音“1”的频率 1046Hz #define h_re 1174 /将“h_re”宏定义为高音“2”的频率 1174Hz #define h_mi 1318 /将“h_mi”宏定义为高音“3”的频率 1318Hz #define h_fa 1396 /将“h_fa”宏定义为高音“4”的频率 1396Hz #define h_sao 1567 /将“h_sao”宏定义为高音“5”的频率 1567Hz #define h_la 1760 /将“h_la”宏定义为高音“6”的频率 1760
展开阅读全文