找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18569|回复: 11
打印 上一主题 下一主题
收起左侧

51单片机一些简单应用的详细教程与源程序下载

  [复制链接]
跳转到指定楼层
楼主
实验1 点亮第一盏灯
实验2 跑马灯
实验3 呼吸灯
实验4 键盘扫面
实验5 定时器
实验6 外部中断
实验7 串口通信
实验8 LCD1602
实验9 内置AD
实验10 内置EEPROM
实验11 AT2402(外部EEPROM)
实验12 PWM输出
实验13 利用PWM做DA输出
实验14 PCA定时器
实验15 温度计DS18B20
实验16 SPI总线
实验17 蜂鸣器
实验18 LCD12864_并行方式
实验19 LCD12864_串行方式
实验20 μCOS系统

教程目录:


STC12系列单片机是基于8051内核的单时钟/机器周期的增强型单片机,指令代码完全兼容传统 8051,但速度快 8~12 倍。内部集成 MAX810专用复位电路,2 路 PWM,8 路高速10 位 A/D 转换(25 万次/秒),针对电机控制和强干扰场合。详细的STC 12 系列单片机简介请参见 STC官方提供的芯片手册。 开发板选用的单片机型号是 STC  12C5A60S2,这款芯片内部几乎包含了数据采集和控制中所需的所有单元模块,非常适合初学者使用。下面来了解一下该款单片机内部结构中值得初学者注意的地方:

总结下来,STC 12 系列单片机片内包含多种模块,初学者可以通过该款单片机学会使用数据采集和控制中的常用模块,为日后学习其他系列的单片系统铺路。
使用本技术手册,需要一定的 C 语言基础,还有硬件调试基础。有了这些基础,在接下来的学习中,读者会发觉单片机的入门更加的得心应手。
本手册正是根据STC 12 系列单片机的特点,结合实例逐一介绍其功能,并附上我们为该开发板编写的例程中重要部分的解释,希望能为读者提供进入单片机世界捷径。我们会不定期对手册进行勘误和更新,读者若发现本手册中有不完善或错误的地方,欢迎向我们提出您宝贵的意见,我们会根据您的意见对手册进行修改。

第一章  硬件结构
1.1 BlueSkyC51开发板简介
BlueSkyC51开发板是一款迷你型的开发板,其外观尺寸只有 8.5cm*7cm,如图1.1.1。板载模块如图 1.1.2。


图 1.1.2   BlueSkyC51 板载模块介绍

这款 BlueSkyC51 开发板的设计考虑到成本和功能两个方面,结合实际使用 的经验,务求给读者提供多种模块和通讯协议的学习机会,BlueSkyC51 开发板 上的资源如下:
(1)STC 12C5A60S2,PDIP-40;
(2)1 个电源指示灯;
(3)8 个 LED;
(4)1 个 IIC 接口的 EEPROM 芯片,24C02,容量 256 字节;
(5)1 个单总线控制的 DS18B20 温度传感器;
(6)1 个蜂鸣器;
(7)4*4 矩阵键盘;
(8)1 个 MiniUSB 接口、PL2303,用于程序下载、串口通信和供电;
(9)1 组 5V 电源接口;
(10) 1 个复位按钮;
(11) 1 个 1602 液晶接口和液晶;
(12) 1 个 12864 液晶接口;
(13) 4 组 I/O 口的引出扩展口;
(14) 1 个电源开关。

接下来将详细介绍 BlueSkyC51 开发板的各个部分。
1.2              BlueSkyC51 开发板硬件详解
1.2.1               MCU
BlueSkyC51 开发板选择的是 STC 12C5A60S2 作为 MCU。它内部集成 MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 A/D 转换(25 万次/秒),几 乎包含了数据采集和控制中所需的所有单元模块,因此我们选择它作为开发板的MCU。MCU 部分原理图如图 1.2.1.1。



1.2.2  LED

BlueSkyC51 开发板上共有 8 个 LED,它们是共阳极连接,阴极分别接在 P0 的 8 个 I/O 口上。但开发板中不直接将 VCC 接上,而是当读者需要使用LED 做 实验的时候通过跳线帽将 VCC 与排阻公共端接上。这样做主要是因为两个液晶 接口使用了 P0.5、P0.6、P0.7 作为控制端,而且读者在开发板外部扩展功能时会使用到 P0 口,这时我们可以拔掉跳线帽,LED 就不会产生影响。该部分电路原 理图如图 1.2.2.1。


1.2.3 AT24C02 IIC 接口 EEPROM
BlueSkyC51 开发板上带有 AT24C02,它是使用 IIC 协议的 EEPROM,容量2048K 字节,足够读者进行普通的应用。读者也可以选择更大容量的芯片,但芯 片必须兼容 24C02~24C512 全系列的 EEPROM。该部分电路原理图如图 1.2.3.1。


