秒定时器.docx

上传人:b****3 文档编号:5056192 上传时间:2022-12-12 格式:DOCX 页数:12 大小:181.52KB
下载 相关 举报
秒定时器.docx_第1页
第1页 / 共12页
秒定时器.docx_第2页
第2页 / 共12页
秒定时器.docx_第3页
第3页 / 共12页
秒定时器.docx_第4页
第4页 / 共12页
秒定时器.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

秒定时器.docx

《秒定时器.docx》由会员分享,可在线阅读,更多相关《秒定时器.docx(12页珍藏版)》请在冰豆网上搜索。

秒定时器.docx

秒定时器

课程报告

课程新型单片机实践

题目60秒定时器

二级学院延陵学院

班级08自Y1

姓名李佳明

学号08121207

指导教师庄华

设计时间

常州工学院《新型单片机》设计任务书

学院:

延陵学院专业:

自动化班级:

08自Y1

学生

姓名

李佳明 

指导老师

庄华 

职称

讲师 

课题姓名

60秒定时器

1、设计内容:

硬件电路的设计、软件电路的设计

2、总体方案的论证、选择。

软件流程图的设计,硬件电路各部分的设计,软件的调试、整机的调试。

3、撰写设计报告

4、答辩考核

1、采用MCS-51单片机作为微处理器。

2、设计一个60秒定时器LED数码字符显示器。

3、在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。

4、动态显示从“00”到“59”的字符,每一秒增加1。

第一周:

查阅资料,编写程序,画仿真图及调试。

第二周:

写课程报告,做实物。

第三周:

交课程报告,交实物。

主要

参考

文献

[1]张靖武,周灵彬.《单片机系统的PROTEUS设计与仿真》.北京:

电子工业出版社.2011,2

[2]张义和,王敏男.《例说51单片机》.人民邮电出版社.2011,1

[3]何立民.单片机高级教程.第1版.北京:

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

[4]AT89C51DATASHEEPPhilipsSemiconductors

地点

院A613

起止日期

2011-11-23~2011-12-19

方案论证……………………………………………………………………………………………………………………….5

方案选择……………………………………………………………………………………………………………………….5

最小系统介绍……………………………………………………………………………………………………………….6

的芯片概述…………………………………………………………………………………….7

数码管显示器概述…………………………………………………………………………………8

其他元器件介绍及参数选择……………………………………………………………………….9

 

keil程序运行图………………………………………………………………………………………………………………………..16

总原理图…………………………………………………………………………………………………………………………………..16

 

19

B实物图………………………………………………………………………………………………………………………..20

绪论

在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。

现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。

但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:

单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。

从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。

这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。

微控制技术是一种全新的概念,是对传统控制技术的一次革命。

随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。

并采用电子秤原理可根据输入单价准确的计算出物体的金额。

总体方案设计

方案论证

1.目的

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。

课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。

通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。

2.要求

单片机控制的60s定时器

此实验将利用Timer0作为定时器,两个七段显示器从“00”开始显示,每一秒增加1,到达“59”后,再从“00”开始,也就是60秒的定时器。

每60秒,D1切换一次。

方案选择

具体设计:

通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM–ANODE型号数码管,分十位控制和个位控制,达到显示60秒定时器时的目的。

通过复位电路,在仿真过程中点击开关实现60复位。

第二章系统硬件电路的设计

硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器

件的选择及其参数的确定;

最小系统介绍

单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。

单片机最小系统晶振Y1也可以采用6MHz或者,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。

单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好

口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。

其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。

计数值N乘以机器周期Tcy就是定时时间t。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。

在每个机器周期的S5P2期间采样T0、T1引脚电平。

当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。

由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。

当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。

标识符号地址寄存器名称

P30B0HI/O口3寄存器

PCON87H电源控制及波特率选择寄存器

SCON98H串行口控制寄存器

SBUF99H串行数据缓冲寄存器

TCON88H定时控制寄存器

TMOD89H定时器方式选择寄存器

TL08AH定时器0低8位

TH08CH定时器0高8位

