毕业论文:基于51单片机的多功能定时器_第1页
毕业论文:基于51单片机的多功能定时器_第2页
毕业论文:基于51单片机的多功能定时器_第3页
毕业论文:基于51单片机的多功能定时器_第4页
毕业论文:基于51单片机的多功能定时器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业论文:基于51单片机的多功能定时器 黄 冈 师 院单片机技术课程设计报告项目名称专业年级学 号学生姓名 指导教师 冯 杰 报告完成日期年月第一章 绪论11系统背景111单片机技术及其发展特点早期的单片机Single Chip Microcomputer单片微计算机只是将CPU及计算机外围功能单元如IO口定时计时器UARTRAMROM等集成在一块芯片上随着单片机技术的发展以及微处理器 MPU 技术及超大规模集成电路技术的发展单片机集成了更多的用于控制目的的功能单元如高速IO口ADCPWMWATCHDOG I2CBus - Inter IC BusCAN Bus Controller Area

2、 Network Bus等从而成为严格意义上的单片微控制器Single Chip Microcontroller图10一4所示的为MCS51单片机片内总体结构框图 单片机系统以单片机为核心部件可分为单机应用和多机应用单机应用是指一个应用系统中只使用一个单片机这是目前应用最多的方式多机应用是单片机在高科技领域应用的主要模式单片机的高可靠性高控制功能及高运行速度的三高特点必然使得未来的高科技工程系统将采用da单片机多机系统作为主要的发展方向图10一5所示的为典型的单片机系统原理框图图10一4 MCS51单片机片内总体结构框图 单片机的生存周期相对于普通CPU而言非常之长如MCS8051已超过15年

3、以某类单片机如805152为核心集成不同IO功能模块的新单片机系列层出不穷而某些单片机更是突出了以功能分类的特点如Microchip 公司的 PIC单片机8位16位32位单片机共同发展也是当前单片机技术发展的另一特点单片机运算速度越来越快为提高单片机抗干扰能力和降低噪声尽量不采用提高时钟频率单一措施而是通过调整单片机的内部时序使用琐相环技术或内部倍频技术等技术在不提高时钟频率的条件下使运算速度提高了很多 图10-5 典型单片机系统原理框图低电压与低功耗是单片机技术的发展的另一个特点采用最新的集成电路制造技术全静态设计使时钟频率从直流到数十兆任选使功耗不断下降PIC单片机Motorola的某些单

4、片机等在这方面具有很强的优势为提高单片机系统的抗电磁干扰能力使产品能适应恶劣的工作环境满足电磁兼容性方面更高标准的要求各单片机商家尽量采用低噪声与高可靠性技术在单片机内部电路中采取了一些新的技术措施如增加了抗EMI电路增强了WATCHDOG的性能等为降低单片机产品的成本广泛采用掩膜Mask ROM一次编程OTP-One Time Programmable和多次编程MTP-Multi Time Programmable单片机过去成熟的单片机产品一般采用掩膜型单片机由于掩膜需要一定的生产周期而一次编程型单片机价格不断下降使得近年来直接使用一次编程完成最终产品制造更为流行近年来一次编程型单片机需量大

5、幅度上扬为适应这种需求许多单片机都采用了在片编程技术In System Programming未编程的一次编程芯片先焊在印刷板上然后再其进行编程解决了批量写一次编程芯片时容易出现的芯片与写入器接触不好的问题编程线与IO线共用不增加单片机的额外引脚而多次编程向一次编程提出了挑战一些单片机厂商采用FLASH存储器作为程序存储器如ATMEL 公司的单片机可多次编程单片机的应用领域目前单片机渗透到我们生活的各个领域几乎很难找到哪个领域没有单片机的踪迹导弹的导航装置飞机上各种仪表的控制计算机的网络通讯与数据传输工业自动化过程的实时控制和数据处理广泛使用的各种智能IC卡民用豪华轿车的安全保障系统录象机摄象

6、机全自动洗衣机的控制以及程控玩具电子宠物等等这些都离不开单片机更不用说自动控制领域的机器人智能仪表医疗器械了因此单片机的学习开发与应用将造就一批计算机应用与智能化控制的科学家工程师单片机广泛应用于仪器仪表家用电器医用设备航空航天专用设备的智能化管理及过程控制等领域大致可分如下几个范畴1在智能仪器仪表上的应用单片机具有体积小功耗低控制功能强扩展灵活微型化和使用方便等优点广泛应用于仪器仪表中结合不同类型的传感器可实现诸如电压功率频率湿度温度流量速度厚度角度长度硬度元素压力等物理量的测量采用单片机控制使得仪器仪表数字化智能化微型化且功能比起采用电子或数字电路更加强大例如精密的测量设备功率计示波器各种

