硬件实习淮阴工学院统计按键次数文档格式.docx

上传人:b****5 文档编号:18561246 上传时间:2022-12-27 格式:DOCX 页数:10 大小:130.86KB
下载 相关 举报
硬件实习淮阴工学院统计按键次数文档格式.docx_第1页
第1页 / 共10页
硬件实习淮阴工学院统计按键次数文档格式.docx_第2页
第2页 / 共10页
硬件实习淮阴工学院统计按键次数文档格式.docx_第3页
第3页 / 共10页
硬件实习淮阴工学院统计按键次数文档格式.docx_第4页
第4页 / 共10页
硬件实习淮阴工学院统计按键次数文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

硬件实习淮阴工学院统计按键次数文档格式.docx

《硬件实习淮阴工学院统计按键次数文档格式.docx》由会员分享,可在线阅读,更多相关《硬件实习淮阴工学院统计按键次数文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

硬件实习淮阴工学院统计按键次数文档格式.docx

本次实习为计数器的应用,利用定时器/计数器0实现按键次数的统计功能,即利用单片机内部定时的功能达到技术的效果。

本次课程实习主要对89C52单片机进行了研究,对89C52单片机内部结构有一个感性的认识,利用89C52单片机内部的定时/计数功能,通过LED灯的亮灭更加形象生动。

并一同设计复位电路,达到按键按下使定时器停止计时和开始计时的效果。

为达到上面的功能,主要用到了89C52单片机内部的定时器0、工作方式2,以晶振12MHz,以此达到所要求的效果。

 

关键词:

单片机;

计数器;

89C52

1课题综述

1.1课题意义

此次选的题目不是很难,但是这也是一次实践,可以为我们带来很多益处,更可以提高我们自己的动手能力,受益匪浅:

(1)可以使我们增进对单片机电路的感性认识,加深对理论方面的理解。

(2)可以使我们掌握软硬件的有关知识等。

(3)可以使我们掌握软硬件设计过程、方法及实现,为以后设计和应用打下基础。

(4)培养我们学生的创造力和小组的团结合作能力。

(5)可以培养我们综合运用专业及基础知识,解决实际工程技术问题的能力。

(6)查阅图书资料各种工具书的能力,加深了我们对单片机这们课的认识。

(7)提高了我们工程绘图和识图的能力。

(8)增强了我们写技术报告和编制技术资料的能力。

(9)加深了我们对计数器工作原理和组成器件的认识。

1.2预期目标

利用AT89C52单片机的P1.0—P1.7做输出口,接八只发光二极管,用单片机的T0做为按钮开关。

编写程序,读编码开关状态,使发光二极管有计数显示效果。

编写程序,调试运行,一次按下按钮开关,接P1.0—P1.7的二极管一次发光。

并且起到能够计数的功能,即亮一次计数器就加一。

2系统分析

2.1涉及的基础知识

2.1.1AT89C52的引脚及功能

单片机AT89C52的引脚图如2-1所示

图2-1AT89C52引脚配置

AT89C52单片机芯片的40条引脚功能为:

主电源引脚VCC和VSS,VCC——(40脚)接+5V电压,VSS——(20脚)接地。

外接晶体引脚XTAL1和XTAL2,XTAL1(19脚)接外部晶体的一个引脚。

XTAL2(18脚)接外晶体的另一端。

控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP,RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。

ALE/PROG(30脚):

当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。

即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。

PSEN(29脚):

此脚的输出是外部程序存储器的读选通信号。

在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。

但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。

PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。

EA/VPP(引脚):

当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。

当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。

输入/输出(I/O)引脚P0、P1、P2、P3(共32根)P0口(39脚至32脚):

是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。

P1口(1脚至8脚):

是准双向8位I/O口。

由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。

P2口(21脚至28脚):

在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。

P3口(10脚至17脚):

是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。

P3能驱动(吸收或输出电流)4个LS型的TTL负载

2.1.2定时/计数器的结构

