ImageVerifierCode 换一换
格式:DOCX , 页数:281 ,大小:132.57KB ,
资源ID:2122138      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2122138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机C语言程序设计源代码.docx)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

51单片机C语言程序设计源代码.docx

1、2019-4-29- 1 -51 单片机 C 语言教程例 2.2.1 编写程序,点亮第一个发光二极管(part2_1.c P27)#include /52 系列单片机头文件sbit led1=P10; /声明单片机 P1 口的第一位void main() /主函数led1=0; /*点亮第一个发光二极管*/例 2.2.2 编写程序,点亮 P1 口的若干二极管(part2_2.c P39)#include /52 系列单片机头文件void main() /主函数P1=0xaa;/while(1);例 2.5.1 利用 for 语句延时特性,编写第一个发光二极管以间隔 1S亮灭闪动的程序(part

2、2_3.c P42 )#include /52 系列单片机头文件#define uint unsigned int /宏定义sbit led1=P10; /声明单片机 P1 口的第一位2019-4-29- 2 -uint i,j;void main() /主函数while(1) /大循环led1=0; /*点亮第一个发光二极管*/for(i=1;i0;i-) /延时for(j=110;j0;j-);led1=1; /*关闭第一个发光二极管*/for(i=1000;i0;i-) /延时for(j=110;j0;j-);例 2.6.1 编写程序使第一个发光二极管以间隔 500ms 亮灭闪动。(pa

3、rt2_4.c P48)#include /52 系列单片机头文件#define uint unsigned int /宏定义sbit led1=P10; /声明单片机 P1 口的第一位void delay1s(); /声明子函数2019-4-29- 3 -void main() /主函数while(1) /大循环led1=0; /*点亮第一个发光二极管*/delay1s(); /调用延时子函数led1=1; /*关闭第一个发光二极管*/delay1s(); /调用延时子函数void delay1s() /子函数体uint i,j;for(i=500;i0;i-)for(j=110;j0;j-

4、);例 2.7.1 编写程序使第一个二极管以亮 200ms、灭 800ms 的方式闪动。(part2_5.c P49)#include /52 系列单片机头文件#define uint unsigned int /宏定义sbit led1=P10; /声明单片机 P1 口的第一位2019-4-29- 4 -void delayms(uint); /声明子函数void main() /主函数while(1) /大循环led1=0; /*点亮第一个发光二极管*/delayms(200); /延时 200 毫秒led1=1; /*关闭第一个发光二极管*/delayms(800); /延时 800 毫

5、秒void delayms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms 即延时约 xms 毫秒for(j=110;j0;j-);例 2.8.3 利用 C51 自带库_crol_(),以间隔 500ms,实现流水灯程序(part2_6.c P53)#include /52 系列单片机头文件#include #define uint unsigned int /宏定义2019-4-29- 5 -#define uchar unsigned charvoid delayms(uint); /声明子函数uchar aa;void main() /主函数aa=0x

6、fe; /赋初值 11111110 while(1) /大循环P1=aa;delayms(500); /延时 500 毫秒aa=_crol_(aa,1); /将 aa 循环左移 1 位后再赋给 aavoid delayms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms 即延时约 xms 毫秒for(j=110;j0;j-);2019-4-29- 6 -例 3.2.1 编写程序使第一个数码管显示 8(part2.1_.1c P59)#include /52 系列单片机头文件sbit dula=P26; /申明 U1 锁存器的锁存端sbit wela=P27;

7、 /申明 U2 锁存器的锁存端void main()wela=1; /打开 U2 锁存器P0=0xFE; /送入位选信号wela=0; /关闭 U2 锁存器dula=1; /打开 U1 锁存器P0=0x7F; /送入段选信号dula=0; /关闭 U2 锁存器while(1); /程序停止到这里例 3.2.2 让实验板上 6 个数码管同时点亮,依次显示 0 到 F,时间间隔为 0.5ms,循环下去。 (part2.1_2.c P61)#include /52 系列单片机头文件#define uchar unsigned char#define uint unsigned int2019-4-2

8、9- 7 -sbit dula=P26; /申明 U1 锁存器的锁存端sbit wela=P27; /申明 U2 锁存器的锁存端uchar num;unchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint);void main()wela=1; /打开 U2 锁存端P0=0xco;/送入位选信号wela=0; /关闭 U2 锁存端while(1)for(num=0;num0;i-) /i=xms 即延时约 xms 毫秒fo

9、r(j=110;j0;j-);例 3.3.1 第一个数码管显示 1,时间为 0.5s,然后关闭它,立即让第二个数码管显示 2,时间为 0.5s,在关闭它一直到最后一个数码管显示 6,时间同样为 0.5s,关闭它之后再回来显示第一个数码管,一直循环下去。 (part2.1_3.c P62)例 3.5.2 用定时器 0 的方式 1 实现第一个发光二极管以 200ms 间隔闪烁,用定时器 1 的方式 1 实现数码管前两位 59s 循环计时。(part2.1_5.c P75)2019-4-29- 9 -例 4.1.1 用数码管前两位显示一个十进制数,变化范围为 0059,开始时显示 00,每按下 S2

10、 键一次,数值加 1;每按下 S3 键一次,数值减 1;每按下 S4 键一次,数值归零;按下 S5 键一次,利用定时器功能使数值开始自动每秒加 1,再次按下 S5 键,数值停止加 1,保持显示原数。 (part2.2_1.c P82)#include /52 系列单片机头文件#define uchar unsigned char#define uint unsigned int sbit key1=P34;sbit key2=P35;sbit key3=P36;sbit key4=P37;sbit dula=P26; /申明 U1 锁存器的锁存端sbit wela=P27; /申明 U2 锁存

11、器的锁存端uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint);2019-4-29- 10 -uchar numt0,num;void display(uchar numdis) /显示子函数uchar shi,ge; /分离两个分别要显示的数shi=numdis/10;ge=numdis%10;dula=1;P0=tableshi; /送十位段选数据dula=0;P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时wela=1; /原来段选数据通过位选锁存器造成混乱P0=0xfe; /送位选数据wela=0;delayms(5); /延时dula=1;P0=tablege; /送个位段选数据dula=0;P0=0xff;wela=1;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。