内容正文:
《C语言学习与应用》教学课件
实训目标
了解数码管接口的基本原理;
了解单片机定时器/计数器的原理及应用;
掌握单片机定时器定时程序的编写方法;
掌握完成和分析一个项目C语言源程序的顺序。
项目实训1 60s定时报警器
项目分析
1.任务说明
用AT89C51单片机实现60s定时报警器,使用尽可能简单的程序逐步实现以下功能。
(1)编写延时的C语言函数。
(2)编写程序使数码管动态显示时间。
(3)制作60s定时报警器,开机显示60并持续倒计时,最后显示00时报警。
项目实训1 60s定时报警器
‹#›
2.设计方案
本系统的硬件结构比较简单,由单片机控制模块和数码管显示模块两部分组成。单片机选择 AT89C51单片机,通过内部定时器控制时间。数码管显示模块使用一个2位一体共阳极数码管显示器,采用动态显示技术显示定时器剩余时间。
项目分析
项目实训1 60s定时报警器
‹#›
单片机简介
01
单片机在一块芯片上集成了中央处理部件(CPU)、存储器(RAM、ROM)、定时器/计数 器和各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等,如图1所示。
图1 单片机的结构
项目实训1 60s定时报警器
‹#›
763767422@qq.com (7) -
单片机简介
01
8051是MCS-51系列单片机的典型芯片,其他型号除了程序存储器结构不同外,内部结构完全相同,引脚完全兼容,这里以8051为例子,介绍MCS-51系列单片机的内部组成及信号引脚。
8051单片机采用标准40引脚双列直插式封装,如图2所示。
图2 8051单片机的引脚
项目实训1 60s定时报警器
‹#›
763767422@qq.com (7) -
编程软件Keil
02
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,操作起来简单方便,编译后生成的二进制文件占据的空间小。开发人员可用IDE本身或其他编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件。目标文件由OH51转换成标准的hex文件,以供调试器进行源代码级调试,也可由仿真器直接对目标板进行调试,也可以直接写入程序存储器(如EPROM或Flash中),如图3所示。
图3 编程软件Keil
项目实训1 60s定时报警器
‹#›
763767422@qq.com (7) -
LED数码显示接口技术
03
LED数码管是重要的人机对话部分,是最基本的输出设备。计算机运行结果和运行状态可以通过数码管显示出来。
(1)LED数码管显示原理。数码管就是几个发光二极管按一定方式组成的器件,控制不同的发光二极管导通发光而另外一些不发光,就会显示出不同的图形字形。
(2)LED数码管的内部结构。LED数码管的内部结构有两种不同形式:一种为共阳极显示器;另一种为共阴极显示器。
图4所示依次是8位数码管的引脚图、共阴极结构和共阳极结构。
图4 8位数码管的引脚图、共阴极结构和共阳极结构
项目实训1 60s定时报警器
‹#›
LED数码显示接口技术
03
LED数码管显示器有两种连接方法:一种为共阳极接法;另一种为共阴极接法。本项目实训采用共阴极接法。表1所示是共阳极和共阴极显示管脚信号表。
表1 共阳极和共阴极显示管脚信号表
项目实训1 60s定时报警器
‹#›
LED数码显示接口技术
03
(3)数码管显示方式。
①静态显示。静态显示是指在显示某个字符时,相应字段一直导通或截止,直至更换其他字符。
②动态显示。为了解决静态显示的缺点,在多位显示的情况下,往往采用动态显示的方式使用数码管。
项目实训1 60s定时报警器
‹#›
定时器/计数器知识简介
04
AT89C51单片机内部有两个16位定时器/计数器可供选择使用:定时器/计数器T0、T1。定时器/计数器具有精确的定时和计数功能,而且可以根据定时计数的多少选择16位、13位或8位。
本实验使用定时器/计数器的定时功能,选择T0的16位定时器(工作方式1)。这些使用要求在程序中可以通过设置单片机内部两个特殊功能寄存器 TMOD与TCON的相应值来完成。
(1)TMOD寄存器为T0、T1的工作方式寄存器,只能按字节赋值操作,格式如图5所示。其中,高4位为T1方式字段,低4位为T0方