定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。

TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;

TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

TMOD用于设置其工作方式;

TCON用于控制其启动和中断申请。

工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。

2.1.3定时方式选择寄存器(TMOD)

本次设计用到了计时器0,而TMOD寄存器用于设定定时器/计数器的工作方式。

寄存器地址为89H,但他没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。

该寄存器位定义如表3-1所示:

表2-1TMOD寄存器

B7H

B6H

B5H

B4H

B3H

B2H

B1H

B0H

GATE

C/T

M1

M0

B7H~B4H:

定时器/计数器1

B3H~B0H:

定时器/计数器0

位定义如下:

GATE:

门控位。

M1M0—工作方式选择。

M1M0=00,工作方式0;

M1M0=01,工作方式1;

M1M0=10,工作方式2;

M1M0=11,工作方式3.

2.1.4定时器/计数器的工作方式2

本设计使用的是定时器/工作方式2,即使方式寄存器TMOD中M1M0=10时,设置为工作方式2,定时器/计数器设置为可自动装载计数初值的8位定时器/计数器,在这种方式下,TL0(TL1)被定义为计数器,TH0(或TH1)被定义为赋值寄存器,其逻辑结构图如图2-2所示,当计数器TL0计满产生溢出时,不仅使溢出标志TF0置1,同时还自动打开TH0和TL0之间的三态门,使TH0的内容重新装入TL0中,并继续计数操作,TH0的内容可通过编程预置,重新装载后其内容不变,因而用户可省去重新装入计数初值的程序。

图2-2定时器/计数器0工作方式2的逻辑结构

2.1.5复位电路

目前,在单片机系统中使用过4中类型的复位电路,分别为:

积分电路型、微分电路型、比较器型和看门狗型。

其中前3种是在芯片外面用分立元件或集成电路芯片搭建,而最后一种位于芯片内部,是单片机芯片的一部分。

对于片外复位电路,无论那种类型,加电复位和手动复位都是必不可少的基本功能。

本次设计用到了积分型电路。

积分型复位电路实在积分电路的基础上形成的,用于产生低电平复位信号。

图2-3是最基本的也是这次设计使用到的复位电路。

图2-3

2.2解决的基本思路

利用AT89C52单片机内部的计数器0、工作方式2进行设计定时器,并相应的设计一复位电路。

即TMOD=00000110。

2.3总体方案

利用AT89C52单片机内部的定时器0、工作方式2进行设计定时器,并相应的设计一复位电路。

利用一个按键起到计数器停止工作和开始工作的功能,编写代码实现计数器同济按键次数的功能,并且使二极管亮。

3系统设计

3.1原理图设计

图3-1

所用电子元器件单:

AT89C52:

1个;

电路板:

220欧姆电阻:

8个;

发光二极管:

电容(30pf):

2个;

晶振(12MHz):

按键:

1个。

3.2PCB设计

图3-2

3.3程序流程图

图3-3程序流程图

4代码编写

4.1汇编代码

这是我刚开始的想法,但是遗憾的是没有运行成功,被小组PASS掉了。

采用定时器/计数器0,工作方式2,晶振为12MHz的代码为:

ORG0000H;

程序入口地址

LJMPMAIN

ORG0100H;

MAIN入口地址

MAIN:

MOVIE,#00H;

禁止定时器中断

MOVTMOD,#02H;

设置计数器0为工作方式2

LOOP1:

MOVTH0,#FFH;

保存计数初值

MOVTL0,#FFH;

预置计数初值

JBP2.0,$;

判断开关是否还处于被按下的状态

JNBP2.0,$;

P2.0=0?

;

判断开关是否释放

SETBTR0;

启动运行控制

SETBEA;

中断总允许

SETBET0;

中断允许

ADDP2,#01H;

计数

END

4.2C代码

由于汇编代码刚开始没有运行成功,对汇编掌握也不是精通,与同组人员商量后运用C代码实现相应功能,具体C代码如下:

#include<