1.2.4  DS18B20 单总线温度传感器
BlueSkyC51 开发板上带有 DS18B20 温度传感器,它使用单总线协议,数据 引脚(18B20_DQ)通过跳线帽与 MCU 的 P1.1 连接。要使用该模块只需要将跳线 帽接上即可。该部分电路原理图如图 1.2.4.1。


1.2.5  蜂鸣器
BlueSkyC51 开发板上带有 1 个蜂鸣器,它通过跳线帽与 MCU 的 P1.4 连接。 要使用该模块只需要将跳线帽接上即可。该部分电路原理图如图 1.2.5.1。

1.2.6 4*4 矩阵键盘
BlueSkyC51 开发板上带有 4*4 的矩阵键盘,它们分两组连接到 MCU 的
P3.0~P3.3 和 P3.4~P3.7 上。该部分电路原理图如图 1.2.6.1。


1.2.7   USB 串口、PL2303、电源
BlueSkyC51 开发板上带有 1 个 USB 串口和 PL2303,它们结合起来仅需要 一条 USB 线即可作为程序下载、代码调试和供电使用。开发板同时提供 5V 电 源引出排针,方便使用者没有外部 5V 电源时使用。
该部分电路原理图如图 1.2.7.1。


1.2.8  1602 液晶接口
BlueSkyC51 开发板上带有 1602 液晶接口,其接口分配如图 1.2.8.1 所示, 第三章第 8 节 LCD1602 实验中将会详细介绍液晶的使用方法,这里不详细叙述。


1.2.9  12864 液晶接口
BlueSkyC51 开发板上带有12864 液晶接口,其接口分配如图 1.2.9.1 所示,

至此,BlueSkyC51 开发板上的硬件就介绍完毕,通过以上介绍希望帮助读者对开发板有更深入的了解和更好地进行下面的软件设计。


第二章 开发环境及程序下载

本章将结合一个 STC 12C5A60S2 的 KEIL 实例,图文并茂的给大家介绍 Keil uVision3 软件的使用。并简单介绍 uVision3 的一些使用技巧,希望通过这章的内 容,能让一个生手变成熟手。至少能自己利用 uVision3 编写 STC 12C5A60S2 的 代码,并在 STC 12C5A60S2 上跑起来。


2.1 uVision3简介

uVision3 源自德国的 KEIL 公司,uVision3  集成了业内最领先的技术, uVision3 集成开发环境与 RealView 编译器, 自动配置启动代码,集成Flash 烧写模块,强大的 Simulation 设备模拟,性能分析等功能,与 ARM 之前的工具 包 ADS 等相比,uVision4 编译器的最新版本可将性能改善超过 20%。



2.2 新建 uVision3工程

首先,按照 BlueSkyC51 配套资料提供的安装方法安装好 Keil uVision3 软件。 接下来打开 uVision3 软件,再点击“工程”->“新建工程”,如下图 2.2.1。



图 2.2.1    新建 uVision3 工程


弹出对话框,如图 2.2.2。


图 2.2.2  保存工程对话框

新建一个文件夹 Test,然后把工程名字设为 test 点击保存。弹出选择器件的 对话框,选择开发板使用的 MCU 芯片。上面介绍开发板上 MCU的简介的时候 说过 BlueSkyC51 开发板选择的 MCU 是 STC 公司生产的 STC 12C5A60S2,但细 心的读者会发现器件的对话框里找不到这款芯片。

在这里笔者要跟大家说明一下原因,提供给我们器件型号选择的是安装目录(这里假设是 C:\Keilc51)下的 UV3 文件夹内的 UV3.cdb 这个文件。我们可以 到 STC 的官方网站:stcmcu点com上下载一个 STC 官方提供的 UV3.cdb(BlueSkyC51 开发板资料中已提供),把原来的这个文件备份后用新下 载的文件将其覆盖。再按照上面步骤新建工程后就会发现在 STC 12C5A16S2 Series 目录下有我们需要的 STC 12C5A60S2 型号选择了,如图 2.2.3。 本节具体操作请参照教学视频。



图 2.2.3  器件选择界面(1)

而经笔者测试,若不更换 UV3.cdb,在原来的器件中也可以选择 Atmel 公司 的 AT89c52 这款芯片来代替,如图 2.2.4。这是因为这两款芯片都兼容传统的 8051 内核,因此指令集大致相同,但笔者建议还是选择官方提供的标准器件较为妥当。

图 2.2.4  器件选择界面(2)


选择好器件后就按下“确定”按钮,uVision3 会弹出一个对话框,询问是否加载启动代码到当前工程下面,这里选择“是”。如下图 2.2.5。
图 2.2.5   提示界面

启动代码是一段和硬件相关的汇编代码,在上面点击了是以后,uVision3 就 把启动代码 STARTUP.A51 加入到了刚刚新建的工程下面.如图2.2.6。

图 2.2.6   工程初步建立

到这里,就可以开始编写代码了。这时需要新建一个存放即将编写的代码的

