单片机课程设计 计数器_第1页
单片机课程设计 计数器_第2页
单片机课程设计 计数器_第3页
单片机课程设计 计数器_第4页
单片机课程设计 计数器_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计题 目定时器学 院华南理工大学广州学院专 业电子信息工程班 级电信3班姓 名杨振刚 43号指导教师肖婷2011年 5月 8日目 录一、课程设计题目(3)二、内容要求(3)三、目的和意义(3)四、总体方案设计思路(3)五、仿真电路设计(4)六、软件设计(7)七、仿真调试(10)八、实际目标时情况(10)十、参考文件(11)一、课程设计题目计时精度为1ms的电子定时器,可实现正计时。要求:定时器启动后,正常计数,按暂停/继续按钮,定时器暂停计时,再按一次暂停/继续按钮,计数器接着计数;按“清零“按钮后,定时器清零,;按退出”按钮,退出计数器模式。二、内容要求定时器启动后,正常计数,按

2、暂停/继续按钮,定时器暂停计时,再按一次暂停/继续按钮,计数器接着计数;按“清零“按钮后,定时器清零,;按退出”按钮,退出计数器模式。三、目的和意义1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。2、综合运用所学的单片机原理与应用理论知识,通过实践加强对所学知识 的理解,具备设计单片机应用系统的能力。 3、 通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。4、 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。四、总体方案设计思路本实验利用单片机的定时器/计数器定时和记

3、数的原理,通过采用proteus仿真软件来模拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制表的计数以及计数的开启/暂停/继续与复位! 其中有三个数码管用来显示数据,二个数码管显示秒个位和十位,另一个数码管显示十分之一秒,十分之一秒的数码管计数从09,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。当计数超过范围是所有数码管全部清零重新计数。五、仿真电路设计AT89C51的芯片概述 AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程

4、序内存,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 其工作电压在4.5V,一般我们选用5V电压。外形及引脚排列如图2所示 图1:89C51的核心电路框图l 管脚说明(1)电源及时钟引脚(4个)Vcc: 电源接入引脚Vss:接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器的

5、另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。(2)控制线引脚(4个)RST/Vpd:复位信号输入引脚/备用电源输入引脚;ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚:EA:内外内存选择引脚/片外EPROM编程电压输入引脚;PSEN:外部程序内存选通信号输出引脚。(3)并行I/O引脚P0.0-P0.7:一般I/O口引脚或数据/低位地址总线复用引脚;P1.0-P1.7:一般I/O口引脚;P2.0-P2.7:一般I/O口引脚或高位位址总线引脚;P3.0-P3.7:一般I/O口引脚或第二功能引脚元器件介绍及参数选择本设计中还用到其它一些元器件,例如:晶振,电容,电阻排,电解

6、电容,开关等等。晶振采用频率为12MHZ,连接的两个电容为1nF;电解电容为22uf;开关功能是在仿真过程中,按下开关便能实现60秒继续暂停或复位功能。关键单元 图2P3.4实现继续暂停功能P3.7实现复位功能 图3从左到右表示十位、个位、十分之一 图4 最少单片机系统电路原理图 六、软件设计是否是否手动开关定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P0口和P2口送显示时间数码管显示中断返回主函数对定时器/计数器初始化始化程序开始判断P34口是否有低电平信号开中断并启动定时器开始、暂停或者继续计数置零判断P37口是否有低电平信号软件程序 #include #define TIM

7、ES 2sbit sta_end=P34;sbit reset=P37;int count=TIMES;unsigned char code table0=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;unsigned char code table1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*声明second10用于计数十分之一秒变化,second1用于记录秒的个*/ /*位,second2用于记录秒的十位*/unsigned int second10,second1,sec

8、ond2;bit bdata flag;/*以下是设置延时功能的函数*/ void Delay_1ms(unsigned int x) unsigned int i, j; for(i = 0; i x; i+) for(j = 0; j = 148; j+); /*以下是设置时间的函数*/void setTime() second10+; if(second10=10) /*当十分之一秒计数到十后从零重新计时*/ second10=0; /*同时秒计时个位加一*/second1+;if(second1=10) /*当秒计数个位到十后从零重新计时*/second1=0;second2+; /*

9、同时秒计时十位加一*/if(second2=6) second2=0; /*以下是向LED管输数据并使之显示的函数*/void dispact() P1=table0second1; P0=table1second2; P2=table0second10;/*以下是设置时间函数和输数据函数被此函数调用实现,利用定时器中断*/Timer0 () interrupt 1 using 1 TH0 = (65535 - 50000)/256; TL0 = (65535 - 50000)%256; if(flag) count- ; if(count=0) setTime(); dispact(); c

10、ount=TIMES; void main(void) TMOD = 0x01; TH0 = (65535 - 50000)/256; /*定时器赋初值*/ TL0 = (65535 - 50000)%256; flag = 0; EA = 1; /*cpu开中断*/ TR0 = 1; /*利用定时器0*/ ET0 = 1; P1= 0x3f ; P2=0x3f ;P0= 0xc0 ; /*外部中断允许*/ while(1) if(!sta_end) Delay_1ms(1); if(flag = 0) flag = 1; else flag = 0; if(!reset) /*复位设置,全部

11、清零*/flag = 0; second10 = 0; second1 = 0; second2 = 0; dispact(); 定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。 (2)1秒等于微秒,而每一计时脉冲是1微秒,因此需输入个计时脉冲,方可达到1秒的时间。本设计中,设定中断每次溢出时间50ms。(3)由上式得知,循环2次即可达到100ms定时(4)设定TH0 = (65535 - 50000)/256;TL0 = (65535 - 50000)%256;(5)上电时,显示000,按下开关开始计时。七、仿真调试调试方法:首先用Keil软件将C编译成

12、HEX文件,打开Keil软件,新建一个文文件,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Options for target,选择OUTPUT子菜单,在Create HEX Fi前打钩,DeBug子菜单中,Settings选择ProteusVSM Simulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN檔,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试八、实际目标时情况在仿真,基本满足题目要求,可以做到计时的开始、暂停、继续和复位,但在暂停和继续的功能实现上,

13、不时出现失灵的现象。九、课程设计心得体会通过这个课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。本次电子课程设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深.首先摆在我面前的是要先弄懂所要设计电路的原理,于是最开始我在拿到题目之后就查找了大量的相关的数据,再加上平时理论课的学习以及充分利用了网络资源和在图书馆借了相关的书籍资料,在仔细分析了这个题目所要达到的目的之后,初步确定了原理图。接下来的是单元电路的设计,以及进一步的分析其原理,实现哪些功能需要哪些电路,

14、在此之间我们用到了以前没有用到过的芯片,但最终我们还是弄清楚了其原理。经过几天研究,终于确定好了符合要求的电路。在电路确定之后就需要编写程序,经过多次的修改和仿真,程序也顺利的编写完成。经过这些天的学习我深刻的体会到实际与理论有很大的区别。在我们学习的过程中不仅考验了我们对知识的吸收和掌握,而且也考验了我们的细心和耐心。特别是在仿真过程中对参数的改进和电路图的查找过程中,我深有体会。我认为这次实习不仅仅学习了软件知识,还提高了我们专业素质。作为一个电信专业的学生,我深知课程设计的重要性。这次课程设计我从刚开始的什么都不懂不会,到现在的基本了解了一个电路组件是如何构成的,完成这次课程设计我觉得收获很多,不但进一步掌握了单片机的知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论