片机课程设计--简易交通灯(PC机控制单片机).doc_第1页
片机课程设计--简易交通灯(PC机控制单片机).doc_第2页
片机课程设计--简易交通灯(PC机控制单片机).doc_第3页
片机课程设计--简易交通灯(PC机控制单片机).doc_第4页
片机课程设计--简易交通灯(PC机控制单片机).doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计指导书目 录前 言2课题一 基于串行通信控制的PWM脉冲发生器31.1目的31.2设计要求31.3硬件设计41.4软件设计41.5器材51.6调试步骤51.7参考书5课题二 数字电子钟72.1目的72.2设计要求72.3硬件设计72.4软件设计82.5器材102.6调试步骤102.7参考书11课题三 具有串行通信功能的电子钟123.1目的123.2设计要求123.3硬件设计123.4软件设计133.5集成开发环境Keil使用简介163.6器材183.7调试步骤193.8参考书19课题四 数码管动态扫描204.1目的204.2设计要求20课题五 基于DS18B20的远端温度采集模块214.1目的214.2设计要求21前 言单片机课程设计作为独立的教学环节,是计算机科学与技术、通信工程等相关专业集中实践性环节系列之一,是学习完单片机原理及应用课程后进行的一次综合练习。通过课程设计,旨在传授“理论与技术”、“理论与实践”的结合,注重实际问题的解决与处理,达到培养应用型人才的目的。本书共编排了三个课题,都是编者从多年实践中积累的产品或产品的一个部分,课题内容涉及显示、按键、串行通信、PWM控制等,单元模块都是课本上学过的典型模块,难度适中。课题一侧重于广泛应用于机器人控制的PWM波形的生成;课题二侧重于定时器、按键、LED显示的应用;课题三在课题二基础上增加了串行通信功能。为了提高学生课程设计效率,实验室可以配置套件供学生组装。根据计算机专业和通信专业的特点,编写了这本指导书,由于编书时间仓促,作者水平有限,书中错误之处难免,望读者批评指正。编 者课题一 基于串行通信控制的PWM脉冲发生器1.1目的控制步进电机时,一般都要求向步进电机控制器发送一定数目的PWM脉冲控制步进电机转过的角度,对直流电机也可用PWM脉冲对其调速。本课题希望设计一个PWM脉冲发生器,同时可通过串口控制脉冲频率。通过本课题的设计达到如下目的:1、熟悉MCS51定时/计数器、中断的应用。2、掌握多种PWM波形生成方式。3、掌握七段码LED显示器的结构,七段码LED显示器的工作方式和显示程序的编程。4、掌握串行通信程序的编写。1.2设计要求89S518279三极管驱动MAX23274079PIN连接器(串口)OUTA0-3SL0-374LS154八个双色灯12个七段LED及八个双色灯7407P0P1CSP20A0P21ISP编程接口DB0-7OUTB0-31、从P1口任一IO输出1K、2K、3K、4K、5K、6K、7K、8K、9K、10K的脉冲,图11 系统框图通过示波器测试脉冲频率;2、频率值用两个七段LED显示出来;3、使用给定的串口调试工具,控制PWM脉冲发生器改变输出脉冲频率,同时改变LED显示数值。1.3硬件设计本系统中单片机通过8279扩展实现LED数码管和指示灯驱动,单片机通过MAX232串口芯片实现和PC机的通信。系统框图如图11所示。1.4软件设计对本课题,可先熟悉控制器硬件原理,熟悉Keil C51环境,,学习用C对8051编程,学习8279芯片接口及命令字,复习C对8051串行通讯接口。课题可分成PWM脉宽输出模块、显示模块和串行通讯模块,设计各模块参考设计方法如下:PWM脉宽输出模块:使用定时器中断产生脉冲,对时间常数计算:1KHz :周期1103秒,定时周期0.5103秒,晶振11.0592M,次数为(0.5*103)/(12/(11.0592*106)=461,时间常数216461FE332KHz :周期2103秒,定时周期1103秒,晶振11.0592M,次数为(1*103)/(12/(11.0592*106)=922,时间常数216922FC66PWM脉宽输出模块主程序中只需要初始化T0或T1, 1K-10K的时间常数可存入数组,中断服务程序从相应数组读入时间常数,参考框图如下:重置时间常数输出口取反 中断服务程序参考框图显示模块:显示模块初始化程序:#define COM8279 XBYTE0xFEFF /* 8279命令字地址*/#define DAT8279 XBYTE0xFCFF /*8279数据字地址*/COM8279=0xd1; doACC=COM8279; while(clflag=1); COM8279=0x18; COM8279=0x2a;串行通讯模块:使用串行中断,只接受数据,自定义通讯协议,例如:主机发 01H,表示需发生1KHZ脉冲;主机发 02H,表示需发生2KHZ脉冲;主机发 03H,表示需发生3KHZ脉冲;主机发 04H,表示需发生4KHZ脉冲;主机发 05H,表示需发生5KHZ脉冲;主机发 06H,表示需发生6KHZ脉冲;主机发 07H,表示需发生7KHZ脉冲;主机发 08H,表示需发生8KHZ脉冲;主机发 09H,表示需发生9KHZ脉冲;主机发 0AH,表示需发生10KHZ脉冲;1.5器材1、Keil C51软件2、SLISP V1.3 89S51烧写软件3、PWM脉冲发生器电路板4、89S51 ISP并口编程线5、直流稳压电源6、示波器1.6调试步骤1、软硬件联调;2、用编程器,将程序写入MCU芯片89C51;3、将芯片插入系统正常工作;4、检查结果。1.7参考书1、徐煜明.单片机原理及接口技术. 北京:电子工业出版社,2005.12、张友德.单片微型机. 上海:复旦大学出版社2000.23、马忠梅,籍顺心,张凯,马岩. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,2003.11课题二 数字电子钟2.1目的通过对数字电子钟的设计达到如下目的:1、熟悉MCS51定时/计数器、中断的应用。2、熟悉时钟时、分、秒计时方法,掌握编程技巧。3、掌握键盘的基本工作原理,键的识别,键抖动和重键问题的解决,键盘工作方式和键盘程序的编程。4、掌握七段码LED显示器的结构,七段码LED显示器的工作方式和显示程序的编程。2.2设计要求利用ATMEL89C51、INTEL8155、七段码LED、按键及常用外围器件,设计一个数字电子时钟,要求:1、设计实现电子时钟的硬件原理图。2、用T0定时器,产生时钟信号,设计定时中断程序。3、具有六位LED,分别显示时、分、秒,设计显示程序。4、可用键盘进行校对时间,设计键盘程序。2.3硬件设计本系统中单片机通过8155扩展实现LED数码管驱动。系统框图如下所示。图21 系统框图2.4软件设计1、 设计时钟计时(24小时进制计时)(1)实现时钟计时的基本方法 a计数初值计算。已知晶振频率为11.0592MHZ,用T0定时/计数器,以 方式2进行40ms的定时。 b采用中断方式进行溢出次数累计,计满25次即到秒计时。 c从秒到分,从分到时的计时,可通过累加器和数值比较实现。 d时钟显示及缓冲区分配 39H 3AH 3BH 3CH 3DH 3EH 时 分 秒 (2)程序流程设计 a主程序(MAIN):主程序的主要功能是进行定时器/计数器初始化编程,然后通过反复调用子程序的方法,等待40ms定时中断的到来。 b中断服务程序(PITO):中断服务程序的主要功能是进行计时操作。程序开始先判断计数,溢出是否满25次,不满25次表明还没达到最小计时单位秒,中断返回。否则进行计时操作。 c加1子程序(DAAD1):加1程序用于完成对秒、分、和时的加班操作,中断服务程序中在秒、分、时加1时调用此子程序。(3)时钟计时参考程序框图时钟计时参考程序框图见图22、232、 设计显示子程序(DIR)采用动态显示方式。所谓动态显示,就是LED显示器一位一位地轮流点亮(扫描),对于每一位LED显示器来说,每隔一段时间点亮一次。显然,LED显示器的亮度既与导通电流有关,也与LED显示器点亮时间和间隔时间的比例有关。通过调整LED显示器的导通电流和时间比例参数,可实现较高亮度且稳定的显示。显示程序框图如图24所示。3、设计键盘子程序(KEY)采用行扫描法识别闭合键的原理,设计键盘程序。用软件方法解决按键抖动问题。键盘程序框图如图25所示。 MAIN 定义堆栈区 显示缓冲单元清0 定时器T0工作方式 装载计数初值 定时开始 开中断 设置循环次数 调用显示子程序 图22 主程序框图 DAAD 取十位数 使十位数占A高半字节 取个位数占A低半字节 加1 十进制调整 取出低字节个位数送缓冲单元 取出高4位十位数送缓冲单元 返回 图23 加1子程序框图图25 按键扫描程序框图图24 显示程序框图2.5器材1、Keil C51软件2、单片机开发板3、西尔特编程器4、直流稳压电源5、示波器2.6调试步骤1、软硬件联调;2、用编程器,将程序写入MCU芯片89C51;3、将芯片插入系统正常工作;4、检查结果。2.7参考书1、徐煜明.单片机原理及接口技术. 北京:电子工业出版社,2005.12、张友德.单片微型机. 上海:复旦大学出版社2000.23、徐君毅. 单片微型计算机原理与应. 上海: 上海科技出版社,2001.5课题三 具有串行通信功能的电子钟3.1目的通过对本课题的设计达到如下目的:1、熟悉MCS51定时/计数器、中断的应用。2、熟悉时钟时、分、秒计时方法,掌握编程技巧。3、掌握键盘的基本工作原理,键的识别,键抖动和重键问题的解决,键盘工作方式和键盘程序的编程。4、掌握七段码LED显示器的结构,七段码LED显示器的工作方式和显示程序的编程。5、掌握串行通信程序的编写。3.2设计要求利用ATMEL89C51、七段码LED、按键、MAX232及常用外围器件,设计一个具有串行通信功能的电子钟,由于本课题相比课题二增加了串行通信功能,考虑到工作量问题,在显示功能上加以简化,仅使用2位LED,具体要求如下:1、设计实现电子钟的硬件原理图。2、用T0定时器,产生时钟信号,设计定时中断程序。3、具有2位LED,通过按键切换,分别显示时、分、秒,设计显示程序。4、可用键盘进行校对时间,设计键盘程序。5、当前时间可通过串口在其他单片机系统上显示。6、要有秒表功能。3.3硬件设计本系统中单片机通过P0口和P2口直接驱动LED数码管,单片机通过MAX232串口芯片实现和其他单片机系统的通信。系统框图如下所示。图31 系统框图3.4软件设计1、主程序主程序的主要功能是进行定时器/计数器初始化编程,然后通过反复调用子程序的方法,等待定时中断的到来。流程框图如图32所示。2、定时中断程序已知晶振频率为12MHZ,用T0定时/计数器,进行50ms的定时。采用中断方式进行溢出次数累计,计满20次即到秒计时。从秒到分,从分到时的计时,可通过累加器和数值比较实现。流程框图如图33所示。3、设计键盘子程序(KEY)采用独立按键扫描法,设计键盘程序。用软件方法解决按键抖动问题。键盘程序框图如图34所示。4、串行通信子程序(UART)采用中断方式设计串行通信程序,在PC机上设置万年历当前时间,串行通信程序框图如图35所示。图32 主程序流程框图 图33 定时中断流程框图图34 按键扫描流程框图 图35 串行通信流程框图3.5集成开发环境Keil使用简介下面介绍在Keil开发工具中调试程序的方法。1、打开Keil开发工具,在菜单栏中选中“Project”,在下拉菜单中选择“New Project”。若已经建立过了工程则点击“Open Project”,找到原先文件的保存路径,打开文件。操作如图3-6所示。图3-6 工程建立示意图2、在出现的对话框中选择文件的保存位置,点击“确定”。在下一个对话框中选择所要仿真的芯片型号。3、在左边的“WorkSpace”区中,右击“Source Group”,选择“Add files to group”,将程序文件添加到工程中。如图3-7所示。图3-7 文件添加示意图4、在常用工具栏中选择“options”选项,单击其中的“Debug”;选择右侧的“use”单选框,在下拉菜单中选择仿真器的型号,这里选择“TKS-52S Emulator/Programmer”,并点击右侧的“setting”选择相关的设置。如图38所示。图3-8 仿真器设置示意图5、将仿真器的电源、串口接好,并将仿真头电路板向连。检查无误后,点击“Project”中“Rebuild all target files”,或直接点击常用工具栏中快捷按钮,编译所有文件。根据下面的信息栏中的提示信息,修改文件中的错误,重新编译直到编译通过。如下图3-9所示。图3-9 工程编译示意图6、选择“Debug”中“Start/Stop Debug Session”或点击常用工具栏中快捷按钮。将编译好的程序加载到仿真器中。待程序加载完成后,复位并运行。观察电路班上的实际效果,并测试按键、显示等硬件电路功能。找出其中的不足或漏洞。7、利用常用工具栏中的设置断点,单步调试和查看工作寄存器变量等常用工具按钮调试在上述步骤发现的问题或功能缺陷。将修改后的程序重新加载到仿真器中运行、调试直至达到理想的结果。3.6器材1、Keil C51软件2、单片机开发板3、TKS-52仿真器4、西尔特编程器5、直流稳压电源6、示波器3.7调试步骤1、软硬件联调;2、用编程器,将程序写入MCU芯片89C51;3、将芯片插入系统正常工作;4、检查结果。3.8参考书1、徐煜明.单片机原理及接口技术. 北京:电子工业出版社,2005.12、张友德.单片微型机. 上海:复旦大学出版社2000.23、马忠梅,籍顺心,张凯,马岩. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,2003.11课题四 数码管动态扫描4.1目的通过对本课题的设计达到如下目的:1、 熟悉MCS51的应用。2、 熟悉M

温馨提示

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

评论

0/150

提交评论