1、苏 州 市 职 业 大 学课 程 实 训 说 明 书名称 单片机原理及应用课程实训 2012 年 6 月 11 日至 2012 年 6 月 17 日共 1 周院 系 电子信息工程系 班 级 10 电气自动化 4 姓 名 徐小冬 学 号 107301437 系 主 任 张红兵 教研室主任 邓建平 指 导 教 师 邓建平 目录第一章 绪论 .1第二章 单片机交通控制系统总体设计 .22.1 单片机交通控制系统的总体结构图 22.2 单片机交通控制系统的基本构成及原理 2第三章 智能交通灯控制系统的硬件设计 .43.1 AT89C51 单片机简介 43.1.1 中央处理器 .43.1.2 数据存储器
2、(RAM ) 43.1.3 程序存储器(ROM ) 43.1.4 定时/计数器(ROM ) .43.1.5 并行输入输出(I/O)口 53.1.6 全双工串行号 .53.1.7 中断系统 .53.1.8 时钟电路 .53.1.9 MCS-51 系统的引脚说明 .53.2 八段 LED 数码管的简介 63.3 芯片 74LS164 的简介 7第四章 系统软件程序的设计 .84.1 理论基础知识 84.1.1 定时器原理 .84.2 程序设计 94.3 系统软件调试 11第五章结论 .125.1 课程设计结果分析 125.2 课程设计小结 12参考文献 .131第一章 绪论随着经济发展,汽车数量急
3、剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。通常情况下,交通信号灯控制主要有两个缺陷:1、车道放行车辆时,时间设定相同且固定,十字路口经常出现主车道车辆多,放行时间短,车流无法在规定时间内通过,而副车道车辆少,放行时间明显过长;2、未考虑急车强通(譬如,消防车执行紧急任务时,两车道都应等待消防车通过) 。由于交通信号灯控制系统缺乏有效的应急措施,导致十字路口交通受阻,造成不必要的经济损失。本系统利用单片机 AT89C51,借助 CAN 总线作为现场通信总线实现智能交通信号灯控制系统设计,实现了根据区域车流、红外遥
4、控以及PC 机进行十字路口交通信号灯智能控制,并在软、硬件方面采取一些改进措施,实现了根据十字路口车流、红外遥控进行交通信号灯智能控制,使交通信号灯现场控制灵活、有效。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。2第二章 单片机交通控制系统总体设计2.1 单片机交通控制系统的总体结构图单片机交通控制系统的总体结构图如图 2-1 所示:交通灯循环最小系统倒计时显示紧急通车控制紧急疏散控制图 2-1 单片机交通控制系统的总体结构图2.2 单片机交通控制系统的基本构成及原理单片机设计交通灯
5、控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入 LED 数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,LED 倒计时模块和蜂鸣器状态模块接受输出。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时
6、间数据倒计时输入到 LED 数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到3对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间一满足不同路况的需要。单片机交通控制系统的基本构成如图 2-2 所示:图 2-2 单片机交通控制系统的基本构成4第三章 智能交通灯控制系统的硬件设计3.1 AT89C51 单片机简介AT89C51 单片机包含中央处理器、程序存储器(ROM) 、数据存储器(RAM) 、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总
7、线和控制总线等三大总线。3.1.1 中央处理器中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。3.1.2 数据存储器(RAM)AT89C51 内部有 128 个 8 位用户数及存储单元和 128 个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户自定义的字型表。3.1.3 程序存储器(ROM)AT89C51 共有 4096
8、个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。3.1.4 定时/计数器(ROM)AT89C51 有两个 16 位的可编程定时/计数器,一时想定时或计数产生中断用于控制程序转向。53.1.5 并行输入输出(I/O)口AT89C51 共有 4 组 8 位 I/O 口(P0、P1、P2 或 P3) ,用于对外数据传输。3.1.6 全双工串行号AT89C51 内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。3.1.7 中断系统AT89C51 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同
9、的控制要求,并具有 2 级优先级别选择。3.1.8 时钟电路AT89C51 内置最高频率高达 12Hz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 AT89C51 单片继续外置震荡电容。3.1.9 MCS-51 系统的引脚说明51 系列单片机 8031、8051 及 89c51/89s51 均采用 40Pin 封装的双列直接DIP 结构。下图是它们的引脚配置:40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明:Pin20:接地脚。Pin40:正电源脚,工作时,接+5V 电源。P
10、in19:时钟 XTAL1 脚,片内振荡电路的输入端。Pin18:时钟 XTAL2 脚,片内振荡电路的输出端。8051 的时钟有两种方式,一种是片内时钟振荡方式,但需在 18 和 19 脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取 10p-30p。另外一种是外部时钟方式,即将 XTAL1 接地,外部时钟信号从 XTAL2 脚输入。6图 3-1 MCS-51 系统的引脚说明3.2 八段 LED 数码管的简介LED 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led 数
11、码管常用段数一般为 7 段有的另加一个小数点,还有一种是类似于 3 位“+1”型。位数有半位,1,2,3,4,5,6,8,10 位等等,led 数码管根据 LED 的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图 3-2 是共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led 数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。共阳极数码显示管如图 3-2:7图 3-2 共阳极数码管的内部电路3.3 芯
12、片 74LS164 的简介164 为 8 位移位寄存器当,清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B任意一个为 低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 引脚 功能:CLOCK :时钟输入端,CLEAR:同步清除输入端(低电平有效) ,A,B :串行数据输入端,QAQH:输出端。74LS164 引脚图如图 3-3 所示:图 3-3 74LS164 引脚图8第四章 系统软件程序的设计4.
13、1 理论基础知识单片机交通控制系统软件程序有定时器等,利用这些实现交通灯的控制。4.1.1 定时器原理定时器计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l 单片机有 2 个 16位的定时器计数器:定时器 0(T0)和定时器 1(T1)。 T0 由 2 个定时寄存器 TH0 和 TL0 构成,T1 则由 TH1 和 TL1 构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加 l,所以定时器也可看作是计量机器周期的计数器。由于
14、每个机器周期为 12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的 112。作计数器时,只要在单片机外部引脚 T0(或 T1)有从 1 到 0 电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的 l24。T0 或 T1 无论用作定时器或计数器都有 4 种工作方式:方式 0、方式 1、方式 2 和方式 3。除方式 3 外,T0 和T1 有完全相同的工作状态。定时器的结构和原理如图 4-1 所示 :图 4-1 定时器的结构和原理94.2 程序设计ORG 0000hLjmp mainOrg 000bhLjmp dst0Org 001bhLjmp dst1Main:mov sp,#1fh
15、mov tmod,#11hmov th1,#3chmov tl1,#0b0hmov th0,#3chmov tl0,#0b0hmov p1,#01101001bCLR F0mov r0,#160mov r1,#10mov r2,#4mov ie,#8Ahmov ip,#0Ahsetb TR0clr TR1CLR 30HLJMP DISdst0:mov th0,#3chmov tl0,#0b0hdjnz r0,next1mov r0,#160jnb f0,s2cpl p1.1cpl p1.2sjmp comp1s2:cpl p1.3cpl p1.0comp1:SETB 30Hclr TR0set
16、b TR1next1:retidst1:mov th1,#3chmov tl1,#0b0h10djnz r1,next2mov r1,#10jb f0,s4cpl p1.3cpl p1.0sjmp comp2s4 :cpL p1.1cpL p1.2comp2:djnz r2,next2mov r2,#4CLR TR1jb f0,stepmov p1,#11111001blcall delay2smov p1,#10010110bsjmp comp3step :mov p1,#11110110blcall delay2smov p1,#01101001bcomp3: setb TR0clr TR
17、1CPL F0CLR 30Hnext2: retidelay2s:mov r3,#10dl0 :mov r4,#200dl1 :mov r5,#248dl2 :djnz r5,dl2djnz r4,dl1djnz r3,dl0RetDIS:mov scon,#00hloop2:mov r7,#8loop1:lcall sublcall delayL2: JB 30H,L2DEC r7cjne r7,#0FFH,loop1ljmp loop2delay:mov r3,#10adl0 :mov r4,#200adl1 :mov r5,#248adl2 :djnz r5,adl2djnz r4,ad
18、l111djnz r3,adl0retsub :mov a,r7mov dptr,#tabMOVC A,A+DPTRmov sbuf,ahere :jnb ti,hereclr tirettab :db 03h,9fh,25h,0dh,99h,49h,41h,1fh,01hend4.3 系统软件调试连接电路板到单片机,接通电源,调试观察电路板的数码管和 LED 管的情况。12第五章结论5.1 课程设计结果分析经过很长一段时间的调试,最终得到结果。同一方向上的灯为相同的颜色(红/ 绿) ,经过数码管几秒的延时,另一方向上的灯变为这个颜色 (红/绿)。5.2 课程设计小结在学习单片机理论课时候就感
19、觉到内容很多,知识点很杂,分繁琐。在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵” ,还需要实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后整合成一个整体。通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。13参考文献1肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8 2何立民. 单片机高级教程 第 1 版北京:北京航空航天大学出版社,2001 3赵晓安. MCS-51 单片机原理及应用. 天津:天津大学出版社,2001.3 4李广第 单片机基础 第 1 版北京:北京航空航天大学出版社,1999 5徐惠民、安德宁 单片微型计算机原理接口与应用 第 1 版 北京:北京邮电大学出版社,1996