项目二 电子时钟制作工作页.docx

上传人:b****6 文档编号:7446581 上传时间:2023-01-24 格式:DOCX 页数:27 大小:263.30KB
下载 相关 举报
项目二 电子时钟制作工作页.docx_第1页
第1页 / 共27页
项目二 电子时钟制作工作页.docx_第2页
第2页 / 共27页
项目二 电子时钟制作工作页.docx_第3页
第3页 / 共27页
项目二 电子时钟制作工作页.docx_第4页
第4页 / 共27页
项目二 电子时钟制作工作页.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

项目二 电子时钟制作工作页.docx

《项目二 电子时钟制作工作页.docx》由会员分享,可在线阅读,更多相关《项目二 电子时钟制作工作页.docx(27页珍藏版)》请在冰豆网上搜索。

项目二 电子时钟制作工作页.docx

项目二电子时钟制作工作页

电子时钟制作

课程目标

1.能根据给定任务,明确项目任务和任务要求。

2.能根据原理图,设计布线图。

3.能独立规范使用仪器仪表与工具。

4.能独立进行系统电路设计、安装、编程调试,通过验收,填写验收表格,并签字确认。

5.能按照企业管理制度,确定填写维修记录并归档,确保记录的可追溯性,为以后维修提供参考资料。

6.工作过程中能自觉遵守作业规范。

7.能自觉清理场地、归置物品。

建议课时48

情景描述

本项目的最终目标是设计一个用单片机作为控制核心,以数码管为显示的电子时钟系统。

任务要求

电子钟由电路和程序两部分组成。

可以进行时、分、秒显示;通过按键可以进行时、分、秒调整等功能。

从硬件上看,它主要由以下部分组成:

数码管显示器、按键输入、外围电路等器件。

能够实现数字输入、数字更改等功能。

通过本项目的学习。

熟悉单片机的输入与输出控制的键盘与显示接口技术;中断、定时、按键等技术。

熟悉数码管、按键、蜂鸣器等器件。

任务内容

任务一秒表的设计与制作

任务二按键变数的设计与制作

任务三电子钟的设计与制作

任务一秒表的设计与制作

学习目标

通过学习任务一,熟悉单片机的数码管显示技术等。

任务描述

秒表的设计与制作由电路和程序构成。

从硬件上看,它主要由:

最小系统、数码管等器件组成。

能够实现数码管的显示,显示范围是00–59,程序上涉及计数、中断、定时的编写。

学习地点单片机实训室

课时16

学习过程

(一)技能要点

1、硬件电路制作

电路原理图

2、元器件清单

代    号

名    称

实  物  图

规    格

R1/R2

电阻

2k/200

RP1

排阻

8×1K

C1、C2

瓷介电容

30pF

C3

电解电容

22μF

S1

轻触按键

CY

晶振

12MHz

IC1

单片机

AT89C52

IC插座

40脚

VD1

数码管

四位一体共阴数码管

3、数码管简介

数码管分共阴和共阳二种

4、数码管引脚图

1)一体数码管的管脚图

一体数码管,其内部段已相互连接好。

我们的任务就是找出管脚所对应的数码管的段和位。

2)二位一体数码管的管脚图

二位一体数码管,有用的是二个位选,八个段选共十个管脚。

型号不同管脚图不一样。

用万用表来测,把万用表打到检验二极管的那一档,先找到两个公共端,共阳的公共端接正极,用万用表负极在各段上试,得出abcdefghdp引脚。

二位一体数码管的引脚特点,其A-11B-7C-4D-2E-1F-10G-5DP-3其中12-9为公共端。

3)三位一体数码管的管脚图

三位一体数码管,有三个位选,八个段选共十一个管脚。

型号不同管脚图不一样。

三位一体数码管的引脚特点,其A-11 B-7 C-4 D-2 E-1 F-10 G-5  DP-3其中9-8-6为公共端。

4)四位一体数码管的管脚图

四位一体数码管,有四个位选,八个段选共十二个管脚。

型号不同管脚图不一样。

引脚大致如图所示(正面朝自己,小数点在下方)。

a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位

                。

                1  a    f    2  3  b

                。

                e  d  dp  c  g  4  

即:

12-9-8-6为公共端,A-11 B-7 C-4 D-2 E-1 F-10 G-5  DP-3

5、数码管的检测

数码管的共阴与共阳的区分

识别是共阴型的还是共阳型的数码管,可以通过测量它的管脚,找公共共阴和公共共阳:

首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,电源串接电阻后和地接在任意2个脚上,组合有很多,但总有数码管的一段会发光,找到一个然后地不动,电源(串电阻)逐个碰剩下的脚,如果其他段(一般是7段,一个点)也亮,那它就是共阴的了。

相反电源不动,地逐个碰剩下的脚,如果其他段(一般是7段,一个点)也亮,那它就是共阳的。