reg51.h>

unsignedcharcounter;

//定义无符号计数counter

voidmain(void)

{

counter=0;

//计数器赋初值0

P2=0x00;

//将P2口复信号00000000,灯灭

TMOD=0X06;

//设置工作方式2

TH0=256-1;

//高位置位11111111

TL0=256-1;

//低位置位11111111

ET0=1;

//中断允许

EA=1;

//中断总允许

TR0=1;

//启动运行控制

while

(1)//循环

P2=counter;

//赋值计数

}

voidcounter0(void)interrupt1using0

counter++;

//计数器累加

5实验Proteus仿真

图5-1Proteus仿真图

总结

回顾此次硬件实习,至今我仍感慨颇多,从理论到实践,整整一个星期的日子里,我学到了很多很多的东西,不仅仅巩固了以前所学过的知识,而且学到了很多在书本上所学不到的内容。

例如定时器的设计,书上虽然讲的很详细,但真正操作起来,却是很难,不仅要理解AT89C52引脚及其个个引脚的功能,还要对对这些引脚的地址和一些寻址方法要了解,仅仅这些还是不够,还要编写相应的程序进行调试,这才是最重要也是最能体现能力的地方。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践想结合起来,从理论中得出结论,才是真正的知识。

才能提高自己的实际动手能力和独立思考的能力。

还有一点,也是我觉得最重要的一点,就是团队的精神,团结、互助这些精神正是团队精神的核心,在这次实习中都有体现。

且同够这次设计,同学之间的默契跟好了,关系也随之升华了。

特别是在组长的带领下,每个人都在这次设计中发挥了自身的价值,都作出了自己的贡献。

在设计的过程中我也遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解的不够深,掌握的不够牢固,通过这次单片机课程设计,我对单片机有了更深一层的理解,也对单片机产生了浓厚的兴趣。

希望自己以后在单片机方面有一定的进步。

致谢

从大一到现在已经经历了好几次课程设计和实习,每次我的收获都很多。

实习是理论与实践相结合的体现,我们经常对课本上的知识不能充分的理解,一部分原因是因为课本上的知识比较抽象,往往不能被大多数人所接受,另外一部分原因是同学吗比较懒惰,一遇到不理解的问题就逃避,,而课程设计就弥补了这两个缺点。

同学们在做课程设计的时候,遇到不会的问题,会自觉的去查找资料,,解决所面临的问题。

这次课程设计是以分组的形式展开的,而且每组都有组长,我们组员在组长的带领下,每个人都有自己的事情做,没有一个人偷懒,都尽自己的能力在为设计努力着。

课程设计一方面还开发我们想象力的能力,例如本次设计中用户界面的设计,不同的人有不同方法,界面上控件有不同的格局,不同的菜单选项,每个控件所对应的功能也不一样,只要是自己做的东西,答辩时对老师问的问题就不会百口莫辩。

经过这次课程设计,对我的自学能力又进一步的提高,对书本知识的认识更加充分和深刻,同学之间团结互助的精神体现的淋漓精致,老师与同学之间的距离也更近了,交流也更多了。

师生之间的关系进一步得到了升华。

感谢学校给我们课程设计的机会,感谢老师对我们的谆谆教导,同时也要谢谢那些帮助同学的学生,他们不厌其烦的说明,感谢他们,感谢所有作出贡献的人!

参考文献

1李广弟,朱月秀,冷祖祁.单片机基础.第3版.北京:

北京航空航天大学出版社,2007.6

2张春光.微型计算机控制技术.北京:

化学工业出版社,2002

3楼然苗,李光飞.北京航空航天大学出版社,2002

4蔡美琴.MCS-51系列单片机系统及其应用.北京:

高等教育出版社,1992

5俞光昀.计算机控制技术.北京:

电子工业出版社,2002

6刘国荣.计算机控制技术与应用.北京:

机械工业出版社,2002

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

当前位置:首页 > PPT模板 > 艺术创意

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

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