0545、STC89C52RC单片机实验板使用手册指导书
收藏
资源目录
压缩包内文档预览:
编号:551132
类型:共享资源
大小:1.39MB
格式:RAR
上传时间:2015-12-06
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
0545、STC89C52RC单片机实验板使用手册指导书,毕业设计论文
- 内容简介:
-
TX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 1 单片机实验板使用手册 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 2 目录 TX-1B 单片机实验板使用手册 . 1 1 WAVE 使用说明 . 3 2 KEIL 的使 用 . 9 3 STC-ISP 软件的使用。 . 16 4 Easy 51pro 软件使用 . 22 5 TX-1B 单片机实验板各功能实 验详解 . 25 5.1 闪烁灯 . 27 5.2 流水灯 . 28 5.3 单键识别 . 31 5.4 矩阵键盘检测 . 33 5.5 利用定时器和蜂鸣器唱歌 . 41 5.6 模数转换 ADC0804 的应用 . 45 5.7 数模转换 DAC0832 的应用 . 49 5.8 DS18B20 温度测量显示实验 . 51 5.9 59 秒计数器 . 59 5.10 1602 字符液晶显示 . 62 5.11 12864 点阵液晶显示实验 . 65 5.12 串口通讯实验 . 77 联系方式 . 81 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 3 1 WAVE 使用说明 目前应用在单片机的编程语言主要有汇编语言和 C 语言,汇编语言相对 C语言来说执行效率 较 高, 但编程啰嗦烦杂,程序的可移植性较差,也就是说用户对某个芯片或电路编写的驱动程序只在一套电路板 上可使用,而当换个电路后用户又要自己重新编写这套驱动程序。这样就 在使用的过程中 带来了不少麻烦,其次其指令很多,也不方便记忆,因此 我建议初学者直接学习用 C 语言给单片机编程就可以,无需学汇编语言。从我个人就 两种语言都 会 的角度来看 ,无需 知道一点汇编知识直接学 C 语言 同样 完全可以学好单片机。 本实验板所配的例程大部分 由 C 语言编写成。因此在本 手册中的例程讲解大多 采用 C 语言, 有各别几个用汇编语言 。 下面首先讲解 WAVE 编译器的使用方法 . 1. 安装 SETUP文件 (建议安装在 C盘下) 。 2. 复制光盘: 软件 编译器 下的 COMP51整个文件夹到 C盘目录下。 WAVE 编译程序时用的编译器就在这个文件夹里面,这一步务必做。 3. 首次启动后,编辑框内会有几个默认的程序加载,大家不用管它,选择“文件 -关闭项目” 将它们 关闭。 4. 如果你想用 WAVE 公司标准 的建立工程项目的方法建立你的项目 ,那么请点击“帮助 -WAVE6000 使用手册”这里面讲的非常仔细,对于这种标准程序我在这里就不再讲 了 。 5. 但是如果你要用 另一 种比较简单的方法快速的建立项目呢,可按照我下面的方法来做,我 已 使用多年,保证没有问题 。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 4 5.1 关闭所有已打开的项目 5.2 如果你没有硬件仿真器,那只能用软件仿真,请这样设置: 点击“仿真器 -仿真器设置“分别按以下四幅图设置。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 5 5.3 点击新建文件图标 后会在编译框内出来一个以 NONAME 为标题的空文本 ,如下图: ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 6 此时的保存按钮为灰色 ,原因是文本框内没任何字符, 所以无法保存任何东西,接下来我就 TX-1B 单片机开发板上 点亮与单片机 P1.0口相连的 一个 发光二极管为例,详细介绍 WAVE 的使用方法:在上图新建的 NONAME1编辑框内输入以下字符: /本程序为点亮与单片机 P1.0口相连的发光二极管 注意: /后面的字符在 C 语言中为注释,不参与编译,在 C 语言中注释有两种方法:一 种方法是 加 “ /“ , 如果有多行注释,每行都需要加 /; 第 二 种方法 用“ /* 这里为注释 .*/” , 不加双引号 ,两个 *中间为注释 。 此时再查看保存按钮已变成可点击状态,我 们点击保存按钮,弹出如下对话框,你可以自己先建立一个你自己的文件夹,将刚才建立的文件命名为 test1.c,如下图所示。 test1 这个名字你可以自己取,但是后面必须要以 .c 结束,因为我们写的是 C语言程序, (汇编语言,以 *.asm为名 ) 。 写好文件名字后点 SAVE 保存文件,此地会发现编译框内的文字颜色发生了变化,这说明此时的文字内容已经 变成 可以被编译器所识别的字符 。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 7 5.4 接着在文本框内再输 入 以下信息 #include sbit light1=P10; void main() light1=0; 注意 :( 1) #include 意思是将 reg51.h头文件的内容全部放到本行处,该文本内容是 51 单片机各引脚地址及其内部寄存器地址定义, 若 要看详细的内容请打开 C:COMP51 下 reg51.h 文件查看 ,该文件夹下还有其他 常用到的头文件 。 ( 2) sbit light1=P10; 把 单片机的 P1.0 口定义成 light1,你可以自己随便取你喜欢的名字,但 sbit *=P10;格式不可变。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 8 ( 3) void main() 无返回值型主函数 ,如 果还不懂那请自己回去看 C 语言吧 。 ( 4) light1=0; 将 P1.0口置为低电平,在单片机的 C语言中,高电平用“ 1“来表示,低电平用” 0“来表示。 输入完上面的文字后点击编译快捷按钮,如果输入没有错误则会在下面的信息窗口中显示若干个对勾,如下图所示: 注意: 编写程序时 必须是严格的 C 语言格式,在编辑框中不能有多余的字符出现,建议初学者从一开始就要差成一个好的编程习惯和自己的编程风格,要及时的为每一模块函数加上注释说明,不该多写的地方不要多写,不能少写的地方不要少写,这 样对将来编写大规模程序有会有 很 好的帮助。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 9 当点击完编译按钮后若出现上图 信息窗口中 显示 的信息 ,那 说明你写的程序已经成功编译, 并且已经在你保存文件的目录下面生成了可往单片机内下载 的 BIN 和 HEX 文件。 2 KEIL 的使用 2.1 安装,请自己仔细看配套光盘里的安装说明。 2.2 安装成功后,首次启动界面如下图 : 2.3 我们先新建一个工程文件,点击“ Project-New Project” . 选择工程文件要存放的路径,并且输入工程文件名,这里我们用 test2作为工程文件名 ,这里就不用在后面加 .c了 。图片如下: ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 10 2.4 点击 Save 后弹出选择 CPU及型号的对话框 : 2.5 由于本实验板所配的单片是 STC 公司的,而 KEIL 中并没有 STC公司的产品,不过 STC 公司的单片机和传统的 51单片机是兼容的,ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 11 所以这里我们就选择 Atmel公司的 AT89C52。 2.6 新建一个 C51文件,单击左上角的 New File 如下图所示: 2.7 保存新建的文件,单击保存按钮。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 12 2.8 输入文件名 test2.c,这里 必须以 *.c 为文件名。 2.9 保存好后我们还需要把文件加入到工程项目中,如下图所示在Source Group1 上单击右键,选择 Add Files to Group Source Group1 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 13 2.10 然后选择刚才建立的 test2.c文件,单击 Add。 这时我们看 左边工程信息窗口中的 Source Group1 下面多了 test2.c文件,这说明添加文件成功了。 2.11 在 编辑框内输入下列字符 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 14 2.12 接着我们编译工程项目,如下图点击编译 如果在下面的信息窗口中显示 0 Error(s),0 Warning(s).则说明没有错误,已经成功编译。 2.13 接下来我们 生成 .HEX文件,如下图 点击 Option for Target. ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 15 2.14 在下图我们单击 Output 选中 Create HEX File,再单击 OK。 2.15 再次点击编译按钮 就会在文件目录下生成 test2.hex 文件 。到此为止,您已经学会了如何使用 WAVE和 KEIL 编译文件并生成能够往ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 16 单片机中烧写的 BIN 和 HEX文件了,下面我们讲解如何使用 STC-ISP和 easy 51 Pro 给单片机下载程序。 3 STC-ISP 软件的使用。 3.1 安装光盘软件目录下的 stc_isp_3.1文件夹中的安装文件 注意: 有些 用户无法 正常安装此程序,这可能跟你的系统中原来安装的某些程序有冲突, 你可以按照以下的方法来安装。 1.打开 光盘软件目录下的 STC解压版将里面所有的以 DLL和 OCX为后缀名的 文件复制到系统 windowssystem32 下面 . 替换此目录下原来有的 ,但大小为 0 的文件 .如果没有就直接复制那里 .如果复制的时候说 *文件正在被使用,那就把电脑重起一下再重新复制一次。 (如果你的系统没有显示后缀名,请先在文件夹选项中选中显示文件后缀名,这我就不教你了) ,如果还不能成功,那最后最绝的一招,重装系统。 如下图类似这样的文件即为 DLL和 OCX 为后缀名的 文件 1. 然后直接 双击 该目录下的 STC-ISP V29 Beta5 可执行文件,如图: ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 17 3.2安装完软件后,启动,首次设置时 只需注意 芯片的选择, 在 左上角下拉框中选择 STC89C52RC,一般的台式机大多只有一个串口,所以 COM 栏就选择 COM1, 如果使用别的串口那就选择相应的串口 号 ,其它全部 使用默认, 不明白时最好不要乱改,不然可能会把芯片锁死,以后就用不了了。 总体设置 如下图: 注意: 使用 笔记本的用户如果笔记本没有串口,那请你去电子市场购买 USB 转串口线,一般 价格是五六十元,但往往 便宜的东西总是不太好用,我建议你买的时候向商家问问 , 要好点的那种,因为 STC公司下载软件对这种 虚拟的串口比较挑剔,使用这种线的时候建议用户把ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 18 波特率改为 9600. 3.3软件安装设置完后,接下来我们讲如何连接硬件实验板, 先看下面的连接图, 用手机照的不是非常清楚 ,清注意下面的讲解 。 首先要保证实验板上插的是 STC89C52RC 单片机, 左上方的 USB 数据电缆线一定要与计算机相连,它一方面实现 USB通信,更重要的是给整块电路板提供电源。当连好 USB线后,按下左上方的开关,会看到开关右边有个电源指示灯会亮。 左下 方的九孔串口线与计算机串口相连,(上图板上串口旁边有个指示灯是亮的, 但这并不能说明你的计算机串口是好的或是串口线已经成功连接,这个指示灯的作用主要是下载程序的时候指示正在下载,或是 单片机 与计 算机进行双向串行通信的时候小灯会不停的闪烁,告诉用户通信正在 进行。若为单向只发送数据或只接收数据, 小灯不一定会亮 ,这里请用户注意 ) 3.4 连接好了硬件 也设置好了软件, 下面就要下载程序了, ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 19 如下图点击软件界面上的 Open File 打开对话框,将刚才我们用WAVE 编译生成的 test1.hex 文件选择,大家注意下图中选 择框内第一个文件没有后缀名,它实际上是 test1.bin, 这两个文件是一样的,只是后者比前者要小的多,在下载比较大的程序时我们常用后者。 选择好后点击 Open ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 20 3.5选择好后 ,要先把实验板上的电源关掉,因为 STC 的单片机内有引导码,在上电的时候会与计算机自动通讯,检测是否要执行下载命令,所以要等点完下载命令后再给单片机上电。然后 点击如下图 的Download/下载钮, 接着按下实验板上电源给单片机上电,上电后的图片如下所示: ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 21 若也现上述图片,则说明已经给单片机成功下载了程序,并且已经加密, 别 人无法破解。 成功下载程序后实验板如下图所示,注意左上方八个流水灯中最上方那个点亮了。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 22 4 Easy 51pro 软件使用 这款软件是专门针对产品附件中附带的 AT89S52 单片机下载 程序 的 软件, 其实如果你不想用这块片子也可以 , STC 的 下载软件可在任何一台电脑上使用,可这款软件就没那么乖了,原来设计产品的时候也没想着用 STC 的芯片,后来发现这款芯片非常的好用,就换了这款, AT89S52也就一起送给用户了,如果你的电脑 经过我下面讲的这些步骤后仍然无法使用,你也别难过,这款芯片就这 样,反正也是我送你的 ,你就 安心用 STC 单片机吧。 4.1进入 电脑 主板 BIOS,将并口模式设置为 ECP 模式,如果没有 ECP模式那就不用更改了。 确保 实验板上的单片机是 AT89S52。 4.2接好 USB 电缆线和 ISP 下载线(电脑端为并口 25 针,单片机实验板上为白色六针插座)这时连不连 串口线都没关系。 4.3 打开附件光盘中软件目录下的 ISP 下载器 文件夹下的 easy 51pro.exe,首次设置如下 ,每 次更改 设置后都要把软件关闭,再重新打开 更改 才能生效 。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 23 4.4 打开单片机开发板上的电源,如果电源接通电源指示灯会亮,这时有可能连复位指 示灯也会亮,这是由计算机并口的电流 反窜到实验板上的原 因。我们不用理它,对下载程序没有影响,但是当成功下载完程序后最好把实验板上的 ISP 下载线 与计算机断开,不然程序 可能会 运行 不正常 。 点击检测器件,如果你的计算机并口正常,那么会显示如下图所示信息。如果没有检测到器件 ,那你就省点心,还是使用 STC89C52吧! 4.5 在检测到器件的前提下,接下来先擦除器件,再选打开文件,将你用 WAVE 或 KEIL 编译好的 BIN 或 HEX 文件选中,点 击 写器件,完成烧写。 到此为止已经非常详细的讲述了如何用 WAVE、 KEIL 编译源程序生成下载文件,如何使用 STC-ISP、 Easy 51pro 下载 bin 和 hex 文件。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 24 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 25 5 TX-1B 单片机实验板各功能实验 详解 注意: 在 我要讲具体实验之前 这里 有必要先 介绍一下 本实验板上用到的一些元件的操作方法, 对于一个电子制作者或者是爱好者来说学会怎么样搜索 自己 需要 元件 的资料是非常重要的,现在市场上各种各样的芯片非常的多,能实现同一个功能的芯片也 有很多种,世界各大芯片制造公司(除了中国)都有生产。所以我们不可能把芯片的功能、名称及详细使用方法都记全,也没有这个必要,但是 必须要知道在你需要实现某个 功能的时候怎么样才能找到合适的芯片,下面先给大家推荐两个搜索网站 : 中国最大的搜索网站和世界最大的搜索网站,上面几乎可以搜到你需要的任何信息,大家 一定要充分利用身边可利用的资源,问别人是最没有办法的办法,也是 最无能的体现 。 闲谈: 我常在 QQ 群里碰到问 类似 这样问题的人“谁有 AD590的资料?” 一看就知 道是个非常菜的鸟, 遇到这种问题我理解当事人当时的心情 ,所以很热情的告诉他“上 下载”,大约 半个小时后刚才 提问题的 那位菜先生 又来一句“终于找到了,不过全是英文的,谁有它的中文资料啊?” ,我只好告诉他“什么时候中国能制造自己的芯片了就有中文资料了,你加油吧!”现在可以明确的告诉大家,芯片的资料基本全是英文的,ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 26 大家学了这么多年英文,现在正是你用 它 的时候 了,对于电子爱好者看芯片的英文介绍就应该达到看汉 语一样的水平, 建议大 家以后装软件全装英文版的,看电影全看 国外 原声的,最好连自己的电脑 操作系统 也装英文 版的 。 说正事,给大家介绍两个查芯片资料的网站: 这里的芯片资料相当的全,如果没要找到你要的那请看下面这个网站,这里有世界上所有的芯片资料,并且每天更新一次。 锁存器( 74HC573): 顾名思义 ,就是把输入端的数据锁存(或送)到输出端, 请看下图中的 U3 元件,第 11 角(锁存端)为高电平的时候,右边 D0-D7 的输入与左边 Q0-Q7 的输出是直通的,就是说,右边是什么电平,左边就是什么电平, 可以把它当作不存在。当第 11 角为低电平的时候,左右两端就被断开了 ,无论输入 端 怎么变化,输出 端 都不会变化, 当第 11 角由低电平变为高电平的一瞬间,输入端的数据会被立即送到输出端,如果此时我们再次把第 11 角设置为低电平,那么 以后 当输 入 端无论再怎么变化,输出端都不会变化而是保持刚才 下降 沿时输入端的值,这样就达到了锁存数据的目的 ,这也就是所谓的总线设计思路,一个 8 位的数据线加一个锁存器后就可以接多个元件,当选 通 哪个元件的片选,就送数据给 那个元件。先说这个元件吧,以后用到别的元件我们再解释。下面开始讲解例程。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 27 5.1 闪烁灯 实验要求 点亮与 单片机 P1.0 口相连的发光二极管 ,延时 0.2S,然后熄灭,延时 0.2S, 再点亮, 如此循环下去。 实验目的 初步了解单片机 IO 口输出高低电平的作用 ,延时函数的时间估算。 硬件电路 源代码 #include /* 上面这 行是一个 文件包含 处理。所谓 文件包含 是指一个文件将另外一个文件的内容全部包含进来 这里的程序虽然只 写了一 行,ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 28 但 C 编译器在处理的时候却要处理几十或几百行 ,这里包含 reg51.h的目的在于本程序要使用 P1 这个符号,而 P1 是在 reg51.h 这个头文件中定义的 。大家可以在编译器目录下面用记事本打开这个文件看看。 */ sbit P1_0=P10; /定义 IO口 这步的目的是让编/译器知道 P1_0代表的就是单片机的 P1.0口 void delay02s(void) /延时 0.2 秒子程序 unsigned char i,j,k; /定义 3 个无符号字符型 变量 。 for(i=20;i0;i-) /三个 FOR 循环用来 延时 ,这里为 for(j=20;j0;j-) /什么是 0.2S 大家可以用 WAVE for(k=248;k0;k-); /高断点仿真一下,就可知道大概 /是 0.2S 了。 void main(void) /每一个 C 语言程序有且只有一个主函数, while(1) /循环条件永远为真,以下程序一直执行下去。 P1_0=0; / I/O 口 P1.0 输出低电平,小灯被点亮。 delay02s(); /延时经过 0.2 秒。 P1_0=1; / I/O 口 P1.0 输出高电平,小灯熄灭。 delay02s(); /延时经过 0.2 秒。 5.2 流水 灯 实验要求 单片机 P1 口相连的 8 个 发光二极管 中的一个循环移位点亮 , 同ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 29 时蜂鸣器发出滴滴的响声 。 蜂鸣器用一 PNP 三极管驱动, 集电极( C 极)通过蜂鸣器线圈接 5V电源,基极( B 极)是控制端,发射极( E 极)接地,当三极管 C, B 极 PN 结正偏时, PN 结导通 ,即 B 极为低电平时,三极管导通,蜂鸣器响。再不 明白去看模电书。 实验目的 掌握循环移位的工作原理,学会使用封装好的函数库, 延时函数的时间估算。 硬件电路 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 30 源代码 /flow light and beep #include #include /后面要用到它里面的 _crol_(k, l)函数 /这个函数的意思是把一个字符 变量 k 循环左移 l 位,关于它的说明/请 查看安装 KEIL目录下的 E:Program FilesKeilC51HLP 文件夹/里 面的 c51lib,这个文件里面有各种用 C 语言封装好的 函数库,我/们在以后使用其中某些函数时可以直接使用而自己不必再写。 unsigned char a,b,k,j; /定义四个字符变量 sbit beep=P23; / 定义蜂鸣器的接口 void delay10ms() /延时字程序,大约延时 10ms for(a=100;a0;a-) for(b=225;b0;b-); void main() ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 31 k=0xfe; /先给 k 一个初值 11111110 等待移位 while(1) delay10ms(); beep=0; /打开蜂鸣器 delay10ms(); /让它响 10ms beep=1; /关闭蜂鸣器 j=_crol_(k,1); /把 k 循环左移一位 k=j; /把移完的值再送给 k P1=j; /同时把值送到 P1 口点亮发光二极管 5.3 单键识别 实验要求 每按一次独立键盘的 S2 键,与 P1 口相连的一个发光二极管往下移动一位 。 注意:关于按键去抖动的解释,我们在手动按键的时候, 由于 机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按 下一次键然后接着释放,按键两片金属膜接触的时间大约为 50ms左右,如果我们再首次检测到键被按下 后 延时 10ms 左右再去检测,这时如果是干扰信号将不会被检测到 ,如果确实是有键被按下,则可确认。以上为按键识别去抖动的原理。 实验目的 独立按键的识别 。 硬件电路 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 32 源 代码 #include sbit BY1=P34; /定义按键的输入端 S2 键 unsigned char count; /按键计数 ,每按一下 ,count 加 1 unsigned char temp; unsigned char a,b; void delay10ms(void) /延时程序 unsigned char i,j; for(i=20;i0;i-) for(j=248;j0;j-); key() /按键判断程序 if(BY1=0) /判断是否按下键盘 ,当单片机上电时所有 IO 口为/高电平, S2 键一端接地另一端接 P3.4,所以当键被按下时 P3.4 口/直接接地,此时检测 P3.4 肯定为低电平 。 delay10ms(); /延时 ,软件去干扰 if(BY1=0) /确认按键按下 count+; /按键计数加 1 if(count=8) /计 8 次重新计数 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 33 count=0; /将 count 清零 while(BY1=0);/等待按键释放,如果键未释放则一直在此等待。 move() /广告灯向下 移动移动函数 a=temp(8-count);/ _crol_()函数 P1=a|b; main() count=0; /初始化 参数设置 temp=0xfe; P1=0xff; P1=temp; while(1) /永远循环 ,扫描判断 按键是否按下 key(); /调用按键识别函数 move(); /调用广告灯移动函数 5.4 矩阵键盘检测 实验要求 依次按下 4*4 矩阵键盘上从第 1 到第 20 个键,同时在六位数码管上依次显示 0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、 E、F。 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 34 说明: 本实验板上数码管为共阴极。 静态数码管显示原理:这里就共阴极数码管显示 原理 进行 讲 解,一位数码管内一共有 8 个发光二极管,对共阴极来说其 8 个发光二极管的阴极在数码管内部全部接在一起, 也就是“共阴”说法的来源,阳 极是独立的, 设计电路时一般把阴极接地,当我们从外部给任一个阳极加一个高电平时这 个发光二极管就亮了,如果想要出一个 8 字,并且把右下角的小数点也点亮的 话,那可以给 8 个阳极全总送高电平,想出几就给相对应的发光二极管送高电平,因此我们在显示数字的时候首先做的就是给 0-9 十个数字编好码,在要它亮什么数字的时候直接把这个 编码送到它的阳极就行了。另外说一下,一般的数码管每一段亮至 少需要 10 个毫安的电流,而单片机的 IO 口 送不出如此大的 电流 ,所以我们需要加数码管的驱动电路,可以用上拉电阻的方法,也可以使用专门的驱动芯片,本实 验板使用的 74HC573,它最大可以输出 500 毫安的电流,足够让数码管点亮了 。 本实验板上的六位数码管上相同段(段指 a,b,c,d,e,f,g,h)全部是接在一起的,其中每一个位( 阴极) 是独立的, 所以在做静态显示的时候所有的数码管只能显示相同的数字,当然你可以控制显示几位,如果你让它们静态不同的数字那就得给每一个数码管加一套驱动电路了。但这样做是没有必要的,后面我们会讲到 关于数码管动态显示原理 。 下面给出本实验板 共阴极 数码管数字编码 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 35 矩阵键盘 的四行分别与 P3.0-P3.3 连接,四列分别与 P3.4-P3.7连接。 实验目的 学会矩阵键盘的检测,掌握数码管静态显示原理 。 硬件电路 键盘电路见 5.3 ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 36 源代码 /4*4 键盘检测程序 ,按下键后相应的代码显示在数码管上 #include sbit beep=P23; /蜂鸣器接口 sbit dula=P26; /控制数码管段选的锁存器 锁存端 sbit wela=P27; /控制数码管位选的锁存器锁存端 unsigned char i=100; unsigned char j,k,temp,key; void delay(unsigned char i) /可自定义延时长短的延时函数 /当 i=10 时大约为 10 毫秒 for(j=i;j0;j-) for(k=125;k0;k-); unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; / 0-F 编码 display(unsigned char num) / 显示 子 函数 P0=tablenum; /将第 num 个 显示 编码送 P0 口 dula=1; /一个下降沿将数据锁存 dula=0; P0=0xc0; /位选通全部的数码管 wela=1; /一个下降沿将数据锁存 wela=0; void main() dula=0; /使两个锁存器不可直通 wela=0; while(1) /进入 检测总循环 P3=0xfe; /给 P3.0 送低电平,其余为高电平 temp=P3; /把 P3 口数据读回来 temp=temp&0xf0; /把 P3 口与 11110000 相与 if(temp!=0xf0) /如果有键按下刚一定不相等,于 是进入ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 37 /下一步检测 delay(10); /延时去抖动 if(temp!=0xf0) /再次判断是否有键按下 temp=P3; /判断为有,再次读 P3 口数据 switch(temp) /因为我们刚才是将第一行置的低 /在这里再判断是第几列 case 0xee: /如果 temp=0xee 则为第一 行和第一列 key=0; /的交叉点,由此我们知道是矩阵键盘 break; /上的第一个键被按下,我们给 key=0。 case 0xde: /以后依此类推 key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; while(temp!=0xf0) /这段程序是检测按键是否被释放 temp=P3; /如果没有释放就一直等待并且 temp=temp&0xf0; beep=0; /蜂鸣器一直响 beep=1; /释放后关闭蜂鸣器 display(key); /显示按下相应键值的数据 P1=0xfe; /将第一个发光二极管点亮(我写 /程序的时候测试用的) P3=0xfd; temp=P3; ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 38 temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); P1=0xfc; P3=0xfb; ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 39 temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key=8; break; case 0xdb: key=9; break; case 0xbb: key=10; break; case 0x7b: key=11; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); P1=0xf8; ntsTX-1B 单片机实验板使用手册 山东单片机爱好者网 / Email: QQ:88378239 40 P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xe7: key=12; break; case 0xd7: key=13; break; case 0xb7: key=14; break; case 0x77: key=15; break; while(temp!=0xf0)
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。