7、分析仪2在工业控制中的应用用单片机可以构成形式多样的控制系统数据采集系统例如工厂流水线的智能化管理电梯智能化控制各种报警系统与计算机联网构成二级控制系统等3在家用电器中的应用可以这样说现在的家用电器基本上都采用了单片机控制从电饭褒洗衣机电冰箱空调机彩电其他音响视频器材再到电子秤量设备五花八门无所不在4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口可以很方便地与计算机进行数据通信为在计算机网络和通信设备间的应用提供了极好的物质条件现在的通信设备基本上都实现了单片机智能控制从 机小型程控交换机楼宇自动通信呼叫系统列车无线通信再到日常工作中随处可见的移动 集群移动通信无线电对讲机等5单片

8、机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛例如医用呼吸机各种分析仪监护仪超声诊断设备及病床呼叫系统等等此外单片机在工商金融科研教育国防航空航天等领域都有着十分广泛的用途21 系统总体设计框架结构复位电路通过复位电路使所有的状态都恢复原始状态时钟电路通过该电路产生单片机工作所需要的时钟信号按键电路通过该电路改变单片机控制的功能单片机 控制整个电路数码管 显示时间或者其它22 系统硬件单元电路设计221 时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的在单片机芯片内部有一个高增益反相放大器其输入端为引脚XTAL1其输出端为引脚XTAL2只需要在片外通过XTAL1和XTAL2

9、引脚跨接晶体振荡器或在引脚与地之间加接微调电容形成反馈电路振荡器即可工作由于该晶振使用的是12MHZ的晶体因此它的时钟周期是0167us机器周期为1us222 复位电路设计2 23 按键电路设计23 系统硬件总电路第三章 系统软件设计31 系统软件流程图主程序流程图说明程序开始执行启动定时器0和定时器1然后执行while语句但条件一直成立因此while语句中的子函数一直在执行If语句也一直在判断有没有shift键有没有按下是否进入了调时调分的阶段一段进入通过键盘扫描和键值判断使得按键处理子程序进入新的状态从而数码管显示新的内容32 系统程序设计include define uchar unsi

10、gned chardefine uint unsigned int定义管脚sbit RELAY P10sbit LED1 P11sbit LED2 P12sbit LED3 P13sbit LED4 P14sbit LED5 P15sbit LED6 P16sbit LED7 P17sbit Line1 P21sbit Line2 P20定义缓冲区及初始化uchar data TimeTab6 0x060x5b0x4f0x66 uchar data Tab 0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f uchar data TimeTab14TimeTab2

11、4定义参数及初始化char hour 12minute 34second 0h 0m 0h1 0m1 0char second1char flag 0flag1 0flag2 0uchar Keyno 0uchar num 0count 0uchar STATE 0延时子函数void Delay uint x 自定义延时约01ms uint t while -x for t 0t 120t 刷新缓冲区子程序 void RefreshTab void if flag 0 TimeTab0 Tabhour10 TimeTab1 Tabhour10 TimeTab2 Tabminute10 Time

12、Tab3 Tabminute10 if flag 1 TimeTab10 Tabh10 TimeTab11 Tabh10 TimeTab12 Tabm10 TimeTab13 Tabm10 if flag 2 TimeTab20 Tabh110 TimeTab21 Tabh110 TimeTab22 Tabm110 TimeTab23 Tabm110 if flag 4 TimeTab0 0x00 TimeTab1 0x00 TimeTab2 Tab 50-second1 10 TimeTab3 Tab 50-second1 10 按键处理子程序 void Key_Process void s

13、witch STATE case 0 if Keyno 1 STATE 1 breakcase 1 if Keyno 2 hourif hour 24 hour 0 if Keyno 3 hour-if hour -1 hour 23 if Keyno 1 STATE 2 breakcase 2 if Keyno 2 minuteif minute 60 minute 0 if Keyno 3 minute-if minute -1 minute 59 if Keyno 1 STATE 3flag 1 breakcase 3 if Keyno 2 hif h 24 h 0 if Keyno 3