直接用万用表,同测试普通半导体二极管一样。

注意!

万用表应放在R×10K档,因为R×1K档测不出数码管的正反向电阻值。

对于共阴极的数码管,红表笔接数码管的“-”,黑表笔分别接其他各脚。

测共阳极的数码管时,黑表笔接数码管的“+”,红表笔接其他各脚。

红表笔是电源的正极,黑表笔是电源的负极。

(二)程序编写

1、程序编写

#include//头文件

#defineucharunsignedchar//声明变量

#defineuintunsignedint

ucharcnt,miao_ge,miao_shi;//计数变量

Ucharcodeledcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};//0-F

ucharcodeledwei[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};//位码

voiddelay(uintz)//延时函数

{

while(z--);

}

voidled(ucharduan,wei)

{

P2=ledwei[wei];//P2口为段码显示

P0=ledcode[duan];//P0口为位码显示

}

voidtimer0()interrupt1//定时中断子程序

{

TH0=0x3C;//给定时器赋初值50ms

TL0=0xB0;

cnt++;//中断一次加一

}

voidmain()//主程序

{

ucharmiao;//初始化

TMOD=0x01;//设置定时器0工作方式1

TH0=0x3C;//50ms定时

TL0=0xB0;

EA=1;//开总中断

ET0=1;//开定时/计数期0中断

TR0=1;//启动定时/计数期0

while

(1)//循环

{

if(cnt==20)//计数

{

cnt=0;//中断标志位0

miao++;

if(miao==60)//满60变为0

{

miao=0;

}

}

miao_ge=miao%10;

miao_shi=miao/10;

led(miao_ge,7);//第8个数吗管

delay(500);//延时

led(miao_shi,6);//第7个数吗管

delay(500);//延时

}

}

2、程序仿真

3、烧写芯片

(三)秒表制作要点

1)根据自己设计的电路图,完成焊接与组装任务。

焊接注意事项:

(1)元件的成形,电阻采用卧式安装法。

(2)数码管注意方向和管脚。

(3)所有集成电路先装IC座,严禁将IC直接焊接在电路板上。

(4)排阻注意第一脚的位置。

(5)按键注意方向。

2)程序设计。

程序设计训练步骤:

(1)八位数码管的静、动态扫描显示程序设计与调试。

(2)定时/计数器、中断控制程序的设计与调试。

(3)定时器和数码管显示的综合程序设计与调试。

知识要点:

1.数码管简介

(1)静态显示

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。

优点是编程简单,显示亮度高,缺点是占用I/O端口多。

(2)数码管动态显示

利用发光二极管的余辉效应和人眼的视觉暂留效应,通过分时轮流控制各个数码管的位选端,使各个数码管轮流受控显示。

动态扫描频率太低,LED数码管将出现闪烁现象;频率太高,由于每个LED数码管点亮的时间太短,LED数码管的亮度太低,无法看清。

因此,在编程时,常采用调用延时子程序来达到要求的保持时间,一般取几毫秒为宜。

(3)显示字形码

显示字符

字形

共    阳    极

共    阴    极

dp

g

f

e

d

c

b

a

字形码

dp

g

f

e

d

c

b

a

字形码

0

1

1

0

0

0

0

0

0

C0H

0

0

1

1

1

1

1

1

3FH

1

1

1

1

1

1

0

0

1

F9H

0

0

0

0

0

1

1

0

06H

2

1

0

1

0

0

1

0

0

A4H

0

1

0

1

1

0

1

1

5BH

3

1

0

1

1

0

0

0

0

B0H

0

1

0

0

1

1

1

1

4FH

4

1

0

0

1

1

0

0

1

99H

0

1

1

0

0

1

1

0

66H

5

1

0

0

1

0

0

1

0

92H

0

1

1

0

1

1

0

1

6DH

6

1

0

0

0

0

0

1

0

82H

0

1

1

1

1

1

0

1

7DH

7

1

1

1

1

1

0

0

0

F8H

0

0

0

0

0

1

1

1

07H

8

1

0

0

0

0

0

0

0

80H

0

1

1

1

1

1

1

1

7FH

9

1

0

0

1

0

0

0

0

90H

0

1

1

0

1

1

1

1

6FH

熄灭

1

1

1

1

1

1

1

1

FFH

0

0

0

0

0

0

0

0

00H

2.定时、计数的概念

(1)计数概念

(2)计数器的容量

(3)定时

(4)溢出

(5)任意定时及计数的方法

3.定时/计数器概述

(1)定时/计数器的方式控制字

 

TMOD位 

D7 

D6

D5 

D4 

D3 

D2 

D1 

D0

位名称 

GATE 

C/T

M1 

M0

GATE 

C/T

M1 

M0 

功能 

门控位 

定时/计数方式选择 

工作方式选择 

门控位

