欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C51单片机C语言-程序100例Keil.doc

    • 资源ID:808805       资源大小:1.19MB        全文页数:206页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C51单片机C语言-程序100例Keil.doc

    目录目录.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:用自增运算控制 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 实例 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:用指针作函数参数控制 P0 口 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 闪烁. 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:定时器 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.52 实例 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:定时器中断控制的独立式键盘扫描实验.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 显示适时检测结果. 102 实例 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:将数据“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:用单片机控制第一个灯亮#include /包含 51 单片机寄存器定义的头文件 void main(void) P1=0xfe; /P1=1111 1110B,即 P1.0 输出低电平 /4 /实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率#include /包含单片机寄存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) /两个 void 意思分别为无需返回值,没有参数传递 unsigned int i; /定义无符号整数,最大取值范围 65535 for(i=0;iP1 口状态分别送入 P0、P2、P3 口:认识 I/O 口的引脚功能/包含单片机寄存器的头文件 /* 函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数) */void main(void) while(1) /无限循环 P1=0xff; / P1=1111 1111B,熄灭 LED P0=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;i /包含单片机寄存器的头文件 sfr x=0xb0; /P3 口在存储器中的地址是 b0H, 通过 sfr 可定义 8051 内核单片 机 /的所有内部 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,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、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 除以 256 的余数P1=s/256; /高 8 位送 P1 口 ,P1=17=11H=0001 0001B, P1.0 和 P1.4 口灭, 其余亮 P0=s%256; /低 8 位送 P0 口 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7 口 灭,其余亮 /实例 11:用 P1、P0 口显示除法运算结果#include /包含单片机寄存器的头文件 void main(void) P1=36/5; /求整数 P0=(36%5)*10)/5; /求小数 while(1)9 / 192;/无限循环防止程序“跑飞”/实例 12:用自增运算控制 P0 口 8 位 LED 流水花样#include /包含单片机寄存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) unsigned int i; for(i=0;i /包含单片机寄存器的头文件 void main(void) P0=(4>0)/将逻辑运算结果送 P0 口 while(1) ; /设置无限循环,防止程序“跑飞” 110 / 192/14P0 /实例 14:用 P0 口显示条件运算结果#include /包含单片机寄存器的头文件 void main(void) P0=(8>4)?8:4;/将条件运算结果送 P0 口,P0=8=0000 1000B while(1) ; /设置无限循环,防止程序“跑飞” /实例 15:用 P0 口显示按位“异或“运算结果#include /包含单片机寄存器的头文件 void main(void) P0=0xa20x3c;/将条件运算结果送 P0 口,P0=8=0000 1000B while(1) ; /设置无限循环,防止程序“跑飞” /16P0 /实例 16:用 P0 显示左移运算结果#include /包含单片机寄存器的头文件 void main(void) P0=0x3b sbit F=P14;/实例 17:“万能逻辑电路“实验/包含单片机寄存器的头文件 /将 F 位定义为 P1.41 1 1 / 1 9 2sbit X=P15; sbit Y=P16; sbit Z=P17; void main(void) while(1) /将 X 位定义为 /将 Y 位定义为 /将 Z 位定义为P1.5 P1.6 P1.7F=(X) /将逻辑运算结果赋给 F ;/实例 18:用右移运算流水点亮 P1 口 8 位 LED#include /包含单片机寄存器的头文件 /* 函数功能:延时一段时间 */ void delay(void) unsigned int n; for(n=0;n>1; /每次循环 P1 的各二进位右移 1 位,高位补 0 delay(); /调用延时函数 112 / 192/19iffP08LED /实例 19:用 iff 语句控制 P0 口 8 位 LED 的流水方向#include /包含单片机寄存器的头文件 sbit S1=P14; /将 S1 位定义为 P1.4 sbit S2=P15; /将 S2 位定义为 P1.5 /* 函数功能:主函数 */ void main(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 /包含单片机寄存器的头文件 sbit S1=P14; /将 S1 位定义为 P1.4 /* 函数功能:延时一段时间 */ void delay(void) unsigned int n; for(n=0;n /包含单片机寄存器的头文件 sbit sound=P37; /将 sound 位定义为 P3.7 /* 函数功能:延时形成 1600Hz 音频114 / 192*/ 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) 116 / 192unsigned char m,n; for(m=0;m /包含单片机寄存器的头文件 /* 函数功能:延时约 60ms (3*100*200=60000s) */ void delay60ms(void) unsigned ch

    注意事项

    本文(C51单片机C语言-程序100例Keil.doc)为本站会员(一***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档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  

    收起
    展开