TL18BH定时器1低8位

TH18DH定时器1高8位

图2-1

T89C51的芯片概述

AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉

的方案。

其工作电压在-5V,一般我们选用+5V电压。

外形及引脚排列如图2-2所示

图2-2:

89C51的核心电路框图

LED数码管显示器概述

本设计中采用的是7SEG–COM–ANODE型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。

实物如图2-3所示:

图2-3:

7SEG–COM–ANODE型号数码管

数码管的分类  

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

LED数码管有两种连接方法如下:

共阳极接法。

把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法。

把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

图2-3-1:

常见LED数码管

数码管参数  

8字高度:

8字上沿与下沿的距离。

比外型高度小。

通常用英寸来表示。

范围一般为英寸。

  长*宽*高:

长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。

  时钟点:

四位数码管中,第二位8与第三位8字中间的二个点。

一般用于显示时钟中的秒。

其他元器件介绍及参数选择

本设计中还用到其他一些元器件,例如:

晶振,电容,电阻排,电解电容,开关等等。

晶振采用频率为12MHZ,连接的两个电容为30pF;电阻排为470*8,能够实现8个470欧电阻的等效替换;电解电容为10u;开关功能是在仿真过程中,按下开关便能实现60秒复位。

第三章系统软件电路的设计

主程序设计

主程序首先声明变量,然后设置定时器中断,再设置定时值启动定时器,再关闭LED灯,最后停滞。

主程序流程图:

 

3-1主程序图

主程序如下:

main()启动Keilc51

2.新建一个工程。

Project菜单——〉Newproject,选择好我们要保存的文件夹后,键入Frist保存。

接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确定。

3.在工程中加入文件。

新建一个文件,文件菜单File——〉New,我们再选择:

文件菜单File——〉SaveAs?

(另存为)弹出对话框后,我们文件名框中键入(注意文件后缀名是.c)保存。

C文件建好啦。

现在我们把文件加入到工程中去。

点击Target1前面的+号,右键单击SourceGroup1——〉选择AddFilestoGroup,SourceGroup1,选择添加Add。

编译运行,检查程序是否有错误。

PROTEUS

Proteus是一款EDA软件,该软件具有模拟电路仿真,数字电路仿真,单片机以及外围电路组成的系统的仿真,RS-232动态仿真,I2C调试器,SPI调试器,键盘和LCD系统的仿真,以及各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。

该软件目前支持的单片机类型有:

68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各种外围芯片。

该软件还支持大量的存储器和外围芯片,所以,该软件是一款集单片机和SPICE分析于一身的仿真软件。

调试方法:

首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个文档,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Optionsfortarget,选择OUTPUT子菜单,在CreateHEXFi前打钩,DeBug子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。

图4-1Keil程序运行图

图4-2总原理图

总结

本次课程设计实现了用单片机AT89C51的定时器实现60s定时器时。

为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

对实验的结果我们得到了认证,这种方法是可行的。

在这次单片机课程设计中,我觉得最大的收获就是提高了自己的动手及思考解决问题的能力,把平时学习的只是融会贯通,相互联系,最后才做出一个完整的课程设计。

在仿真过程中却发现并不是想象的那么简单,设计的过程中失败了很多次,但通过自己的不懈努力最终获得设计的成

要拓展自己的知识面,使自己的知识系统化知识需要接触社会的方方面面,光有书本知识是远远不够的。

要求自己在以后的学习中多想,多读,多学。

要求自己的写作水平一定要过硬。

经验的提高,让我今后在设计时更加方便、快捷,也为毕业后的就业提供了保障。

参考文献:

[1]张靖武,周灵彬.《单片机系统的PROTEUS设计与仿真》.电子工业出版社.

[2]夏继强.单片机实验与实践教程.北京:

北京航空航天大学出版社,2001.

[3]何立民.从Cygnal80C51F看8位单片机发展之路.单片机与嵌入式系统应用,2002年,第5期:

P5~8.

[4]何立民.单片机高级教程.第1版.北京:

北京航空航天大学出版社,2001.