14、 h-if h -1 h 23 if Keyno 1 STATE 4 breakcase 4 if Keyno 2 mif m 60 m 0 if Keyno 3 m-if m -1 m 59 if Keyno 1 STATE 5flag 0 breakcase 5 if Keyno 1 STATE 6flag 2 breakcase 6if Keyno 2 h1if h1 24 h1 0 if Keyno 3 h1-if h1 -1 h1 23 if Keyno 1 STATE 7 breakcase 7 if Keyno 2 m1if m1 60 m1 0 if Keyno 3 m1-if

15、 m1 -1 m1 59 if Keyno 1 STATE 8flag 0 breakcase 8if Keyno 4 STATE 9flag 3 breakcase 9if Keyno 5 STATE 10second1 20flag 4 if Keyno 1 STATE 0flag 0 breakcase 10if Keyno 1 STATE 0flag 0 breakcase 11if Keyno 1 STATE 0flag 0 breakcase 12if Keyno 1 STATE 0flag 0 breakdefaultbreak 数码管显示子程序 void SEG_Display

16、 void if flag 0 P0 TimeTabnum if flag 1 P0 TimeTab1num if flag 2 P0 TimeTab2num if flag 3 P0 0x49 if flag 4 P0 TimeTabnum 红绿灯void hlhd void if second1 50STATE 10 STATE 11second1 45 if second1 50STATE 11 STATE 12second1 30 if second1 50STATE 12 STATE 10second1 20 比较函数 void compare void if h hour if m

17、 minute STATE 4if minute m2 STATE 0 if h1 hour if m1 minute STATE 6if minute m12 STATE 0 LED显示子程序 void LED_Display void switch STATE case 0 LED2 0LED3 0LED4 0LED5 0LED6 0LED7 0breakcase 1 LED2 1LED3 0LED4 0LED5 0LED6 0LED7 0breakcase 2 LED3 1LED2 0LED4 0LED5 0LED6 0LED7 0breakcase 3 LED4 1LED2 0LED3

18、 0LED5 0LED6 0LED7 0breakcase 4 LED4 1LED2 0LED3 0LED5 0LED6 0LED7 0breakcase 6 LED5 1LED2 0LED3 0LED4 0LED6 0LED7 0breakcase 7 LED5 1LED2 0LED3 0LED4 0LED6 0LED7 0breakcase 8 LED2 1LED3 1LED4 1LED5 0LED6 0LED7 0breakcase 9 LED2 1LED3 1LED4 1LED5 0LED6 0LED7 0breakcase 10 LED2 0LED3 1LED4 0LED5 0LED

19、6 0LED7 0breakcase 11 LED2 1LED3 0LED4 0LED5 0LED6 0LED7 0breakcase 12 LED2 0LED3 0LED4 1LED5 0LED6 0LED7 0breakdefault break 主程序 void main void P1 0x00EA 1TMOD 0x01定时器0计时50ms in 12M crystal TH0 0x3C 初值TL0 0xB0ET0 1TR0 1TMOD 0x10 定时器1用于动态扫描TH1 0xFa 初值TL1 0xF0ET1 1TR1 1 while 1 RefreshTab LED_Display

20、 compare hlhd if Line1Line2 Delay 200 Key_Process 定时器0中断用于计时 void Timer0 void interrupt 1 TH0 0x3C 重新赋值50ms溢出TL0 0xB0countif count 10 LED1 LED1 if count 20 count 0 secondif flag 4 second1 秒加1 if second 60 second 0 minute 分加1 if minute 60 minute 0 hour 时加1 if hour 24 hour 0 定时器1中断扫描显示键值判断 void Timer1

21、 void interrupt 3 TH1 0xFa 定时2ms显示下一个数码管TL1 0xF0switch num case 0 P2 0x0fif Line1 Keyno 1if Line2 Keyno 6SEG_Display breakcase 1 P2 0x1fif Line1 Keyno 4if Line2 Keyno 5SEG_Display breakcase 2 P2 0x2fif Line1 Keyno 3if Line2 Keyno 12SEG_Display breakcase 3 P2 0x3fif Line1 Keyno 7if Line2 Keyno 8SEG_Display breakcase 4 P2 0x4fif Line1 K

温馨提示

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

评论

0/150

提交评论