单片机实例解说

上传人:kms****20 文档编号:40880282 上传时间:2018-05-27 格式:DOCX 页数:69 大小:101.11KB
返回 下载 相关 举报
单片机实例解说_第1页
第1页 / 共69页
单片机实例解说_第2页
第2页 / 共69页
单片机实例解说_第3页
第3页 / 共69页
单片机实例解说_第4页
第4页 / 共69页
单片机实例解说_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《单片机实例解说》由会员分享,可在线阅读,更多相关《单片机实例解说(69页珍藏版)》请在金锄头文库上搜索。

1、单片机编程(含流水灯程序)/实例 1:用单片机控制第一个灯亮 #include /包含 51 单片机寄存器定义的头文件 void main(void) P1=0xfe; /P1=1111 1110B,即 P1.0 输出低电平/实例 2:用单片机控制一个灯闪烁:认识单片机的工作频率 #include /包含单片机寄存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) unsigned int i;for(i=0;i /包含单片机寄存器的头文件 /* 函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数) */ void main(void)while(1)

2、/无限循环 P1=0xff; / P1=1111 1111B,熄灭 LED P0=P1; / 将 P1 口状态送入 P0 口 P2=P1; / 将 P1 口状态送入 P2 口 P3=P1; / 将 P1 口状态送入 P3 口 /实例 4:使用 P3 口流水点亮 8 位 LED #include /包含单片机寄存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) unsigned char i,j; for(i=0;i /包含单片机寄存器的头文件 sfr x=0xb0; /P3 口在存储器中的地址是口在存储器中的地址是 b0H, 通过通过 sfr 可定义可定义 80

3、51 内核单片机内核单片机 / 的所有内部的所有内部 8 位特殊功能寄存器位特殊功能寄存器,对地址对地址 x 的操作也就是对的操作也就是对 P1 口的操作口的操作 /* 函数功能:延时一段时间 / void delay(void) unsigned char i,j; for(i=0;i /包含单片机寄存器的头文件 /* 函数功能:用整形数据延 时一段时间 */ void int_delay(void) /延时一段较长的时间 unsigned int m; /定义无符号整形变量,双字节数据,值域为 065535 for(m=0;m void main(void) unsigned char m

4、,n; m=43; /即十进制数 2x16+11=43 n=60; /即十进制数 3x16+12=60 P1=m+n; /P1=103=0110 0111B,结果 P1.3、P1.4、P1.7 口的灯被点亮 P0=n-m; /P0=17=0001 0001B,结果 P0.0、P0.4 的灯被熄灭 /实例 8:用 P0、P1 口显示乘法运算 结果 #include /包含单片机寄存器的头文件 void main(void) unsigned char m,n; unsigned int s; m=64; n=71; s=m*n; /s=64*71=4544,需要 16 位二进制数表示,高 8 位

5、送 P1 口,低 8 位送 P0 口 /由于 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 的余 数 P1=s/256; P0=s%256; /高 8 位送 P1 口 ,P1=17=11H=0001 0001B, P1.0 和 P1.4 口灭,其余亮 /低

6、8 位送 P0 口 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7 口灭,其余亮/实例 9:用 P1、P0 口显示除法运算结果 #include /包含单片机寄存器的 头文件 void main(void) P1=36/5; /求整数 P0=(36%5)*10)/5; /求小数 while(1) ; /无限循 环防止程序“跑飞”/实例 10:用自增运算控制 P0 口 8 位 LED 流水花样 #include /包含单片 机寄存器的头文件 /* 函数功 能:延时一段时间 */ void delay(void) unsigned int i; for(i=0;i /

7、包含单片机寄存器的 头文件 void main(void) P0=(40)/将逻辑运算结果送 P0 口 while(1) ; /设置无 限循环,防止程序“跑飞” /实例 12:用 P0 口显示条件运算结果 #include /包含单片机寄存器的头文 件 void main(void) P0=(84)?8:4;/将条件运算结果送 P0 口,P0=8=0000 1000B while(1) ; /设置无限循环, 防止程序“跑飞” /实例 13:用 P0 口显示按位“异或“运算结果 #include /包含单片机寄存器 的头文件 void main(void) P0=0xa20x3c;/将条件运算结

8、果送 P0 口,P0=8=0000 1000B while(1) ; /设置无限循环,防止程序“跑飞” /实例 14:用 P0 显示左移运算结果 #include /包含单片机寄存器的头文件 void main(void) P0=0x3b /包含单片机寄存器的头文件 sbit F=P14; /将 F 位定义为 P1.4 sbit X=P15; /将 X 位定义为 P1.5 sbit Y=P16; /将 Y 位定 义为 P1.6 sbit Z=P17; /将 Z 位定义为 P1.7 void main(void) while(1) F=(X) /将逻 辑运算结果赋给 F ; /实例 16:用右移

9、运算流水点亮 P1 口 8 位 LED #include /包含单片机寄 存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) unsigned int n; for(n=0;n1; /每次循环 P1 的各二进位右移 1 位,高位补 0 delay(); /调用延时函数 /实例 17:用 if 语句控制 P0 口 8 位 LED 的流水方向 #include /包含单 片机寄存器的头文件 sbit S1=P14; /将 S1 位定义为 P1.4 sbit S2=P15; /将 S2 位定义为 P1.5 /* 函数功能:主函数 */ void main(void)

10、while(1) if(S1=0) /如果按键 S1 按下 P0=0x0f; /P0 口高四位 LED 点亮if(S2=0) /如果按键 S2 按下 P0=0xf0; /P0 口低四位 LED 点亮 /实例 18:用 swtich 语句的控制 P0 口 8 位 LED 的点亮状态 #include /包含单片机寄存器的 头文件 sbit S1=P14; /将 S1 位定义为 P1.4 /* 函数功能: 延时一段时间 */ void delay(void) unsigned int n; for(n=0;n /包含单片机寄存器的 头文件 sbit sound=P37; /将 sound 位定义为

11、 P3.7 /* 函数功能:延时形成 1600Hz 音频 */ void delay1600(void) unsigned char n; for(n=0;n /包含单片机寄存器的头文件 /* 函数功能:延时约 60ms (3*100*200=60000s) */ void delay60ms(void) unsigned char m,n; for(m=0;m /包 含单片机寄存器的头文件 /* 函数功能:延时 约 60ms (3*100*200=60000s) */ void delay60ms(void) unsigned char m,n; for(m=0;m /包含单片机寄存器的头文

12、件 /* 函数功能:延时约 60ms (3*100*200=60000s) */ void delay60ms(void) unsigned char m,n; for(m=0;m /包含单片机寄存器的头文 件 /* 函数功能:延时约 150ms (3*200*250=150 000s=150ms */ void delay150ms(void) unsigned char m,n; for(m=0;m void main(void) unsigned char *p1,*p2; /定义无符号字符型指针变量 p1,p2 unsigned char i,j; /定义无符号字符型数据 i=25; /给 i 赋初值 25 j=15; p1= /使指针变量指向 i ,对指针初始化 p2= /使指针变 量指向 j ,对指针初始化 P0=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号