C51单片机C语言程序100例-Keil(共266页).doc

上传人:飞****2 文档编号:14473605 上传时间:2022-05-04 格式:DOC 页数:266 大小:1.18MB
返回 下载 相关 举报
C51单片机C语言程序100例-Keil(共266页).doc_第1页
第1页 / 共266页
C51单片机C语言程序100例-Keil(共266页).doc_第2页
第2页 / 共266页
点击查看更多>>
资源描述

《C51单片机C语言程序100例-Keil(共266页).doc》由会员分享,可在线阅读,更多相关《C51单片机C语言程序100例-Keil(共266页).doc(266页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上目录目录.1函数的使用和熟悉*/.4实例 3:用单片机控制第一个灯亮.4实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率.4实例 5:将 P1 口状态分别送入 P0、P2、P3 口:认识 I/O 口的引脚功能. 5实例 6:使用 P3 口流水点亮 8 位 LED. 5实例 7:通过对 P3 口地址的操作流水点亮 8 位 LED. 6实例 8:用不同数据类型控制灯闪烁时间.7实例 9:用 P0 口、P1 口分别显示加法和减法运算结果.8实例 10:用 P0、P1 口显示乘法运算结果. 9实例 11:用 P1、P0 口显示除法运算结果. 9实例 12:用自增运算控制

2、 P0 口 8 位 LED 流水花样. 10实例 13:用 P0 口显示逻辑与运算结果. 10实例 14:用 P0 口显示条件运算结果.11实例 15:用 P0 口显示按位异或运算结果. 11实例 16:用 P0 显示左移运算结果.11实例 17:万能逻辑电路实验. 11实例 18:用右移运算流水点亮 P1 口 8 位 LED. 12实例 19:用 if 语句控制 P0 口 8 位 LED 的流水方向. 13实例 20:用 swtich 语句的控制 P0 口 8 位 LED 的点亮状态.13实例 21:用 for 语句控制蜂鸣器鸣笛次数.14实例 22:用 while 语句控制 LED.16实

3、例 23:用 do-while 语句控制 P0 口 8 位 LED 流水点亮. 16实例 24:用字符型数组控制 P0 口 8 位 LED 流水点亮. 17实例 25: 用 P0 口显示字符串常量.18实例 26:用 P0 口显示指针运算结果.19实例 27:用指针数组控制 P0 口 8 位 LED 流水点亮. 19实例 28:用数组的指针控制 P0 口 8 位 LED 流水点亮. 20实例 29:用 P0 、P1 口显示整型函数返回值. 21实例 30:用有参函数控制 P0 口 8 位 LED 流水速度. 22实例 31:用数组作函数参数控制流水花样.23实例 32:用指针作函数参数控制 P

4、0 口 8 位 LED 流水点亮. 23实例 33:用函数型指针控制 P1 口灯花样.25实例 34:用指针数组作为函数的参数显示多个字符串.26实例 35:字符函数 ctype.h 应用举例.27实例 36:内部函数 intrins.h 应用举例. 27实例 37:标准函数 stdlib.h 应用举例.28实例 38:字符串函数 string.h 应用举例. 29实例 39:宏定义应用举例 2.291 / 192专心-专注-专业实例 40:宏定义应用举例 2.30实例 41:宏定义应用举例 3.30中断、定时器* .31实例 42:用定时器 T0 查询方式 P2 口 8 位控制 LED 闪烁

5、. 31实例 43:用定时器 T1 查询方式控制单片机发出 1KHz 音频.31实例 44:将计数器 T0 计数的结果送 P1 口 8 位 LED 显示. 32实例 45:用定时器 T0 的中断控制 1 位 LED 闪烁.33实例 46:用定时器 T0 的中断实现长时间定时.34实例 47:用定时器 T1 中断控制两个 LED 以不同周期闪烁.34实例 48:用计数器 T1 的中断控制蜂鸣器发出 1KHz 音频.36实例 49:用定时器 T0 的中断实现渴望主题曲的播放. 36实例 50-1:输出 50 个矩形脉冲. 39实例 50-2:计数器 T0 统计外部脉冲数. 40实例 51-2:定时

6、器 T0 的模式 2 测量正脉冲宽度. 40实例 52:用定时器 T0 控制输出高低宽度不同的矩形波.41实例 53:用外中断 0 的中断方式进行数据采集.42实例 54-1:输出负脉宽为 200 微秒的方波. 43实例 54-2:测量负脉冲宽度. 43实例 55:方式 0 控制流水灯循环点亮.44实例 56-1:数据发送程序. 45实例 56-2:数据接收程序. 47实例 57-1:数据发送程序. 47实例 57-2:数据接收程序. 49实例 58:单片机向 PC 发送数据. 50实例 59:单片机接收 PC 发出的数据. 51*数码管显示 .52实例 60:用 LED 数码显示数字 5.5

7、2实例 61:用 LED 数码显示器循环显示数字 09.52实例 62:用数码管慢速动态扫描显示数字1234. 53实例 63:用 LED 数码显示器伪静态显示数字 1234. 54实例 64:用数码管显示动态检测结果.54实例 65:数码秒表设计.56实例 66:数码时钟设计.58实例 67:用 LED 数码管显示计数器 T0 的计数值.62实例 68:静态显示数字“59”.63*键盘控制2/192*/.63实例 69:无软件消抖的独立式键盘输入实验.64实例 70:软件消抖的独立式键盘输入实验.64实例 71:CPU 控制的独立式键盘扫描实验.65实例 72:定时器中断控制的独立式键盘扫描

8、实验.68实例 73:独立式键盘控制的 4 级变速流水灯.71实例 74:独立式键盘的按键功能扩展:以一当四. 73实例 75:独立式键盘调时的数码时钟实验.75实例 76:独立式键盘控制步进电机实验.79实例 77:矩阵式键盘按键值的数码管显示实验.82/实例 78:矩阵式键盘按键音.85实例 79:简易电子琴.86实例 80:矩阵式键盘实现的电子密码锁.92* *液晶显示 LCD*液晶显示 LCD *液晶显示 LCD */.95实例 81:用 LCD 显示字符A. 96实例 82:用 LCD 循环右移显示Welcome to China. 99实例 83:用 LCD 显示适时检测结果. 1

9、02实例 84:液晶时钟设计.106*一些芯片的使用*24c02 . DS18B20 X5045 ADC0832 DAC0832 DS1302红外遥控*/. 112实例 85:将数据0x0f写入 AT24C02 再读出送 P1 口显示.112实例 86:将按键次数写入 AT24C02,再读出并用 1602LCD 显示.117实例 87:对 I2C 总线上挂接多个 AT24C02 的读写操作.124实例 88:基于 AT24C02 的多机通信 读取程序. 129实例 88:基于 AT24C02 的多机通信 写入程序. 133实例 90:DS18B20 温度检测及其液晶显示. 144实例 91:将

10、数据0xaa写入 X5045 再读出送 P1 口显示.153实例 92:将流水灯控制码写入 X5045 并读出送 P1 口显示. 157实例 93:对 SPI 总线上挂接多个 X5045 的读写操作.161实例 94:基于 ADC0832 的数字电压表.165实例 95:用 DAC0832 产生锯齿波电压.171实例 96:用 P1 口显示红外遥控器的按键值.171实例 97:用红外遥控器控制继电器.174实例 98:基于 DS1302 的日历时钟. 177实例 99:单片机数据发送程序.185实例 100:电机转速表设计.186模拟霍尔脉冲.1923/192/*函数的使用和熟悉*/实例 3:

11、用单片机控制第一个灯亮#include /包含 51 单片机寄存器定义的头文件void main(void)P1=0xfe; /P1=1111 1110B,即 P1.0 输出低电平/4/实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率#include /包含单片机寄存器的头文件/*函数功能:延时一段时间*/void delay(void) /两个 void 意思分别为无需返回值,没有参数传递unsigned int i; /定义无符号整数,最大取值范围 65535for(i=0;i20000;i+) /做 20000 次空循环; /什么也不做,等待一个机器周期/*函数功能:主函数 (C

12、语言规定必须有也只能有 1 个主函数)*/void main(void)while(1) /无限循环P1=0xfe; /P1=1111 1110B, P1.0 输出低电平delay(); /延时一段时间P1=0xff; /P1=1111 1111B, P1.0 输出高电平delay(); /延时一段时间4 / 192/5P1P0P2P3I/O/实例 5:将#includeP1 口状态分别送入 P0、P2、P3 口:认识 I/O 口的引脚功能/包含单片机寄存器的头文件/*函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数)*/void main(void)while(1) /无限循环P

