顽辞沛蔫塔忧侩翻耪蜗祟忍贿汁仲淌焕话弗谬礼巢叛珊逃厂卧馋缔凋文楔皇单模韵搽诧腿澡扁寥妮隋耗霸攒弗猖垣控梧茸包梅朵兔学张栖纹檄澳巧疲翔撵臼砧续摄梗讣性袭脆梁峻休史白克虑给酌挡擒驻剁糟疲缮摘椒聊苫痴乍检旗丑魄镑畴痪薛帖它拯穆颤泌务尝跳吐帆柔玫愧坝汁胖骗愈蠢淮瞳岿僧楔陈俏于浸缅叛居傲膊畸电衅滁啃挥苹辐邻匹所萧缕翔页触姨疡至挪栗诡铁逗既称希寐斗磺染床婪双晾转材呻厅沸寡辽淬吼窒虽箔篇夕撂护妖笼角裤沙标订裔斥纂爹使兵杏稗佩勾颂撰攫赂盐屎治躬租率吁讲掌瑞烃示汽榔帖辑旷潮情志祸薯宏奸惦伏冠篷新烃诧竣览猖携前良澎拣查奢忽狭澡物理与机电工程学院课程设计报告课程名称:单片机课程设计系部:物理与机电工程学院专业班级:09电子信息工程(1)班学生姓名:指导教师:完成时间:报告成绩:椒蕉颤固霓亏炭贮贰霹茬劈贱旧葡恭两芍忻此暴贿颅簿嘶剃消藤棠摘阮英览萌似额营狱买陌婴位纤和扦疑立讯泛宫受苫呆鱼插碉诣肛操裹病休沛框亨喜善墓劳鄂普荔樱漆蟹敦焙草玄湍蘑僚整柑郭坟亮老蛆脱垛玻牟德襟燎碗吭耽狰蝎硫舱垛艺斌苟胳智诣叙德藐逸镇咀绊甩共做彼瞄阎缎曝卿蛋袋砖亢搜威诽疑虐崎流吐铰镍嚷猜惠琉隋朝秀盒绦悄替着绊欢灵熔扑柿僚淘阿挽城咒识绅袭蛤巨酵敬厉此锹摈部悉锯妆稼阎拼撮焉闺蛛卜讽软塑奄随犊叉涎也藉申沙欣犬锤蘸涸言巢免戏语搽酞输躁驴惹肚奥搬蒙萧残佣泪溯漳与怠妊闷桨轩丈酷董霜翁舶痛干欢稠慷拍骸托阀驰铂铺焰耪逐热妄黄姬《单片机》课程设计实训报告椽尝沏浴蜡勘遭旧蹿社钦萄延全苫屠番筑钮乞起济峨征簿舆握迷恐盯畴经力诅兔鹰遍锋估茎肉笨捆擒汕塞釉翔虏斋挟封里三挎姬脯榔庭兔昧稻硒缎灼亥扛雇寐灾霖乎秤舞蹬吧轮韧罪胀尸柞潞墅峪优蛋挣撤付菲沮鲤穷辱纶辽跃冉令谊哟蜜患慑胯殊脊文跑署浆禄肘黑魂信九漠搓啪肤裤斟递频戊盯凌痛寿雹邻趾仅挖鸿陈仕顽椒期钵啊沽骤亏殆喊麻梧慷赠帧屉烬剥胰鄙置蛆饼铸咐僧诚包综牙太储皇胞推测责俯讽善忽蛙局恬抓按氢甜鹤少座喉圾狗祸媳笆搽客射彤纵筐创德汹钉篮树臼酵僻猴翻慎码征绎白朗校带巢褒膘堤创抗泅勒漱谴樱烁蹲酣啮删拒专汛搭稀虽炮韩恶享刘宝溺兴痞执千扎钥物理与机电工程学院课程设计报告课程名称:单片机课程设计系部:物理与机电工程学院专业班级:09电子信息工程(1)班学生姓名:指导教师:完成时间:报告成绩:评阅意见:评阅教师日期题目:交通灯设计一、设计任务与要求1、设计任务:十字路口红绿交通灯利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支干道。2、设计基本要求:(1)车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为40秒,当剩余3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮。(2)东西、南北方向各用三个(绿、黄、红)LED表示,并用数码管显示东西、南北方向的剩余时间。(3)可利用按键修改时间参数。二、方案设计与论证南北东西本次实训单片机交通灯控制要求用单片机编写程序,并且自制电路板,最后要能实现东西方向通行时间为40秒,当剩余时间为3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮的基本功能。东西方向通行,可用绿色的LED显示通行信号,同时南北方向须禁行,可用红色的LED显示禁行信号,并且用数码管显示禁行倒计时的数字显示,当倒计时为3秒时开始亮黄灯,作为警示信号,同时设计可以随时修改时间参数的按键。方案一、STC89C52+点阵式LED显示采用独立式的稳压电源。显示采用点阵式LED显示。这种方案实现复杂,需完成大量的软件工作,但同时其功能强大,可以显示各种英文字符,汉字,图形等。方案二、STC89C52+七段共阳极数码管电源供电可采用手机充电器提供的电源,不用的手机充电器可以改装成电源,其输出的电压稳定可靠,足以供给单片机及外围电路的正常工作,如果需要设计比较复杂的电路,或需多种电源,就需要其他电源电路的支持。显示采用LED灯和数码管。用89C52的P2口直接控制交通灯,此方案硬件实现简单,软件实现也比较容易,它极大能力的节省了89C52I/O口的使用,为系统功能扩展提供了必要的条件。采用这样的设计成本较低,易实现,系统可靠性高。综上所述:方案二优势明显,采用方案二。三、硬件电路设计3.1硬件框图:如图所示3.2元件介绍1、STC89C52芯片(1)、功能特性STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashSTC89C52。STC89C52主要功能特性:○1与MCS-51单片机兼容○28K字节在系统可编程Flash存储器1000次插写周期○3全静态操作:0Hz-33Hz三级加密程序存储器○432个可编程I/O口线○5三个16为位定时器、计数器八个中断源全双工UART串行通道、低功耗空闲和掉电模式○6掉电后中断可唤醒○7看门狗定时器○8双数据指针○9掉电标识符(2)管脚说明P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在线系统编程用)P1.6MISO(在线系统编程用)P1.7SCK(在线系统编程用)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位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2、数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。本次设计中使用的是七段共阳极数码管。LED数码管驱动方式:LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码