单片机红绿灯电路设计..pdf

上传人:tbuqq 文档编号:5168243 上传时间:2020-02-11 格式:PDF 页数:39 大小:1.09MB
返回 下载 相关 举报
单片机红绿灯电路设计..pdf_第1页
第1页 / 共39页
单片机红绿灯电路设计..pdf_第2页
第2页 / 共39页
单片机红绿灯电路设计..pdf_第3页
第3页 / 共39页
单片机红绿灯电路设计..pdf_第4页
第4页 / 共39页
单片机红绿灯电路设计..pdf_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《单片机红绿灯电路设计..pdf》由会员分享,可在线阅读,更多相关《单片机红绿灯电路设计..pdf(39页珍藏版)》请在三一文库上搜索。

1、四川现代职业学院 单片机原理及应用课程设计 红绿灯实训报告 题目:红绿灯项目设计报告 系别:电子信息技术系 专业:电子信息工程技术 组员:贺淼、纪鹏、邵文稳 指导老师:陶薇薇 2014年 7 月 12日 摘要 交通在人们的日常生活中占有重要的地位,随着人们 社会活动的日益频繁,这点更是体现的淋漓尽致。交 通信号灯的出现,使交通得以有效管制,对于疏导交 通流量、提高道路通行能力,减少交通事故有明显效 果。近年来随着科技的飞速发展,单片机的应用正在 不断深入,同时带动传统控制检测技术日益更新。在 实时检测和自动控制的单片机应用系统中,单片机往 往作为一个核心部件来使用,仅单片机方面知识是不 够的,

2、 还应根据具体硬件结构软硬件结合, 加以完善。 本系统采用 STC89C52 点单片机以及数码管为中心器 件来设计交通灯控制器, 实现了南北方向为主要干道, 要求南北方向每次通行时间为30 秒, 东西方向每次通 行时间为 25 秒。启动开关后,南北方向红灯亮25 秒 钟,而东西方向绿灯先亮20 秒钟,然后闪烁 3 秒钟, 转为黄灯亮 2 秒钟。接着,东西方向红灯亮30 秒钟, 而南北方向绿灯先亮25 秒,然后闪烁 3 秒钟,转为黄 灯亮 2 秒钟,如此周而复始。 软件上采用 C 语言编程,主要编写了主程序,中断程 序延时程序等。经过整机调试,实现了对十字路口交 通灯的模拟。 目 录 (一)硬件

3、部分 - 3 1.1 STC89C52 芯片简介 -3 1.2 主要功能特性 -4 1.3 STC89C52芯片封装与引脚功能-5 1.4 基于 STC89C52交通灯控制系统的硬件电路分析及设 计-10 (二)软件部分 -14 2.1 交通灯的软件设计流程图-14 2.2 控制器的软件设计-15 (三)电路原理图与 PCB 图的绘制 -16 3.1 电路原理图的绘制(见附录二)-16 3.2 PCB 图的绘制(见附录三)-16 3.3 印刷电路板的注意事项-16 (四)调试及仿真 -19 4.1 调试 -19 4.2 仿真结果 -20 (五)实验总结及心得体会-21 5.1 实验总结 -21

4、 5.2 实验总结 -22 附录程序清单 -22 (一)硬件部分 1.1 STC89C52芯片简介 STC89C52 是一个低功耗 , 高性能 CMOS 8 位单片 机, 片内含 8k Bytes ISP(In-system programmable) 的可反复擦写 1000次的 Flash 只读程序存储器 , 器件 采用 ATMEL 公司的高密度、非易失性存储技术制造, 兼容标准 MCS-51指令系统及 STC89C52 引脚结构 , 芯 片内集成了通用 8 位中央处理器和 ISP Flash 存储单 元, 功能强大的微型计算机的STC89C52可为许多嵌 入式控制应用系统提供高性价比的解决