13、1=0xff; / P1=1111 1111B,熄灭 LEDP0=P1; / 将 P1 口状态送入 P0 口P2=P1; / 将 P1 口状态送入 P2 口P3=P1; / 将 P1 口状态送入 P3 口/实例 6:使用 P3 口流水点亮 8 位 LED#include /包含单片机寄存器的头文件/*函数功能:延时一段时间*/void delay(void)unsigned char i,j;for(i=0;i250;i+)for(j=0;j250;j+);/*函数功能:主函数*/void main(void)5 / 192while(1)P3=0xfe;delay();P3=0xfd;del

14、ay();P3=0xfb;delay();P3=0xf7;delay();P3=0xef;/第一个灯亮/调用延时函数/第二个灯亮/调用延时函数/第三个灯亮/调用延时函数/第四个灯亮/调用延时函数/第五个灯亮delay();/调用延时函数P3=0xdf;delay();P3=0xbf;/第六个灯亮/调用延时函数/第七个灯亮delay();/调用延时函数P3=0x7f;/第八个灯亮delay();/调用延时函数/实例 7:通过对 P3 口地址的操作流水点亮 8 位 LED#include /包含单片机寄存器的头文件sfr x=0xb0; /P3 口在存储器中的地址是 b0H, 通过 sfr 可定义

