1、 单片机课程设计 设计汇报学 院: 物理电气信息学院 专 业: 电子信息工程 姓 名: 杨锋 学 号: 1243756 指导老师: 陈潮红 完成时间: -12-28 目录目录第一章 序言 1.1:传统交通灯介绍 1.2 基于单片机智能交通灯控制系统设计意义第二章 课程设计流程2.1 课程设计目标2.2 经过单片机实现交通灯第三章 硬件设计和介绍3.1 8255单片机介绍3.2 8255单片机关键性能参数3.3 8255芯片内部结构介绍关键引脚功效3.4 80C5I单片机介绍和结构 3.5 课程设计系统步骤图第四章 课程设计系统原程序第五章 系统仿真图第六章 课程设计总结及心得体会致谢 第一章
2、前 言1.1:传统交通灯介绍在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦关键街头安装了以燃煤气为光源红,蓝两色机械扳手式信号灯,用以指挥马车通行。这是世界上最早交通信号灯。1868年,英国机械工程师,纳伊特在伦敦威斯敏斯特区议会大厦前广场上,安装了世界上最早煤气红绿灯。它由红绿两灯以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。19,电气开启红绿灯出现在美国。这种红绿灯由红绿黄三色圆形投光器组成,安装在纽约市5号大街一座高塔上。红灯亮,表示“停止
3、”,绿灯亮,表示“通行”。而中国最早马路交通灯却是诞生于1928年上海英租界。从最早手牵皮带到20世纪50年代电气控制,从采取计算机控制到现代化电子定时监控,交通信号灯在科学化、自动化上不停地更新、发展和完善。不过,伴随社会不停进步,传统交通灯缺点也日益出现,其中设计过于死板,达不到道路最大通行效率是最显著问题,红绿灯交替变换时间过于程式化。伴随中国经济高速发展,大家对多种交通车辆需求量不停增大,城市交通拥护问题日益严重,现在,大部分城市十字路口交通控制灯,通常做法是:事先经过车辆流量调查,利用传统方法设计好红绿灯延时,然而,实际上车流量是不停改变,有路口在不一样时间段车流量大小甚至有很大差异
4、,所以说,统计方法已不能适应快速发展交通现实状况。1.2基于单片机智能交通灯控制系统设计意义 现在,中国交通灯通常设在十字路门,在醒目位置用红、绿、黄三种颜色指示灯。加上一个倒计时显示计时器来控制行车。对于通常情况下安全行车,车辆分流尚能发挥作用,但依据实际行车过程中出现情况,还存在以下缺点:1两车道车辆轮番放行时间相同且固定, 在十字路口,常常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2没有考虑紧急车经过时,两车道应采取方法,臂如,消防车实施紧急任务经过时,两车道车全部应停止,让紧急车经过。针对道路交通拥挤,交叉路口常常出现拥堵情况。利用单片
5、机控制技术提出了软件和硬件设计方案及两点改善方法:1、依据各道路路口车流量大小自动调整通行时间。2、考虑特殊车辆通行情况,设计紧急切换开关。 第二章 课程设计步骤交通灯通常设在十字路门,在醒目位置用红、绿、黄三种颜色指示灯。加上一个倒计时显示计时器来控制行车。对于通常情况下安全行车,车辆分流尚能发挥作用,但依据实际行车过程中出现情况,还存在以下缺点:1两车道车辆轮番放行时间相同且固定, 在十字路口,常常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2没有考虑紧急车经过时,两车道应采取方法,臂如,消防车实施紧急任务经过时,两车道车全部应停止,让紧急车
6、经过。2.1、课程设计目标1 巩固单片机技术课程所学相关知识。2 经过硬件设计、软件设计,使学生掌握用单片机组成应用系统方法,提升软件设计能力。3 掌握单片机用于多种功效控制方法。4 学会产品设计方法。2.2经过单片机实现交通灯系统完成内容以下:1南北方向:绿灯亮30S放行,黄灯亮4S警告,然后红灯亮30S严禁。2东西方向:绿灯亮30S放行,黄灯亮4S警告,然后红灯亮30S严禁。3南北方向红灯亮时,同时用2位LED进行30S递减时间显示。4东西方向红灯亮时,同时用2位LED进行30S递减时间显示。5单片机程序设计、调试。 第三章硬件设计和介绍3.1.8255内部结构和引脚功效 8255内部结构
7、图3.2.特征(1)一个并行输入/输出LSI芯片,多功效I/O器件,可作为CPU总线和外围接口. (2)含有24个可编程设置I/O口,即3组8位I/O口为PA口,PB口和PC口.它们又可分为两组12位I/O口,A组包含A口及C口(高4位,PC4PC7),B组包含B口及C口(低4位,PC0PC3).A组可设置为基础I/O口,闪控(STROBE)I/O闪控式,双向I/O3种模式;B组只能设置为基础I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器控制字决定. 3.3.引脚功效RESET:复位输入线,当该输入端处于高电平时,全部内部寄存器(包含控制寄存器)均被清除,全部I/O口均被置成输入
8、方法。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,许可8255和CPU进行通讯;/CS=1时,8255无法和CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,许可8255经过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,许可CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255和CPU数据传送通道,当CPU 实施输入输出指令时,经过它实现8位数据读/写操作,控制字和状态信息也经过数据总线传送。 PA0PA
9、7:端口A输入输出线,一个8位数据输出锁存器/缓冲器, 一个8位数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位I/O锁存器, 一个8位输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位数据输出锁存器/缓冲器, 一个8位数据输入缓冲器。端口C能够经过工作方法设定而分成2个4位端口, 每个4位端口包含一个4位锁存器,分别和端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A0,A1:地址选择线,用来选择8255PA口,PB口,PC口和控制寄存器. 当A0=0,A1=0时,PA口被选择; 当A0=0,A1=1时,PB口被选择; 当A0=1,A1=0时,PC口被选择;
10、 当A0=1.A1=1时,控制寄存器被选择. 3.4.80C51单片机介绍和结构 有4个I/O端口,每个端口全部是8位双向口,共占32根引脚。每个端口全部包含一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口称为P0P3。在无片外扩展存放器系统中,这4个端口每一位全部能够作为双向通用I/O端口使用。在含有片外扩展存放器系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。1. P1口80C51单片机Pl口只有一个功效:通用输入/输出接口。通用I/O接口有输出、输入和端口操作三种工作方法。(1)输出方法 计算机实施写P1口指令如MOV Pl, #d
11、ata时,P1口工作于输出方法,此时数据data经内部总线送入锁存器锁存。假如某位数据为1,该位锁存器输出端Q = 1、 = 0,使V1截止,从而在引脚P1.x上出现高电平。反之,假如数据为0,则Q = 0、 = 1,使V1导通,P1.x上出现低电平。(2)输入方法 计算机实施读P1口指令如MOV A, P1时,P1口工作于输入方法。控制器发出读信号打开三态门1,引脚P1.x上数据经三态门l进入芯片内部总线,并送到累加器ACC,所以输入时无锁存功效。 在实施输入操作时,假如锁存器原来寄存数据Q = 0。那么因为 = 1,将使V1导通,引脚被一直钳位在低电平上,不可能输入高电平。为此,在输入前必
12、需先用输出指令置Q = 1,使V1截止。正因为如此,P1口称为准双向口。 单片机复位后,P1各口线状态均为高电平,可直接用作输入。52子系列单片机P1口中P1.0和P1.1含有第二功效,除了作为通用I/O接口外,P1.0(T2)还作为定时器/计数器2外部计数脉冲输入端,P1.1还作为定时器/计数器2外部控制输入端(T2EX)。P1口输出时能驱动4个LSTTL负载。P1口内部有上拉电阻,所以在输入时,即使由集电极开路电路或漏极开路电路驱动,也无需外接上拉电阻。2. P2口P2口有两种用途:通用I/O接口或高8位地址总线。1)地址总线状态计算机从片外ROM中取指令,或实施访问片外RAM、片外ROM
13、指令时,模拟开关打向上边,P2口上出现程序计数器PC高8位地址或数据指针DPTR高8位地址(A8A15),上述情况下,锁存器内容不受影响。当取指或访问外部存放器结束后,模拟开关打向下边,使输出驱动器和锁存器Q端相连,引脚上将恢复原来数据。 通常地说,假如系统扩展了外部ROM,取指操作将连续不停,P2口不停送出高8位地址,这时P2口就不应再作为通用I/O口使用。假如系统仅仅扩展外部RAM,情况应具体分析,当片外RAM容量不超出256B时,能够使用寄存器间接寻址方法指令:MOVX A,RiMOVX Ri,A由P0口送出8位地址寻址,P2口引脚原有数据在访问片外RAM期间不受影响,故P2口仍可用作通
14、用I/O接口;当片外RAM容量较大需要由P2口、P0口送出16位地址时,P2口不再用作通用I/O接口;当片外RAM地址大于8位而小于16位时,能够经过软件从P1、P2、P3口中某几根口线送出高位地址,从而可保留P2全部或部分口线作通用I/O接口用。2)通用I/O接口状态P2口作准双向通用I/O接口使用时,其功效和P1口相同,工作方法、负载能力也相同。3. P3口P3口除了作为准双向通用I/O接口使用外,每一根线还含有第二种功效。P3口用作I/O接口时,其功效和P1口相同。P3口作为第二功效输入操作时,其锁存器Q端必需为高电平,不然无法输入或输出第二功效信号。单片机复位时,锁存器输出端为高电平。
15、P3口第二功效中输入信号RXD、 、 、T0、T1经缓冲器1输入,可直接进入芯片内部。4. P0口P0口有两种功效;地址/数据分时复用总线和通用I/O接口。P0口输出时能驱动8个LSTTL负载,即输出电流大于800A。 5.单片机在医用设备领域中应用单片机在医用设备中用途亦相当广泛,比如医用呼吸机,多种分析仪,监护仪,超声诊疗设备及病床呼叫系统等等 6.在多种大型电器中模块化应用 一些专用单片机设计用于实现特定功效,从而在多种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单功效,微缩在纯电子芯片中(有别于磁带机原理),就需要复杂类似于计算机原理。如:音乐信号以数
16、字形式存于存放器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。3.5课程设计系统步骤图第四章 交通灯系统原程序 #include#include#define b8255 XBYTE0xff29 /定义8255 B口地址#define c8255 XBYTE0xff2a /定义8255 C口地址#define ctrl8255 XBYTE0xff2b /定义8255控制字地址code unsigned char sag10=0xfc,0x60,0xda,0xf2,0x66,0
17、xb6,0xbe,0xe0,0xfe,0xf6;/段码 (段码排列:abcdefg dp)sbit clk=P31;sbit sdata=P30;data unsigned char c_data,b_data=0;unsigned char *b_port,*c_port;unsigned int intdata=65536-50000;/定时常数(按100ms计算T=(65535-intdata)Tcy,Tcy=2uS)unsigned char sec1=10;/1秒计时初值(sec110*100 ms)unsigned char sec2=5; /0.5秒计时初值(sec25*100
18、ms)unsigned char sec=30; /25秒计时初值(sec25*sec1 s)bit direct=0,direct1=0;extern void display(unsigned char d);void EastWest(void);void SouthNorth(void);void Flash(void);void HC164_Send(unsigned char displaysag);void display(unsigned char d);void main(void)unsigned char *ctrl;ctrl=& ctrl8255;c_port=& c8
19、255;b_port=& b8255;*ctrl=0x80; /置8255控制字,A口输出,B口输出,C口输出,工作方法0TMOD=0x01; /定时器0工作在定时方法TH0=intdata/256; /商3C(intdata=C3B0)TL0=intdata%256; /余数B0IE=0x82; /开中止(总中止及T0中止)EastWest(); /初始化交通灯显示display(sec); /初始化计时显示TR0=1; /开启定时 while(1) if(sec2=0)/定时到0.5秒sec2=5;Flash();*b_port=b_data;*c_port=c_data; if(sec1
20、=0) /定时到1秒sec1=10;sec=sec-1; /倒计时display(sec); /显示计时if(direct1=0) /交通灯显示 EastWest(); *b_port=b_data; *c_port=c_data;else SouthNorth(); *b_port=b_data; *c_port=c_data;if(sec=0) /变换方向sec=30+1; /置计时初值(因为显示在倒 计时后,初值需加1)direct=!direct; direct1=direct;/确保交通灯显示和倒计时置数同时void EastWest(void)/东西向显示if(sec5 )b_da
21、ta=0x08;c_data=0x61; else if(sec=0) b_data=0x08;c_data=0xa2;void SouthNorth(void) /南北向显示if(sec5 )b_data=0x03;c_data=0x0c; else if(sec=0)b_data=0x05;c_data=0x14;void Flash(void) /闪烁显示if(sec2)if(!direct1) /交通灯显示 if(c_data & 0x41)=0x41) c_data&=0xbe; else c_data|=0x41; else if(c_data & 0x08)=0x08) c_da
22、ta&=0xf7; b_data&=0x0d; else c_data|=0x08; b_data|=0x02; void display(unsigned char d) /显示 unsigned char i;unsigned int outdata2; outdata1=(d/10)%10;/取出高位(整形会将b/10小数位丢掉) outdata0=d%10; /取出低位;for(i=0;i2;i+)switch(outdatai) case 0:HC164_Send(sag0);break; case 1:HC164_Send(sag1);break; case 2:HC164_Sen
23、d(sag2);break; case 3:HC164_Send(sag3);break; case 4:HC164_Send(sag4);break; case 5:HC164_Send(sag5);break; case 6:HC164_Send(sag6);break; case 7:HC164_Send(sag7);break; case 8:HC164_Send(sag8);break; case 9:HC164_Send(sag9);break; void HC164_Send(unsigned char displaysag) unsigned char i; for(i=0;i
24、=1; /段码右移1位 void int_0(void) interrupt 1 using 2 /1号中止,使用2号寄存器组IE=0x00; /关中止TH0=0x3c; /intdata/256;TL0=0xb0; /intdata%256;/置定时初值 sec1=sec1-1; /1秒倒计时sec2=sec2-1; /0.5秒倒计时IE|=0x82; /开中止 第五章 系统仿真图 第六章 课设总结及心得体会经过此次课程设计不能,我学到了很多平时学不到东西,让我受益匪浅,感慨颇多,深有体会。这次课程设计历时一个星期,经过这个星期学习,发觉了自己很多不足,不管是对知识了解还是实践能力和理论联络
25、实际能力还急需提升。在这个过程中,我也曾经因为错误失落过,也曾经因为小有成绩而热情高涨。正如生活一样,汗水预示着结果也见证着收获。即使这只是一次极简单课程设计,可是平心而论,也花费了我们不少心血,这才意识到老一辈对我们社会付出,为了大家生活更美好,她们为我们社会所付出多少心血啊!经过这次课程设计,我感到:这个工程确实很累,但当试验成功时候,我心中就不免兴奋,不免激动。以前种种艰辛这时就变成了最甜美回想!对我而言,知识上收获关键,精神上丰收愈加可喜。让我知道了学无止境道理。我们每一个人永远不能满足于现有成就,人生就像在爬山,一座山峰后面还有更高山峰在等着你。挫折是一份财富,经历是一份拥有。我想这次课程设计给我留下来很多印象,给了自己很多经验,一定会在以后学习生活中留下很多主动影响! 致谢陈潮红 老师
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100