5、方案。 STC89C52 具有如下特点: 40 个引脚 ,8k Bytes Flash 片内程序存储器 ,256 bytes 的随机存取数据存 储器( RAM ),32 个外部双向输入 / 输出( I/O )口,5 个中断优先级 2层中断嵌套中断 ,2 个 16 位可编程定 时计数器 ,2 个全双工串行通信口 , 看门狗( WDT )电 路, 片内时钟振荡器。 此外, STC89C52 设计和配置了振荡频率可为0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停 工作, 而 RAM 定时计数器 , 串行口 , 外中断系统可继续 工作, 掉电模式冻结振荡器而保存RAM的数据 , 停止 芯片

6、其它功能直至外中断激活或硬件复位。同时该芯 片还具有 PDIP、TQFP 和 PLCC等三种封装形式 , 以适 应不同产品的需求。 1.2 主要功能特性: 兼容 MCS-51指 令系统 8k可 反 复 擦 写 (1000 次) ISP Flash ROM 32个双向 I/O 口 4.5-5.5V工作电压 3个 16位可编程 定时/ 计数器 时钟频率 0-33MHz 全双工 UART串 行中断口线 256x8bit内部 RAM 2 个外部中断源 低功耗空闲和省电 模式 中 断 唤 醒 省 电 模式 3 级加密位 看门狗( WDT ) 电路 软件设置空闲和省 电功能 灵活的 ISP 字节 和分页编

7、程 双数据寄存器指针 表 111 1.3 STC89C52 芯片封装与引脚功能 STC89C52 芯片的尾缀第一个字母共4 种,分别 是 A, J, P, Q , 表示的是封装类型, A是 TQFP 封装( 四 方密脚扁平塑封封装 ), J 是 PLCC 封装(塑封 J 形脚), P是 PDIP也就是双列直插封装, Q是 QPFP 封装( 四方 扁平塑封封装 )。第二个字母共 3 种,分别是 C,I , A,表示的是允许的环境温度,C 为商业级,工作温 度 0 至+70摄氏度;I 为工业级,工作温度 -40 至+85 度;A为汽车工业级,工作温度 -40 至+105度。这两 个字母前的数字表示

8、最高主频,如12 为 12M ,16 为 16M ,20 为 20M ,24 为 24M 。 STC89C52 是一种低功耗、高性能 CMOS8 位微 控制器,具有 8K 在系统可编程Flash 存储器。使 用 Atmel 公司高密度非易失性存储器技术制造, 与 工业STC89C52产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规 编程器。在单芯片上,拥有灵巧的8 位 CPU和在系 统可编程 Flash ,使得 STC89C52 为众多嵌入式控制 应用系统提供高灵活、 超有效的解决方案。 STC89C52 具有以下标准功能: 8k 字节 Flash ,256字节

9、 RAM , 32 位 I/O 口线,看门狗定时器, 2 个数据指针, 三个 16 位定时器 / 计数器,一个 6 向量 2 级中断结构,全 双工串行口, 片内晶振及时钟电路。 另外,STC89C52 可降至 0Hz 静态逻辑操作,支持2 种软件可选择节 电模式。空闲模式下, CPU 停止工作,允许 RAM 、定 时器/ 计数器、串口、中断继续工作。掉电保护方式 下,RAM内容被保存,振荡器被冻结,单片机一切 工作停止,直到下一个中断或硬件复位为止。8 位微 控制器 8K 字节在系统可编程 Flash STC89C52 1.3.1 P0 口介绍 P0 口: P0口是一个 8 位漏极开路的双向I

10、/O 口。 作为输出口,每位能驱动8 个 TTL逻辑电平。对P0 端口写“ 1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0 口也被作 为低 8 位地址 / 数据复用。在这种模式下, P0 具有 内部上拉电阻。 在 flash编程时, P0 口也用来接收指令字节; 在程序校验时, 输出指令字节。 程序校验时, 需要外 部上拉电阻。 1.3.2 P1 口介绍 P1 口:P1 口是一个具有内部上拉电阻的8 位 双向 I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑 电平。对P1 端口写“ 1”时,内部上拉电阻把端口 拉高,此时可以作为输入口使用。作为输入使用时, 被外部拉低的

