单片机实训总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、任务与目的

本课程的实训是使我们综合应用所学习的理论知识,使用STAR-MT51实验板完成单片机控制下的实时温度测量及显示的软件编程。

本课程实训涉及的知识包括:单片机的最小系统、单片机人机接口电路(独立式键盘、LED显示)、8位数码管的驱动电路、18B20温度芯片的应用等。

二、原理(条件)

1. LED发光二极管

一般的发光二极管的导通压降为1.7V~1.9V,工作电流为5mA~10mA

2.LED数码管显示接口

LED数码管是利用多个LED组合而成的显示设备,可以显示0-9等10个数字和某些字母,在许多的数字系统中作为显示输出设备,使用非常广泛。数码管内部字段LED和引脚分布图。它的结构是由发光二极管构成的a、b、c、d、e、f 和g七段

LED内部的所有发光二极管有共阴极接法和共阳极接法两种:一种是将LED 内部所有二极管阳极接在一起并通过com引脚引出,将每一个发光二极管的另一端分别引出到对应的引脚,称之为共阳极LED显示器

另一种是将LED内部所有发光二极管的阴极都连在一起的,称之为共阴极LED显示器

LED用于显示数字、字母或符号时,必须将要显示的内容转换为LED对应七段码的信息,共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当发光二极管导通时,相应的笔划段发亮,即通过点亮不同的LED字段,可显示数字0,1,┅,9和A,b,C,d,E,F等不同的字符及自定义的一些简单符号。8个笔划段dp g f e d c b a对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示要显示字符的字形代码。

3.独立式键盘接口

(1)监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。

(2)判断是哪个键按下。

(3)完成键处理任务。

需注意事项:

① 电路或软件的角度应解决的问题-----------消除抖动影响

键盘按键所用开关为机械弹性开关,利用了机械触点的闭合、断开作用。

为了确保CPU对一次按键动作只确认一次,必须消除抖动的影响。按键的消抖,通常有软件、硬件两种消除方法。

软件消抖:在第一次检测到有键按下时,执行一段延时10ms的子程序后,

再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认有键按下,进行相应处理工作。

②键盘电路结构

独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O 口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。

优点:电路配置灵活,软件结构简单。

缺点:每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘是用于按键较少或操作速度较高的场合。

4.定时器中断

定时/计数器是单片机的重要部件,其工作方式灵活,编程简单,使用方便。89C51单片机内有2个16位可编程的定时器/计数器,分别为T0和T1。定时器/计数器T0、T1核心组成部分为16位的加1计数器,它们的工作状态和工作方式分别由两个特殊功能寄存器TCON和TMOD来决定。

定时器/计数器T0、T1可以有四种不同的工作方式:方式0、方式1、方式2、方式3。

方式1

当TMOD中M1M0 = 01时,定时器/计数器选定方式1进行工作。下图是T0工作在方式1下的逻辑结构图(T1与其完全一致)。两个8位寄存器TH0和TL0构成了一个16位的定时器/计数器。

在该工作方式下,当作为定时器使用时,按定时时间计算计数初值。

方式2

工作方式2,其逻辑结构如下图所示。该方式下,16位计数器被分为两个8位寄存器:TL0和TH0,其中TL0作为计数器,TH0作为计数器TL0的初值预置寄存器,并始终保持为初值常数。TH0的内容重新装入TL0后,其自身保持不变。这样计数器具有重复加载、循环工作的特点,可用于产生固定脉宽的脉冲信号。

这样省掉了工作方式0、方式1一定要通过软件给计数器重新赋初值的麻烦,并提高了计数精度。该工作方式下,当作为定时器使用时,按定时时间计算计数初值

三、内容与步骤

本实训采用STAR-MT51实验板,编写程序完成指导教师指定的项目内容。

1、LED指示灯闪烁。

2、8位数码管的指定显示内容。

3、数字时钟显示。

(一)熟悉STAR-MT51结构,复习单片机接口电路内容

编写第一个程序,控制LED指示灯闪烁

1、建立项目文件,掌握头文件的使用

2、熟悉单片机C文件编写规范,变量定义,程序注释写法等

3、熟练掌握KEIL C51调试环境,熟悉编译,设置,在线观察参数

4、编写LED指示灯亮灭的程序控制

5、添加延时子函数,掌握无传递参数的子函数编写

6、实现LED指示灯闪烁

程序:

#include

unsigned char k;

void delayms(unsigned char ms);

main()

{ while (1){

P0 = 0x01;

P0 = 0x01;

for(k=0;k<8;k++)

{

P0 = << 1;

delayms(1000);

}

for(k=0;k<8;k++)

{

P0 = << 1;

delayms(1000);

}

if(P0!=0xBF)

{

P0 = ~(0xfe << 1) + 1;

P0 = 0xaa;

}

else

{

P0 = 0xFF;

P1 = ~(0x01 << k);

}

}}

void delayms(unsigned char ms) // 延时子程序

{

相关文档
最新文档