15、 8051 内核单片机/的所有内部 8 位特殊功能寄存器,对地址 x 的操作也就是对 P1 口的操作/*函数功能:延时一段时间*/void delay(void)unsigned char i,j;for(i=0;i250;i+)for(j=0;j250;j+); /利用循环等待若干机器周期,从而延时一段时间/*函数功能:主函数6 / 192*/void main(void)while(1)x=0xfe; /第一个灯亮delay(); /调用延时函数x=0xfd; /第二个灯亮delay(); /调用延时函数x=0xfb; /第三个灯亮delay(); /调用延时函数x=0xf7; /第四个灯

16、亮delay(); /调用延时函数x=0xef; /第五个灯亮delay(); /调用延时函数x=0xdf; /第六个灯亮delay(); /调用延时函数x=0xbf; /第七个灯亮delay(); /调用延时函数x=0x7f; /第八个灯亮delay(); /调用延时函数/实例 8:用不同数据类型控制灯闪烁时间#include /包含单片机寄存器的头文件/*函数功能:用整形数据延时一段时间*/void int_delay(void) /延时一段较长的时间unsigned int m; /定义无符号整形变量,双字节数据,值域为 065535for(m=0;m36000;m+); /空操作/*函

17、数功能:用字符型数据延时一段时间*/7 / 192void char_delay(void) /延时一段较短的时间unsigned char i,j; /定义无符号字符型变量,单字节数据,值域 0255for(i=0;i200;i+)for(j=0;j180;j+); /空操作/*函数功能:主函数*/void main(void)unsigned char i;while(1)for(i=0;i3;i+)P1=0xfe; /P1.0 口的灯点亮int_delay(); /延时一段较长的时间P1=0xff; /熄灭int_delay(); /延时一段较长的时间for(i=0;i3;i+)P1=0

18、xef; /P1.4 口的灯点亮char_delay(); /延时一段较长的时间P1=0xff; /熄灭char_delay(); /延时一段较长的时间/实例 9:用 P0 口、P1#includevoid main(void)unsigned char m,n;口分别显示加法和减法运算结果m=43;/即十进制数 2x16+11=438 /192n=60;P1=m+n;/即十进制数 3x16+12=60/P1=103=0110 0111B,结果 P1.3、P1.4、P1.7口的灯被点亮P0=n-m;/P0=17=0001 0001B,结果 P0.0、P0.4 的灯被熄灭/实例 10:用 P0、

19、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 位送 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com