11、引脚由于内部电阻的原因,将输出电流 (IIL )。此外, P1.0 和 P1.2 分别作定时器 / 计数器 2 的外部计数输入( P1.0/T2 )和时器 / 计数器 2 的触 发输入( P1.1/T2EX),具体如下表所示。 在 flash编程和校验时, P1 口接收低 8 位地址 字节。 引脚号第二功能 P1.0 T2(定时器 / 计数器 T2的外部计数输入), 时钟输出 P1.1 T2EX (定时器 / 计数器 T2 的捕捉 / 重载触发 信号和方向控制) P1.5 MOSI (在系统编程用) P1.6 MISO (在系统编程用) P1.7 SCK (在系统编程用) 1.3.3 P2 口

12、介绍 P2 口:P2 口是一个具有内部上拉电阻的8 位 双向 I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑 电平。对P2 端口写“ 1”时,内部上拉电阻把端口 拉高,此时可以作为输入口使用。作为输入使用时, 被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL )。在访问外部程序存储器或用16 位地址读取 外部数据存储器(例如执行MOVX DPTR)时, P2 口 送出高八位地址。在这种应用中,P2 口使用很强的 内部上拉发送 1。在使用 8 位地址(如 MOVX RI )访 问外部数据存储器时, P2口输出 P2锁存器的内容。 在 flash编程和校验时, P2 口也接收高 8

13、 位地址字 节和一些控制信号。 1.3.4 P3 口介绍 P3 口:P3 口是一个具有内部上拉电阻的8 位 双向 I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑 电平。对P3 端口写“ 1”时,内部上拉电阻把端口 拉高,此时可以作为输入口使用。作为输入使用时, 被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL )。 P3 口亦作为 STC89C52 特殊功能(第二功能)使 用,如下表所示。 在 flash编程和校验时, P3 口也接收一些控制 信号。 端口引脚的第二功能 P3.0 RXD( 串行输入口 ) P3.1 TXD( 串行输出口 ) P3.2 INTO(外中断 0) P

14、3.3 INT1(外中断 1) P3.4 TO( 定时/ 计数器 0) P3.5 T1(定时/ 计数器 1) P3.6 WR( 外部数据存储器写选通 ) P3.7 RD( 外部数据存储器读选通 ) 此外, P3 口还接收一些用于FLASH闪存编程和 程序校验的控制信号。 1.3.5 控制信号介绍 RST 复位输入。当振荡器工作时,RST引脚 出现两个机器周期以上高电平将是单片机复位。 ALE/PROG 当访问外部程存储器或数据存储 器时, ALE (地址锁存允许)输出脉冲用于锁存地址 的低 8 位字节。一般情况下, ALE仍以时钟振荡频率 的 1/6 输出固定的脉冲信号, 因此它可对外输出时钟

15、 或用于定时目的。 要注意的是:每当访问外部数据存 储器时将跳过一个ALE脉冲。 对 FLASH 存储器编程期间, 该引脚还用于输入编 程脉冲( PROG )。 如有必要,可通过对特殊功能寄存器(SFR )区 中的 8EH单元的 D0位置位,可禁止 ALE操作。该位 置位后, 只有一条 MOVX 和 MOVC 指令才能将 ALE激活。 此外, 该引脚会被微弱拉高, 单片机执行外部程序时, 应设置 ALE禁止位无效。 PSEN程序储存允许 (PSEN )输出是外部程序 存储器的读选通信号,当STC89C52 由外部程序存储 器取指令(或数据)时,每个机器周期两次PSEN 有 效,即输出两个脉冲,

16、 在此期间, 当访问外部数据存 储器,将跳过两次PSEN 信号。 EA/VPP外部访问允许, 欲使 CPU仅访问外部 程序存储器 (地址为 0000H-FFFFH ),EA端必须保持 低电平(接地)。需注意的是:如果加密位LB1被编 程,复位时内部会锁存EA端状态。 如 EA端为高电平(接Vcc 端), CPU则执行内 部程序存储器的指令。 FLASH 存储器编程时, 该引脚加上 +12V的编程允 许电源 Vpp,当然这必须是该器件是使用12V编程电 压 Vpp 1.4 基于 STC89C52 交通灯控制系统的硬件电路分析 及设计 1.4.1 各部分电路分析 (1)电源电路 单片机工作时需要的