定时/计数方式选择

工作方式选择 

高4位控制定时器/计数器1 

低4位控制定时器/计数器0 

(2)定时/计数器的4种工作方式

①工作方式0。

定时/计数器的工作方式0称为13位定时/计数方式。

它由TL的低5位和TH的8位构成13位的计数器,TL的高3位未用。

②工作方式1。

工作方式1是16位的定时/计数方式,M1M0为01,其他特性与工作方式0相同。

③工作方式2。

工作方式2是16位加法计数器,TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。

方式2具有初值自动装入功能,每当计数溢出,就会打开高、低8位之间的开关,预置数进入低8位。

这是由硬件自动完成的,不需要由人工干预。

④工作方式3。

定时/计数器工作于方式3时,定时器T0被分解成两个独立的8位计数器TL0和TH0。

(3)三种工作方式定时时间的比较

晶振频率fosc=12MHz

方式0(13位):

8192us

方式1(16位):

65536us

方式2(8位):

256us

当晶振频率为12M时最长定时时间为65.536ms,怎样才能实现1秒定时。

(2)定时/计数器的编程和应用

例1用定时器1方式0实现1s的延时。

解:

因方式0采用13位计数器,其最大定时时间为:

8192×1s=8.192ms,因此,定时时间不可能像方式1一样选择50ms,但可选择定时时间为5ms,再循环200次。

定时时间选定后,再确定计数值为5000,则定时器1的初值为:

X=M−计数值=8192−5000=3192=C78H=0110001111000B

因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为:

X=0110001100011000B=6318H

即TH1=63H,TL1=18H,又因采用方式0定时,故TMOD=00H。

例2利用T0方式0产生1ms的定时,在P1.0端口上输出周期为2ms的方波。

设晶振频率为6MHz。

解:

要在P1.0得到周期为2ms的方波,只要使P1.0端口每隔1ms取反一次即可。

①设置T0的方式字。

T0的方式字为:

TMOD=00H。

TMOD.0、TMOD.1M1M0=00,T0工作在方式0;

TMOD.2=0,T0为定时状态;

TMOD.3GATE=0,表示计数不受控制;

TMOD.4~TMOD.7可为任意字,因不用T1,这里均取“0”值。

②计算1ms定时T0的初值。

晶振频率为6MHz,则机器周期为2μs,设T0的初值为X,则:

(213 − X)×2×10−6=1×10−3,这样X=7692D=1111000001100B=0F00CH。

因此,TH0的初值为F0H,TL0的初值为0CH。

③编程。

能力拓展

1、到计时秒表的设计与制作

2、8只数码管显示不同的数字设计与制作

3、8只数码管滚动显示数字(移位显示)设计与制作

任务二按键变数的设计与制作

学习目标

通过学习任务二,熟悉单片机的按键控制技术等。

任务描述

按键变数的设计与制作由电路和程序构成。

从硬件上看,它主要由:

最小系统、数码管、按键等器件组成。

本任务为使用三个独立按键,按下按键A使数字变大,按下按键B使数字变小,按下按键C清零。

要求使用按键识别方法、按键抖动消除等技术。

学习地点单片机实训室

课时16

学习过程

(一)技能要点

1、硬件电路制作

电路原理图

2、元器件清单

代    号

名    称

实  物  图

规    格

R1/R2

电阻

2k/200

RP1

排阻

8×1K

C1、C2

瓷介电容

30pF

C3

电解电容

22μF

S1、S2、S3、S4

轻触按键

CY

晶振

12MHz

IC1

单片机

AT89C52

IC插座

40脚

VD1

数码管

四位一体共阴数码管

(3)按键简介

按键简单的说就是一个开关。

按键根据结构可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。

目前,单片机系统中最常见的是触点式开关按键。

(4)按键的检测

直接用万用表,R×1电阻挡,检测按键的通断即可。

(二)程序编写

1、程序编写

#include//头文件

unsignedcharNumb;//定义变量

voiddelay10ms(void)//延时10ms

{

unsignedchari,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voiddelay02s(void)//延时0.2s

{

unsignedchari;

for(i=20;i>0;i--)

{

delay10ms();//调用延时10ms

}

}

voidmain(void)//主程序

{

while

(1)

{

if(P3_7==0)

{

delay10ms();

if(P3_7==0)

{

Numb++;

if(Numb==4)

{

Numb=0;

}

while(P3_7==0);

}

}

switch(Numb)//提供四种选择

{

case0:

P1_0=~P1_0;

delay02s();

break;

case1:

P1_1=~P1_1;

delay02s();

break;

case2:

P1_2=~P1_2;

delay02s();

break;

case3:

P1_3=~P1_3;

delay02s();

break;

}

}

}

2、程序仿真

3、烧写芯片

(三)按键变数制作要点

1)根据自己设计的电路图,完成焊接与组装任务。

