STC单片机高级训练材料.doc_第1页
STC单片机高级训练材料.doc_第2页
STC单片机高级训练材料.doc_第3页
STC单片机高级训练材料.doc_第4页
STC单片机高级训练材料.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STC单片机高级训练材料:本文档为STC单片机训练系列教程之二,是STC单片机基础教程的后续课程,是对前一阶段训练的总结和进一步的提高。:熟悉单片机常见外部设备,掌握使用单片机操作常用外围设备的技术,进一步提高编写单片机C语言源程序的能力,为后续课程中的单片机控制系统的设计打好基础。:本教程包括四个高级实验:蜂鸣器的控制、数码管的显示、键盘矩阵的扫描、读写外部EEPROM。实验一. 蜂鸣器的控制:(1) 掌握蜂鸣器的使用。(2) 掌握蜂鸣器接口电路的设计方法。(3) 掌握单片机控制蜂鸣器的方法。:(1) 设计蜂鸣器控制电路。(2) 用单片机控制蜂鸣器鸣叫的时间。(3) 用单片机控制蜂鸣器鸣叫的音调。:(1) 当给蜂鸣器的两端通入,蜂鸣器就会鸣叫,且鸣叫时间长短由通入电流的时间长短决定。(2) 蜂鸣器及其接口电路如电路原理图所示,由于单片机I/O口不能提供足够电流,所以要用三极管提高其驱动能力。(3) 使用PWM(脉宽调制)方法可以控制蜂鸣器鸣叫的频率,进而形成音阶。:万能板一块、面包板一块、STC12C5A08S2一片、三极管C8550一个、蜂鸣器一个、12MHz晶振一个、22pF电容两个、1K欧姆电阻2个。实验二.数码管的显示:(1) 了解多位字符数码管和点阵数码管的功能和使用方法。(2) 掌握多位字符数码管和点阵数码管接口电路的设计方法。(3) 掌握单片机操作数码管显示字符或图形的方法。:(1) 由四个独立的字符数码管构成多位字符数码管。(2) 为多位字符数码管设计接口电路。(3) 为88点阵数码管设计接口电路。(4) 在多位数码管上显示“1234”字符。(5) 在点阵数码管上显示设计的简单图形。:(1) 多位字符数码管的动态显示:多位数码管的显示分两种类型静态显示和动态显示。静态显示是数码管上的所有字位在同一时刻显示;而动态显示则是同一个时刻只显示一个字位,对于一个字符串需要各个字位轮流显示,又称作分时显示。下面以显示“1234”字符串为例,说明静态显示和动态显示的工作过程:静态显示:动态显示:静态显示的优点就是原理简单,编程也简单,但对于多位数码管来讲,静态显示需要的I/O口太多,单片机往往提供不了那么多。因此在多位字符显示的时候,通常要采用动态显示,动态显示因为是各个字位分时显示,所以消耗的I/O口较少,同时因为各个字位轮流显示的速度很快,人眼无法分辨,因此动态显示的效果看起来和静态显示的效果是一样的。(2) 88点阵数码管的显示 点阵数码管是用来显示任意图形图案的一种显示器件,实质上是一个由众多的LED发光点构成的发光阵列。它的控制端分为两种行控制端和列控制端,采用直角坐标定位方式确定发光点的位置。88点阵数码管的示意图如图1所示。 图1例如,要点亮坐标为1-a处的发光点,需要同时对9号线和13号线进行控制(具体对9号线和13号线施加高电平还是低电平,要根据点阵数码管的具体型号而定),而要点亮坐标为5-b处的发光点,则需要同时对1号线和3号线进行控制。显示图形图案时,根据要显示的内容,控制行控制端和列控制端点亮或熄灭对应的LED发光点就可以了,例如利用88点阵数码管显示的汉字“北”,如图2所示。图2 想一想,这个时候应该点亮哪些LED发光点,又应该对行控制端和列控制端进行怎样的操作?(3) STC单片机实现对数码管的操作STC12C5A08S2单片机拥有众多I/O口,可以方便的操作许多外部设备,包括数码管的显示。数码管和单片机的连接方法一般有三种:直接与I/O口相连;通过锁存器与I/O口相连;通过移位寄存器与I/O口相连。 一般来讲,在一些字符或图案变换频率较低的场合,可以使用第一种连接方式;而对于字符变换频繁,且频率很高,则常使用第二种连接方法,以获得稳定的图案或字符显示;对于第三种连接方法,通常在单片机的可用I/O数量非常少,图案或字符变换频繁,频率较高的场合。 本次实验对多位数码管采用第二种连接方法,即通过锁存器与单片机I/O口相连,而对于88点阵数码管则采用第一种连接方式与单片机I/O口相连。具体连接电路参见部分。:万能板一块、面包板一块、STC12C5A08S2一片、74LS75三片、字符数码管四块、88点阵数码管一块、12MHz晶振一个、22pF电容两个、1K欧姆电阻8个。实验三. 键盘矩阵的扫描:(1) 了解键盘矩阵的结构和原理。(2) 掌握单片机扫描键盘矩阵的方法。:(1) 设计并制作一个44的键盘矩阵。(2) 为该键盘矩阵设计接口电路。(3) 设计键盘扫描程序,要求实现软件防抖。(4) 将按下的按键编号在数码管上显示。:(1) 实验中使用一个22 的键盘阵列,总共有4个键,对每个键定义一个十进制的代码,如1、2、3、4。键盘扫描程序扫描键盘阵列确认是哪一个键被按下了,确定键后用数码管显示它的十进制代码。(2) 扫描过程:以第一行第一列为例。先由CR2输出低电平,即扫描第一行。如果第一行有键按下,则读入RR1口或RR2口的数据必然为0,RR1=0(S1按下),RR2(S2按下);如果第一行没有键按下,则读入RR1口和RR2口的数据都是1。再由CR1输出低电平,开始扫描第二行。如果第二行有键按下,则读入RR1口或RR2口的数据必然为0,RR1=0(S3按下),RR2(S4按下);如果第二行没有键按下,则读入RR1口和RR2口的数据都是1。这样可以确定按下键的行和列,进一步确定其编码。(3) 当按压按健时,由于按健的机械特性,存在有反应时间、抖动,可能按压一次按键,单片机会检测到几次,防抖就是让在按键正常反应时间内机器只感应一次按键效果,防止误操作。通常的做法是采用延时程序,如以下程序段所示:if(key=0) /判断是否有键按下 delay(xms);/延迟去抖 if(key=0) /如果真的有键按下 语句; while(!key); /松手检测,如果key为1说明松手了,那么!key、/为假,跳出循环:这里的电路图给出了键盘矩阵与单片机的接口方法,关于数码管的显示问题可以参考实验一的电路图进行设计。:万能板一块、面包板一块、STC12C5A08S2一片、字符数码管1块、按键开关四个、12MHz晶振一个、22pF电容两个、1K欧姆电阻2个。实验四. 读写片外EEPROM:(1) 了解同步串行外围接口(SPI)的知识。(2) 掌握使用单片机SPI接口的方法。(3) 掌握读写串行口EEPROMAT24C02的方法。:(1) 使用单片机I/O口实现I2C接口功能。(2) 访问具有I2C接口的EEPROMAT24C02。(3) 向AT24C02指定地址写入一个数据,再将这个数据从AT24C02读出来,显示在PC上的串口助手上。:(1) I2C总线只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL。每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器。串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。I2C总线数据传输和应答时序图如下所示:(2) AT24C02是一个2K位串行CMOS EEPROM, 内部含有256个8位字节,C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论