17、 +5V 电压,本设计采用 普通的电源接口,通过5V的电源适配器供电。 电源部分还连接开关和发光二极管, 用于判断电源是 否正常工作。需要注意的是,滤波电容对于电路设 计非常重要, 不加滤波电容会导致系统不稳定。因此 在电源部分 10UF铝电解作为滤波电容。 (2)复位电路 STC89C52的复位输入引脚 RST为单片机提 供了初始化的手段, 可以使程序从指定处开始执行, 在 STC89C52 的时钟电路工作后,只要RST引脚上出 现超过两个机器周期以上的高电平时,即可产生复位 操作。只要 RST保持高电平, 则单片机循环复位。 只 有当RST有高电平变为低电平以后,单片机才从 0000H地址

18、开始执行程序, 本系统采用按键复位方式 的复位电路, 如图二所示, 当复位键按下时, 系统自 动切换到四个方向都只有黄灯亮的初始状态。 图二:复位电路 (3)时钟电路 STC89C52 的时钟可以有两种方式,一种是 内部方式,利用芯片内部的振荡电路; 另外一种为外 部方式。本论文根据实际需要和简便, 采用内部振荡 方式。89C52内部有一个用于构成振荡器的高增益反 相放大器,引脚 XTAL1和 XTAL2分别是此放大器的输 入和输出端。这个放大器与作为反馈元件的片外的片 外晶体与陶瓷谐振器一起构成一个自激振荡器。 STC89C52虽然有内部震荡电路,但要形成 时钟,必须外接元件所以实际构成的震

19、荡时钟电路。 外界晶体以及电容 C1和 C2构成并联谐振电路接在放 大器的反馈回路中。 对接电容的值虽然没有严格的要 求,但电容的大小会影响振荡器频率的高低,振荡器 的稳定性,起振的快速性和温度的稳定性。 晶体频率 可在 1.2MHZ 12MHZ 之间任选,电容 C1和 C2的典型 值在 20PF100PF 之间选择,考虑到本系统对于外接 晶体的频率稳定性要求不高,所以采取比较廉价的 12MHZ 陶瓷谐振器。如图三所示。 图 3 (4)示显电路 显示部分选用 4 位共阴数码管。数码管的 8 位数据端通过 1K的上拉电阻连接到单片机P0口, 4 位使能端分别连到P1.1-P1.4. 由于数码管的

20、驱动 电流较大,所以在设计时加上了三极管9013 作为驱 动电路。 (5)发光二极管 该系统用12 个红黄绿三色的发光二极管 作信号灯,南北方向的红黄绿发光二极管阴极分别接 在 P2.0-P2.2 口。 东西方向的红黄绿发光二极管阴极 分别接在 P2.2-P2.7 口, 所有发光二极管的阳极都通 过一个 1K电阻接到 5V电源。 1.4.2 设计过程 (1)设计要求和目的 此设计采用STC89C52单片机为核心控制 元件,结合数码管, 发光二极管等器件; 利用了单片 机的延时电路, 按键复位电路, 时钟电路, 定时中断 等电路构成一个用于十字路口的交通灯系统。 系统设计目的如下: A.设计一个