[5]AT89C51DATASHEEPPhilipsSemiconductors.

[6]Yang.Y.,Yi.J.,Woo,.,andKim.B.:

‘OptimumdesignforlinearityandefficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique’,Microw.J.,2001,44,(12),pp.20–36.

[7]吴金戌,沈庆阳,郭庭吉.《8051单片机实践与应用》.清华大学出版社.

[8]李群芳,肖看.《单片机原理、接口及应用》.北京:

清华大学出版社

附录

A.元件清单

元器件名称

型号

数目

1、AT89C51单片机

1块

2、晶振

12MHZ

1块

3、7段LED数码管

共阳

2块

4、按钮开关

4只

5、极性电容

22uf

1只

6、极性电容

20pf

2只

7、电阻

10kΩ

1只

8、电阻

510Ω

16只

9、电源插座

1个

B.实物图

C.程序清单

/*-计时器实验3-60秒计数器,每1分钟LED反相1次*/

//==声明区================================

#include<>//定义8x51暂存器之标头档,P2-17~19

#defineSEGP2//定义七节显示器接至Port2

#defineSCANPP1//定义扫瞄线接至Port1

sbitLED=P0^7;//声明LED接至

/*声明T0计时相关声明*///THxTLx计算参考

#definecount_M150000//T0(MODE1)之计量值,

#defineTH_M1(65636-count_M1)/256//T0(MODE1)计量高8位元

#defineTL_M1(65636-count_M1)%256//T0(MODE1)计量低8位元

intcount_T0=0;//计算T0中断次数

/*声明T1扫瞄相关声明*/

#definecount_M2250//T1(MODE2)之计量值,

#defineTH_M2(256-count_M2)//T1(MODE2)自动载入计量

#defineTL_M2(256-count_M2)//T1(MODE2)计数量

charcount_T1=0;//计算T1中断次数

/*声明七节显示器驱动信号阵列(共阳)*/

charcodeTAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,//数字0-4

0x92,0x83,0xf8,0x80,0x98};//数字5-9

chardisp[2]={0xc0,0xc0};//声明显示区阵列初始显示00

/*声明基本变量*/

charseconds=0;//秒数

charscan=0;//扫瞄信号

//==主程序================================

main()//主程序开始

{IE=0x8a;//10001010,启用TF0、TF1中断(6-4页)

TMOD=0x21;//00100001,T1采mode2、T0采mode1

TH0=TH_M1;TL0=TL_M1;//设置T0计数量高8位元、低8位元

TR0=1;//启动T0(7-7页)

TH1=TH_M2;TL1=TL_M2;//设置T1自动载入值、计数量

TR1=1;//启动T1

LED=1;//关闭LED

while

(1);//无穷回圈,程序停滞

}//主程序结束

//==T0中断子程序-计算并显示秒数==================

voidT0_1s(void)interrupt1//T0中断子程序开始

{TH0=TH_M1;TL0=TL_M1;//设置T0计数量高8位元、低8位元

if(++count_T0==20)//若中断20次,即=1秒

{count_T0=0;//重新计次

seconds++;//秒数加1

if(seconds==60)//若超过60秒

{seconds=0;//秒数归0,重新开始

LED=~LED;//切换LED

}//if叙述结束(超过60秒)

}//if叙述结束(中断20次)

disp[1]=TAB[seconds/10];//填入十位数显示区

disp[0]=TAB[seconds%10];//填入个位数显示区

}//T0中断子程序结束

//===T1中断子程序-扫瞄=========================

voidT1_8ms(void)interrupt3//T1中断子程序开始

{if(++count_T1==32)//若中断32次,即=8ms

{count_T1=0;//重新计次

if(++scan==3)scan=1;//若超过十位数,显示个位

SEG=0xff;//关闭7段显示器

SCANP=~scan;//输出扫瞄信号

SEG=disp[scan-1];//输出显示信号

}//结束if判断(中断32次)

}//T0中断子程序结束

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

当前位置:首页 > 高等教育 > 理学

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

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