C 文件,点击菜单栏“文件”->“新建”,或(新建)按钮,这时文本编辑界 面变成刚刚新建的文件的内容。当然,里面什么代码都没有。


接着,按“文件”->“保存”或(保存)按钮,这时会弹出一个保存文 件的对话框,保存文件名为 test.c(文件名可以任意取,但后缀一定要.c),再按 “保存”,如图 2.2.7。




图 2.2.7  文件保存对话框

接着把 test.c 这个文件添加到工程中,接着可以双击 Project Workplace 中的 Target 1 目录下的 Source Group 1 目录,弹出文件选择对话框,选择刚才创建的 test.c,按 add,即可把它添加到工程中。然后按 Close 关闭对话框。如图 2.2.8。


图 2.2.8   将文件添加到工程

点击(Option for Target)按钮,选择“输出”选项卡,把“创建 HEX 文 件”选项勾上,这是因为我们编写的代码编译后需要生成 HEX 文件才能下载到 单片机里执行。若读者想把执行文件输出到你想要的目录可以按“选择目标路径” 选择目录,默认是输出在工程所在的文件夹。如图2.2.9。



图 2.2.9   设置输出属性

设置好输出属性后,若我们已经在 test.c 中输入了我们想要代码且代码正确 的话,按下(编译)按钮后就会在工程所在目录下生成一个test.hex 文件,

这个就是要下载到单片机上的文件。

2.3程序下载

我们通过 STC-ISP 这个软件(BlueSkyC51 开发板资料中已提供)把编译生 成的 hex 文件下载到单片机中,下面来为大家详细介绍操作方法。

打开 STC-ISP4.86 后界面如图 2.3.1。

图 2.3.1  STC-ISP 界面


第一步:MCU Type 选择 STC12C5A60S2,如图 2.3.1 中①;


第二步:点击“打开程序文件”,选择要下载到单片机的 hex 文件,按确定,如图 2.3.1 中②;


第三步:最高波特率选择 115200,最低波特率选择 1200,如图 2.3.1 中③;


第四步:利用 USB 线将单片机和 PC 接上,并安装好 PL2303 驱动后 PC 就会找到相应串口,至于串口号可以查看设备。右键点击“我的电脑”->“管 理”->“设备管理器”,点开“端口”目录下,会出现“Profilic USB-to-Serial Comm Port (COM*)”(*号为串口号),这是就可以在 STC-ISP 的“COM” 选项后选择对应的串口号了,如图 2.3.2,图 2.3.1 中④;


第五步:点击“Download/下载”,等进度条读取完毕,即为下载完毕,如图 2.3.1⑤。
另外,如果读者想点击“Download/下载”按钮后让 STC-ISP 自动帮你载入 更新后的程序文件,请把“每次下载前重新调入已打开在缓冲区的文件,方便调 试使用”这个选项勾上。如果读者想每次在 Keil uVision3 中按下编译后让 STC-ISP 自动调入代码并向单片机发送下载命令,请把“当目标代码发生变化后自动调入 文件,并立即发送下载命令”选项勾上。


图 2.3.2   查看端口设备


本节具体操作请参照教学视频。

至此,第二部分开发环境及程序下载软件 STC-ISP 介绍完毕,希望读者通 过这章的阅读能掌握开发环境 Keil uVision3 和下载软件 STC-ISP的基本使用方 法,接下来是软件设计实例.




全部资料51hei下载地址(详细教程+源程序,代码注释很详细,阅读方便,以后可直接应用在您的项目中):

Blue_Sky_C51 配套例程.rar (782.01 KB, 下载次数: 115)
BlueSkyC51不完全手册V2.0.pdf (3.81 MB, 下载次数: 37)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏9 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-3-21 03:03 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:45457 发表于 2018-3-21 08:39 | 只看该作者
好资料,51黑
回复

使用道具 举报

地板
ID:392113 发表于 2018-8-31 20:11 | 只看该作者

好资料,51黑
回复

使用道具 举报

5#
ID:526650 发表于 2019-5-14 22:15 | 只看该作者

好资料,51黑有你更精彩!!!
回复

使用道具 举报

6#
ID:538517 发表于 2019-5-15 02:37 来自手机 | 只看该作者
感谢楼主,适合收藏
回复

使用道具 举报

7#
ID:438874 发表于 2019-7-1 16:57 | 只看该作者

感谢楼主,适合收藏
回复

使用道具 举报

8#
ID:64765 发表于 2019-7-3 20:23 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

9#
ID:577549 发表于 2019-7-4 07:49 来自手机 | 只看该作者
感谢楼主分享,很厉害的样子嗯
回复

使用道具 举报

10#
ID:630070 发表于 2019-11-1 14:20 | 只看该作者
厉害,试了试学会了不少
回复

使用道具 举报

11#
ID:836596 发表于 2020-10-30 12:04 | 只看该作者
好资料,51黑
回复

使用道具 举报

12#
ID:1004223 发表于 2022-2-6 21:38 | 只看该作者

好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表