21、用于十字路口的交通灯控制电 路。 B.要求南北方向和东西方向的车辆交替运 行,东西南北四个方向均有三色灯指示。 C.南北方向绿灯亮时东西方向红灯亮,南 北方向红灯亮时东西方向绿灯亮,如此循环。并且在 红灯切换为绿灯时黄灯会点亮5 秒后再完成切换 D.四个方向除了有三色指示灯外还有四位 的数码管用于倒计时显示信号灯点亮的时间。 E.电源使用普通的电源接口, 通过 5V电源 适配器供电。 (2)系统具体工作状态如下表1所示 (3) 系统方框图 该系统的方框图如图4 所示,在 STC89C52 单片机 的 P1.0 口接上一个开关用于启动系统;在RST脚接 复位开关,用于将系统恢复为初始状态 (本设

22、计初始 状态设为四个方向均是黄灯点亮);在P0口接四位 数码管用于倒计时显示信号灯亮的时间。在P2口接 红黄绿三色发光二极管用作信号灯。 该系统还包括电 源部分和振荡器部分。 图四:系统原理框图 (二)软件部分 2 .1 交通灯的软件设计流程图(如图五) 图五:交通灯的软件设计流程图 2.2 控制器的软件设计 2.2.1 每秒钟的设定 延时方法可以有两种一中是利用STC-51内部 定时器产生溢出中断来确定1 秒的时间,另一种是采 用软件延时的方法。 计数器硬件延时 .a 计数器初值计算 定时器工作时必须给计数器送计数器初值,这 个值是送到 TH和 TL 中的。他是以加法记数的, 并能 从全 1

23、 到全 0 时自动产生溢出中断请求。 因此,我们 可以把计数器记满为零所需的计数值设定为C 和计 数初值设定为 TC 可得到如下计算通式: TC=M-C 式中, M为计数器模值,该值和计数器工作方式有 关。 在方式 0 时 M为 213 ; 在方式 1 时 M的值为 216; 在方式 2 和 3 为 28 .b 计算公式 T=(M TC )T计数 或 TC M-C T 计数 T 计数是单片机时钟周期的12 倍;TC为 定时初值 如单片机的主脉冲频率为12MHZ , 经过 12 分频 方式 0 TMAX 213 微秒 8.912 毫 秒 方式 1 TMAX 216 微秒 65.536 毫秒 显然

24、秒钟已经超过了计数器的最大定时间, 所以我们只有采用定时器和软件相结合的办法才能 解决这个问题 2 .2.2 1秒的方法 我们采用在主程序中设定一个初值为20 的软件 计数器和使 T0定时 50 毫秒 这样每当 T0 到 50 毫秒 时 CPU 就响应它的溢出中断请求, 进入他的中断服务 子程序。在中断服务子程序中,CPU先使软件计数器 减,然后判断它是否为零。 为零表示 1 秒已到可以 返回到输出时间显示程序。 2.2.3 相应程序代码 (1)主程序 (2)中断程序 (3)延时程序 (4) 数码管显示程序 程序清单(见附录一) (三)电路原理图与 PCB 图的绘制 31 电路原理图的绘制(见

25、附录二) 32 PCB图的绘制(见附录三) 33 印刷电路板的注意事项 3.3.1 印刷电路板图设计的基本原则要求 印刷电路板的设计, 从确定板的尺寸大小开始, 印 刷电路板的尺寸因受机箱外壳大小限制,以能恰好安 放入外壳内为宜, 其次,应考虑印刷电路板与外接元 器件(主要是电位器、 插口或另外印刷电路板) 的连 接方式。印刷电路板与外接组件一般是通过塑料导线 或金属隔离线进行连接。但有时也设计成插座形式。 即: 在设备内安装一个插入式印刷电路板要留出充当 插口的接触位置。 3.3.2 布线图设计的基本方法 首先需要对所选用组件器及各种插座的规格、尺 寸、面积等有完全的了解; 对各部件的位置安

26、排作合 理的、仔细的考虑, 主要是从电磁场兼容性、 抗干扰 的角度,走线短,交叉少,电源,地的路径及去耦等 方面考虑。各部件位置定出后,就是各部件的联机, 按照电路图连接有关引脚, 完成的方法有多种, 印刷 线路图的设计有计算机辅助设计与手工设计方法两 种。 最原始的是手工排列布图。 这比较费事, 往往要反 复几次,才能最后完成, 这在没有其它绘图设备时也 可以, 这种手工排列布图方法对刚学习印刷板图设计 者来说也是很有帮助的。 计算机辅助制图, 现在有多 种绘图软件,功能各异,但总的说来,绘制、修改较 方便,并且可以存盘贮存和打印。 接着,确定印刷电路板所需的尺寸,并按原理图, 将各个元器件

