没有合适的资源?快使用搜索试试~ 我知道了~
51单片机的基本外围电路设计以与相关C语言程序文件.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 34 浏览量
2022-07-10
11:37:52
上传
评论
收藏 1.24MB DOC 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/85996098/0001-259baab8baf81d65b40d5fce98af2600_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
86页
51单片机的基本外围电路设计以与相关C语言程序文件.doc51单片机的基本外围电路设计以与相关C语言程序文件.doc51单片机的基本外围电路设计以与相关C语言程序文件.doc51单片机的基本外围电路设计以与相关C语言程序文件.doc51单片机的基本外围电路设计以与相关C语言程序文件.doc
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/85996098/bg1.jpg)
. .
1 / 86
主要学习 51 单片机的外部引脚和内部结构等,叙述一下。本书任务驱动教学,引入案
例有浅变深,循序渐进,给读者留下思考和发挥空间。
3.1 利用单片机的 I/O 口驱动 LED
3.1.1 利用单片机的 P0.0 端口驱动 1 只 LED 闪烁
编程的目的是利用 C 语言控制单片机 I/O 端口按要求输出矩形波脉冲信号,信号的周
期由延时函数决定。
一、电路原理
STC-89C51 单片机的 P0 口采用为 OD 门输出,不存在拉出电流,因此利用 P0 驱动负
载时有两种接法:一种是加上拉电阻 R2,见图 3-1-1,既用 1K 电阻接电源正极,此时 P0
口输出高电平时 LED 亮;另一种电路为 P0.7 低电平驱动有效,在 P0.7 输出低电平时,
STC-89C51 端口灌入电流达 20mA,可直接驱动小负载。图 3-3-1 中的 R3 为限流电阻,限
制 LED2 的工作电流。
图 3-1-1 驱动 LED 电路原理
单片机的最小系统包括晶体振荡电路,加电复位电路,同时要求单片机的 31 引脚
接高电平。时钟频率主要由晶体 CY 决定,C1、C2 为独石电容,用于微小调整单片机时钟
的振荡频率;R1 和 C3 组成加电复位电路,C3 为电解电容器;整个电路由+5V 电压供电。
电路使用的元件参数见表 3.1.1。
�
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
2
3
4
5
6
7
8
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.2/A10
P2.1/A9
P2.0/A8
RESET
XTAL2
XTAL1
EA
ALE
PSEN
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
10
11
12
13
14
15
16
17
P1.7
1
19
18
9
C1 30P
C2 30P
CY 12MHz
R1 1K
C3 10
μ
IC STC89C51
VCC
R2 1K
LED1
VCC(+5V)
R3 1K
LED2
EA
![](https://csdnimg.cn/release/download_crawler_static/85996098/bg2.jpg)
. .
2 / 86
表 3.1.13-1-1 电路元件表
元件名称
序号
标称
规格(封装,功率电压等参数)
作用
单片机
IC
STC89C51
DIP40
核心芯片
电容器
C1
30PF
独石
振荡
电容器
C2
30PF
独石
振荡
电容器
C3
10
μ
F
点解电容器
复位
晶振
CY
12MHz
S 型
振荡
电阻
R1
1K
�
1/4W,金属膜
电容器 C3 放电电阻
电阻
R2
1K
�
1/4W,金属膜
端口电位上拉电阻
电阻
R3
1K
�
1/4W,金属膜
限流电阻
发光二极管
LED1
�
5
红色高亮
显示
发光二极管
LED2
�
5
红色高亮
显示
二、程序设计
1.程序设计平台
程序设计采用 keil C 软件,为了养成一个良好的文件管理习惯,建议:编程前,在计
算机的某个硬盘分区下建立一个目录,目录的名字为你编写程序的主题,然后把 keil C 产生
的所有文件都放在该目录下。程序设计步骤如下:
(1)运行 keil C,创建一个项目。利用 keil C 菜单栏中 project-new project 创建,项
目的名字为你编程的主题,如本案例可以用“LED_1.uv2”或“一个 LED 闪烁实验.uv2”,存放目
录为你的主题目录下;
(2)创建建一个文件,然后以“.c”后缀名,文件存放在你的主题目录下;
(3) 把 c 文件添加在你的项目中,在 project workspace 窗口利用 add file to group…
实现。如果软件界面不显示这个窗口,运行 keil C 菜单栏中的 view-project window。
(4)设置编译器,是编译过程中能生成“.hex”文件。默认文件名与主题名字一样。运
行 project-option for‘target 1’-output 窗口下点击 create HEX file。
(5)在编程区域写你的程序,结束后存储文件并编译,要做检查,尽量避免警告出现,
直到程序编译无误为止。
(6)程序烧写并试运行。这个过程称为软件和硬件联合调试,如果实验板无误,程序
![](https://csdnimg.cn/release/download_crawler_static/85996098/bg3.jpg)
. .
3 / 86
编译通过,但在硬件上运行不成功是常用的事情,需要对程序进行多次调试。在没有实验板
的情况下,可以利用 proteus 软件仿真调试,也可以检验你的程序设计结果。
2.程序设计
(1)利用 P0.0 口驱动 LED 闪烁,高电平有效
/*****************************************************************************/
#include<reg51.h> //包含头文件
sbit LED = P0^0; // LED 接 P0.0。在 kell C51 软件中,定义 P0.0 为 P0^0,
void delay(unsigned char x) //延时函数
{
unsigned char i,j;
for(i = 0;i < x;i++)
for(j = 0;j < 200;j++);
}
void main(void) //主函数
{
While(1) //程序死循环
{
LED = 0; //P0.0 输出低电平,LED 灭
void delay(100); //调用延时函数,延时一段时间,约 0.3 秒,不精确
LED = 1; //P0.0 输出高电平,LED 亮
void delay(100);
}
}
/*****************************************************************************/
(2)利用 P0.7 端口驱动 LED 闪烁,低电平有效
/*****************************************************************************/
#include<reg51.h> //包含头文件,程序为小 5 号字
sbit LED = P0^7;
void delay(unsigned char x) //延时函数
{
unsigned char i,j;
for(i = 0;i<x;i++)
for(j = 0;j < 1000;j++);
}
void main(void) //主函数
{ while(1)
{
LED = ~LED; //LED 初始状态为灭,执行一次,LED 改变一次状态
void delay(100); //延时一段时间
}
}
/*****************************************************************************/
三、程序说明
![](https://csdnimg.cn/release/download_crawler_static/85996098/bg4.jpg)
. .
4 / 86
1.应为使用的单片机芯片为 STC89C51,因此程序开始处加入#include<reg51.h>,
文件 reg51.h 中包含了 51 芯片所有特殊功能寄存器的名称定义和相对应的地址值;
2. 单片机程序单步顺序执行,先执行主函数,在主函数可以调用分函数,分函数可以
调用分函数,但分函数不能调用主函数,程序执行一条命令再执行下一条,单片机等待的过
程是执行了一个循环命令或一个浪费时间的程序,实际执行过程永远不会结束。delay()
为函数延,单片机在执行此函数相关指令时占用的时间过长,在执行过程中,如果没有中断,
单片机只能忙这一件事情。利用 delay()不能得到精确的延时。延时函数还可以利用下面
的函数实现。
/**************************/
void delay(unsigned int x)
{
while(x)
x--;
}
/**************************/
3. 利用位定义命令让 LED 等价于 P0.0 或 P0.7,等于先 sbit P0_0 = P0^0,然后
#defined LED P0_0,也在程序前面不做此类定义,在程序里面直接写成 P0^0 = 1 或 P0^0
= 0,先定义是为了增加程序的可读性。程序执行 P0^0 = 1 后,P0.0 对以的单片机内部位
寄存器就设置为高电平,同时 P0.0 端口也输出高电平,单片机的所有 I/O 口都可位未定义,
也可以字节定义。
4. 单片机 C 语言程序设计需要的 C 语言关键字不多,并且在 keil C 中用到的关键字是
独有的,因此对于没有学习过 C 语言的人学习单片机 C 语言程序设计困难并不是很大,主
要掌握单片机 C 语言书写格式,怎样用 C 语言控制单片机的硬件资源,另外在编程时,还
要有清晰的逻辑思维头脑和认真实践,由浅逐步深入学习,当你坚持到最后时,单片机 C
语言程序设计实际上很简单。
5. 每个人在编写程序时都有自己的风格。一般情况下,函数的字符左行距为 0,其下每
条语句前留一个“tab”键空。算数逻辑符号的左右留一个空格,关键语句要有中文或英文说
明,每一个函数有时也可以用“/**.....**/”上下隔开这样有助于提高程序的层次感和可读性。
3.1.2 利用 P0 口驱动 8 个 LED,产生跑马灯或流水灯效果
一、参考电路
实验电路见图 3-3-2 所示,在单片机的最小系统的基础上,P0 口依次接入 8 个 LED,
P0 口的上拉电阻可以使用 8 个 1K 电阻。
�
![](https://csdnimg.cn/release/download_crawler_static/85996098/bg5.jpg)
. .
5 / 86
图 3-1-2 流水灯电路
在利用 Proteus 软件仿真时,可以用电阻排代替。单片机最小系统在单片机元件放置后已经默认,
即 C1、C2、C3、CY、R1 可以省略。其它元件选取见表 3.1.2 所示。
表 3.1.1 3-1-2 电路 Proteus 软件元件表
元件名称 component
总类 Category
分类 Sub- Category
结果 Results
模型 Model type
单片机
Micoroprocessor IC
8051 Family
80C51
电阻排
Resistor
Resistor Pack
RESPACK-8
ANALOG
发光二极管
Optoelectronics
LEDs
led-red
DIGITAL
二、参考程序
/*****************************************************************************/
#include<reg51.h>
void delay(void)
{
unsigned char i,j;
for(i = 0;i < 255;i++) for(j = 0;j < 255;j++);
}
void main(void)
{
unsigned char j = 0x01;
while(1)
{
j = j << 1;
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
2
3
4
5
6
7
8
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.2/A10
P2.1/A9
P2.0/A8
RESET
XTAL2
XTAL1
EA
ALE
PSEN
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
10
11
12
13
14
15
16
17
P1.7
1
19
18
9
C1 30P
C2 30P
CY 12MHz
R1 1K
C3 10
μ
IC STC89C51
VCC
……
VCC(+5V)
R2~9 1K
LED1-8
剩余85页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
matlab大师
- 粉丝: 2501
- 资源: 8万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 数据库管理工具:dbeaver-ce-23.2.2-stable.x86-64.rpm
- 数据库管理工具:dbeaver-ce-23.2.2-macos-x86-64.dmg
- 数据库管理工具:dbeaver-ce-23.2.2-macos-aarch64.dmg
- 数据库管理工具:dbeaver-ce-23.1.5-stable.x86-64.rpm
- 以下是一些适用于英语六级作文的万能句型模板,涵盖了引言、正文和结论部分的各类表达方式.docx
- MATLAB中的非线性规划
- 进行C语言面试资格确认是招聘过程中一个重要的步骤,目的是确保候选人具备足够的C语言编程能力和知识.docx
- Java 轻量级的集群负载均衡设计
- 纹身师个人网站模板.jpg
- 在C语言中,连接两个字符串(即将一个字符串附加到另一个字符串的末尾)通常可以使用标准库中的 `strcat` 函数.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)