焊接注意事项:

(1)元件的成形,电阻采用卧式安装法。

(2)数码管注意方向和管脚。

(3)所有集成电路先装IC座,严禁将IC直接焊接在电路板上。

(4)排阻注意第一脚的位置。

(5)按键注意方向。

2)程序设计。

程序设计训练步骤:

(1)独立按键程序设计与调试。

(2)矩阵按键程序设计与调试。

(3)数码管显示、按键控制的综合程序设计与调试。

知识要点

1、独立式键盘

单独按键键盘很简单:

只需要测试与按键相连接口线的电平即可。

如果是高电平则没有被按下;如果是低电平则该按键被按下。

2、行列式键盘

 

单个按键在键盘上的结构

(1).行列式键盘工作原理

行列式键盘电路原理如上图所示。

按键设置在行列式交点上,行列线分别连接到按键开关的两端。

当行线通过上拉电阻接+5伏时,被钳位在高电平状态。

键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。

键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。

(2)行列式键盘工作过程

A判断有没有键被按下

B键盘抖动的消除

C键盘按下键的辨认

D键盘松开的等待

A判断案键的按下

首先判断是否有按键动作

P10、P11、P12三线有上拉电阻,平时高电平

输出P13、P14、P15、P16低电平,

如果没有键盘按下,P10、P11、P12仍高电平

如果有键盘按下,P10、P11、P12就有低电平出现

B机械按键的抖动消除

抖动现象:

按键按下过程,列线的状态如下

 

按下按键前,列线为高电平松开按键之后

按键按下与送开后,列线处于抖动的不稳定状态

根据机械键盘的特性,抖动的时间在10—30毫秒之间

所以,一般在判断到有可能是按键按下之后,再延时10—30毫秒,再判断,这时已经是键盘按下的稳定时期。

——没有抖动了!

下面的事情就是判断是哪个键被按下了

C判断是哪个按键被按下

一行一行地扫描:

什么叫扫描?

送出低电平给行线,再判断列线状态比如:

P13低电平,如果P11被检测到也是低则说明在P13与P11的交叉点上的按键,被按下了!

四行全扫一遍,就得到全部情况

D等待按键松开

原因:

如果按键没有松开就退出程序则又检测到有按键被按下了,如果等松开再退出,则只得到唯一一个被按下的按键值。

3、键盘工作方式

键盘的工作方式:

编程扫描方式、定时扫描方式、中断扫描方式三种。

在键盘扫描子程序中完成下述几个功能。

(1)判断键盘上有无键按下

(2)去键的机械抖动影响。

(3)求按下键的键号。

(4)键闭合一次仅进行一次键功能操作

中断式

查询式

中断方式键盘接口

能力拓展

1、个位数的加减乘除计算器的设计与制作

2、密码锁的设计与制作

任务三电子钟的设计与制作

学习目标

通过学习任务三,熟悉单片机输入与输出控制技术等。

任务描述

电子钟的设计与制作由电路和程序构成。

从硬件上看,电子钟采用八位数码管显示,能够显示小时,分钟和秒,用三个按键来调整时、分、和秒,你还可以增加定时闹钟等功能。

涉及数码管显示的方法、独立式按键识别、计时和中断处理方法等。

学习地点单片机实训室

课时16

学习过程

(一)技能要点

1、硬件电路制作

2、元器件清单

代    号

名    称

实  物  图

规    格

R1/R2

电阻

2k/200

RP1

排阻

8×1K

C1、C2

瓷介电容

30pF

C3

电解电容

22μF

S1、S2、S3、S4

轻触按键

CY

晶振

12MHz

IC1

单片机

AT89C52

IC插座

40脚

VD1

数码管

四位一体共阴数码管

(二)程序编写

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitkey1=P3^5;

sbitkey2=P3^6;

sbitkey3=P3^7;

//sbitbuzzer=P3^0;

ucharcnt,shi,fen,miao,shi_shi,shi_ge,fen_shi,fen_ge,miao_shi,miao_ge;

ucharcodeledcode[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x40};//共阴dp~a

//ucharcodeledcode[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0x40};//共阴a~dp

//ucharcodeledcode[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0x40};//共阳a~dp

//ucharcodeledcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x40};//共阳dp~a

ucharcodeledwei[]={0XEF,0XDF,0XBF,0X7F,0XFE,0XFD,0XFB,0XF7};

voiddelay(uintz)

{

while(z--);

}

voidled(ucharduan,wei)

{

P2=ledwei[wei];

P0=ledcode[duan];

}

voidtimer0()interrupt1

{

TH0=0x3C;//50ms定时

TL0=0xB0;

cnt++;

if(cnt==20)

{

cnt=0;

miao++;

if(miao==60)

{

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

{

shi=0;

}

}

}

}

if(key1==0)//调秒按键

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1