27、位置初步确定下来, 然后经过不断调整 使布局更加合理,印刷电路板中各组件之间的接线安 排方式如下: ()印刷电路中不允许有交叉电路,对于可能交 叉的线条, 可以用“钻”、“绕”两种办法解决。 即, 让某引线从别的电阻、电容、三极管脚下的空隙处 “钻”过去,或从可能交叉的某条引线的一端“绕” 过去,在特殊情况下如何电路很复杂, 为简化设计也 允许用导线跨接,解决交叉电路问题。 ()电阻、二极管、管状电容器等组件有 “立式”, “卧式”两种安装方式。 立式指的是组件体垂直于电 路板安装、 焊接,其优点是节省空间, 卧式指的是组 件体平行并紧贴于电路板安装, 焊接,其优点是组件 安装的机械强度较好。

28、 这两种不同的安装组件, 印刷 电路板上的组件孔距是不一样的。 ()同一级电路的接地点应尽量靠近,并且本级 电路的电源滤波电容也应接在该级接地点上。特别是 本级晶体管基极、 发射极的接地点不能离得太远, 否 则因两个接地点间的铜箔太长会引起干扰与自激,采 用这样“一点接地法”的电路,工作较稳定,不易自 激。 ()总地线必须严格按高频中频低频一级级 地按弱电到强电的顺序排列原则, 切不可随便翻来复 去乱接,级与级间宁肯可接线长点, 也要遵守这一规 定。特别是变频头、 再生头、调频头的接地线安排要 求更为严格,如有不当就会产生自激以致无法工作。 调频头等高频电路常采用大面积包围式地线,以保证 有良

29、好的屏蔽效果。 ()强电流引线(公共地线,功放电源引线等) 应尽可能宽些, 以降低布线电阻及其电压降, 可减小 寄生耦合而产生的自激。 ()阻抗高的走线尽量短, 阻抗低的走线可长一 些,因为阻抗高的走线容易发笛和吸收信号,引起电 路不稳定。电源线、地线、无反馈组件的基极走线、 发射极引线等均属低阻抗走线, 射极跟随器的基极走 线、收录机两个声道的地线必须分开,各自成一路, 一直到功效末端再合起来, 如两路地线连来连去, 极 易产生串音,使分离度下降。 3.3.3 印刷板图设计中应注意的地方 布线方向:从焊接面看,组件的排列方位尽可 能保持与原理图相一致, 布线方向最好与电路图走线 方向相一致,

30、因生产过程中通常需要在焊接面进行各 种参数的检测, 故这样做便于生产中的检查, 调试及 检修(注:指在满足电路性能及整机安装与面板布局 要求的前提下)。 各组件排列,分布要合理和均匀,力求整齐, 美观,结构严谨的工艺要求。 电阻,二极管的放置方式:分为平放与竖放两 种: ()平放:当电路组件数量不多,而且电路板尺 寸较大的情况下,一般是采用平放较好;对于1/4W 以下的电阻平放时, 两个焊盘间的距离一般取4/10 英寸, 1/2W的电阻平放时 , 两焊盘的间距一般取5/10 英寸;二极管平放时,1N400X系列整流管 , 一般取 3/10 英寸;1N540X 系列整流管 , 一般取 45/10

31、 英 寸。 ()竖放:当电路组件数较多,而且电路板尺寸 不大的情况下, 一般是采用竖放, 竖放时两个焊盘的 间距一般取 12/10 英寸。 电位器: IC 座的放置原则 ()电位器:在稳压器中用来调节输出电压,故 设计电位器应满中顺时针调节时输出电压升高,反时 针调节器节时输出电压降低; 在可调恒流充电器中电 位器用来调节充电电流折大小, 设计电位器时应满中 顺时针调节时,电流增大。 电位器安放位轩应当满中整机结构安装及面板布 局的要求,因此应尽可能放轩在板的边缘, 旋转柄朝 外。 () IC 座:设计印刷板图时,在使用IC 座的场 合下,一定要特别注意IC 座上定位槽放置的方位是 否正确,并

32、注意各个IC 脚位是否正确,例如第1 脚 只能位于 IC 座的右下角线或者左上角,而且紧靠定 位槽(从焊接面看)。 进出接线端布置 () 相关联的两引线端不要距离太大, 一般为 2 3/10 英寸左右较合适。 ()进出线端尽可能集中在1 至 2 个侧面,不要 太过离散。 设计布线图时要注意管脚排列顺序,组件脚间 距要合理。 在保证电路性能要求的前提下,设计时应力求 走线合理,少用外接跨线,并按一定顺充要求走线, 力求直观,便于安装,高度和检修。 设计布线图时走线尽量少拐弯,力求线条简单 明了。 布线条宽窄和线条间距要适中,电容器两焊盘 间距应尽可能与电容引线脚的间距相符; 设计应按一定顺序方向

33、进行,例如可以由左 往右和由上而下的顺序进行。 (四)调试及仿真 4.1 调试 4.1.1 断点调试 为安全起见,防止硬件烧坏,首先进行断电调试, 用万用表检测系统是否有短路现象,再检查严原理是 否正确,各个线路的电平是否正常。经检测,未出现 短路现象以及各个电平都正常。 4.1.2 通电调试 (1). 关掉交流电源开关,用万用表直流电压档测 量稳压输出电压,测量结果只有4.2V,用 12V电源直 接接入 7805输入端,测量输出电压达到4.99V。经检 查分析为稳压芯片7805 输入端电容没有接入, 输入电 压变化太大,造成7805 无法稳压。经处理问题解决。 (2). 检查系统时钟是否正常

34、工作,用万用表直流 电压档测量 XTAL1与 AXTAL2 两端间的电压,检测到电 压若为 2.5V 左右,则视为正常工作。 (3). 检查复位电路是否正常工作。 4.2 仿真结果 通过Protues 软件仿真结果如下图六所示 图五:仿真结果图 (五) 实验总结及心得体会 5.1 实验总结 在实践的过程中, 我们需要自己查阅相关的资料文 献,在设计之前,我们都会有一种比较盲目的心情, 当查阅了大量的资料之后才会产生设计的大概轮廓, 现在我们能够得到相关资料的渠道有图书馆的相关书 籍和期刊,相关网站提供的免费信息等等,在搜寻这 些资料的时候,难免会感觉到很繁琐,而且在查阅资 料的盲目阶段,更容易

35、对自己的设计丧失信心,我们 只有拿出不怕苦累的精神才能战胜短期的挫折。确定 好设计雏形后,我们要做的是开始筛选资料,把我们 能用到的资料都筛选出来,再在筛选出来的资料中选 择比较权威的资料深入应用到自己的设计中,例如在 本设计中选定芯片时,我们应当注意到一些小细节方 面的问题,我们选择查询渠道时,最好还是选择利用 网络资源来解决这部分的问题,因为网络是当前资源 更新速度最快的渠道,选用的一些芯片当然也比较容 易买到,如果我们选用查阅书籍等来完成芯片的查询, 很有可能会买不到相应的芯片,在本设计中如果我们 选用了AT89C52的话就会遇到这样的问题,因为 AT89C52已经停产了,虽然在部分的电

36、子元器件商店 还能买到这样的元器件,但是相对于还没有取代器件 的 STC89C52 来说其可实现性就便小了很多。 我个人感觉我们专业开设能够应用的专业课程开 设得比较晚,当然这些问题是学校的教育体制的问题, 我们无力左右,在学习该门课程之前我们只学习过电 路分析基础、模拟电子电路、数字电子电路、以及一 些相关的实验课程,而且学习的时间也比较少,大部 分的时间都被一些普修课程占据,大二才开始学习专 业基础课程,迄今能够学习到的专业知识是十分有限 的,虽然如此,我们也应当把学到的有限知识学会应 用到我们的设计领域,我们学习过模拟电子电路、数 字电子电路等课程,我们就应当熟练的掌握简单模块 选择和整

37、合,例如我们在选择晶振模块时,我们应当 注意到芯片的晶振频率, 虽然我们学过 MS-C51的晶振 是 6MHz ,但是并不是所有的芯片晶振都是6MHz ,甚至 还有一些芯片是内置晶振的,更笨就无须提供外部晶 振,在本设计中我们选用的是芯片STC89C52 ,所以需 要提供外部晶振电路,晶振频率为12MHz ,而不是 6MHz 。 5.2 实验总结 虽然我们现在设计的东西还只是一些很不起眼的 东西,但是学习都是有一个过程的,并非一蹴而就、 一步登天。我们只有把基础打好,在不懈的摸索中发 掘学习的爱好和实践的乐趣。我们所学到的内容和我 们在外界接触到的一些知识多少都会存在一些差异, 因为知识的学习

38、和应用在本质上本来就存在着很大的 区别,俗话说:想到和做到完全是两码事,这也教会 了我们在学习的同时,应当做好相应的总结,为更好 的实践打下坚实基础。学院开设的课程有限,我们接 收到的知识也是有限的,但是我们有无限的能力去学 习无限的知识,在设计过程中,我们可以向大四的学 长请教我们所遇到的问题,在本次设计中,电路板的 印制和程序的编写和烧制都是通过向高年级的学长请 教从而解决的,我们在摸索的过程中一定要动用自己 的所有力量去学习。面对那些我们还很少接触的元器 件以及还没接触过的电路原理,我们都应当摆正心态 慢慢的学习,慢慢的摸索,同时,我们还应当注意: 在学的过程中我们不能学得太过死板,我们

39、一定要有 创新的理念和创新的意识, 哪怕只是一点小小的尝试, 哪怕连这一点小小的也失败了, 我们得到的也是成功。 附录 程序清单 /*- 名称:交通灯模拟控制系统 编写: 日期: 2011.6 修改: 2 次 内容:通过定时器进行秒计时控制路口灯的亮灭, 并通过数码管显示时间 -*/ #include #define uchar unsigned char #define uint unsigned int code uchar table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8 0,0x90,0x88,0x83,0xc6,0xa1,0x86,0

40、x8e ; /0-F 共阳 极 uchar num=0,ii=0,jj=0; /*- 延时 z ms函数 -*/ void delay(uint z) /延时函数z ms uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); /*- 主数码管显示 -*/ void display_zhu(uint y) /显示部分 uint shi=y/10; uint ge=y%10; delay(1); P1=0x01; P0=tableshi; delay(1); P1=0x02; P0=tablege; delay(1); P0=0xff; /*- 从数码管显示 -*/

41、 void display_cong(uint y) /显示部分 uint shi=y/10; uint ge=y%10; delay(1); P1=0x04; P0=tableshi; delay(1); P1=0x08; P0=tablege; delay(1); P0=0xff; /*- 中断初始化 -*/ void T_initial() TMOD=0x10; /定时器 1为工作方式 1 TH1=(65535-46080)/256; /定时 50ms - N=19456-11.0592MHz TL1=(65535-46080)%256; EA=1; /开总中断允许 ET1=1; /定时

42、器 1 中断允许 /*- 主函数 -*/ void main() P0=0xff; P2=0xff; P1=0; T_initial(); TR1=1; /计时开始 while(1) /主干道停,支干道行 uchar i; ii=25; P2=0x53; if(ii) while(ii5) display_zhu(ii); display_cong(ii-2); while(20;i-) display_zhu(ii); display_cong(ii-2); P2=0x73; for(i=80;i0;i-) display_zhu(ii); display_cong(ii-2); while

43、(00;i-) display_zhu(0); display_cong(0); jj=30; /主干道行,支干道停 P2=0x35; if(jj) display_zhu(jj); while(jj5) display_zhu(jj); display_cong(jj-2); while(20;i-) display_zhu(jj); display_cong(jj-2); P2=0x37; for(i=80;i0;i-) display_zhu(jj); display_cong(jj-2); while(00;i-) display_zhu(0); display_cong(0); /*- 定时器中断 -1s 计时子函数 -*/ void T1_time() interrupt 3 /定时器 1 中断程序 TH1=(65535-46080)/256; TL1=(65535-46080)%256; num+; if(num=20) /定时 1s到 num=0; ii-; jj-;

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1