1、 《计算机控制技术》课程设计报告 学 院: 沈阳工业大学 专 业: 电气工程及其自动化 班 级: 06电气2班 姓 名: 朱红云 学 号: 09 指引教师: 李英顺 起止日期:6月15日~6月28日 目 录 1. 课程设计目 1 2.课程设计题目和规定 1 2.1课程设计题目 1 2.2系统规定 2 2.3控制方案 2 3设计内容
2、3 3.1硬件设计 3 3.1.1单片机最小硬件电路 3 3.1.2芯片简介 6 3.1.3数码管显示电路 8 3.1.4键盘接口电路 8 3.2软件设计 9 3.2.1总体设计 9 3.2.2主程序设计 10 3.3.3显示及闪烁程序设计 12 3.3.4交通控制时间解决程序 16 3.3.5键盘功能解决程序设计 20 3.3.6 AT24C02操作程序 23 4.设计总结 25 参照书目 25 附录 28 课程设计目 1、 通过单片机控制设计,纯熟掌握汇编语言编程办法,将理论联系到实践中去,提高咱们动脑和动手能力; 2
3、 完毕控制系统硬件设计、软件设计; 3、 通过单片机课程设计,纯熟掌握汇编语言编程办法,将理论联系到实践中去,提高咱们动脑和动手能力。 4、 通过交通信号灯控制系统设计,掌握定期/计数器用法,和简朴程序编写,最后提高咱们逻辑抽象能力。 5、进一步熟悉和掌握单片机构造和工作原理。 6、掌握单片机接口技术及有关外围芯片外特性,控制办法,通过课程设计,掌握以单片机为核心电路设计基本办法和技术。 7、通过实际程序设计和调试,逐渐掌握模块化程序设计办法和调试技术。 8、通过完毕一种涉及电路设计和程序开发完整过程,为咱们此后从事相应工作打下基本。 2.课程设计题目和规定 2.1课程设计
4、题目 交通灯设计 在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常用和最有效手段。但。这一技术在19世纪就已浮现了。 1858年,在英国伦敦重要街头安装了以燃煤气为光源红,蓝两色机械扳手式信号灯,用以指挥马车通行。这是世界上最早交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区议会大厦前广场上,安装了世界上最早煤气红绿灯。它由红绿色两以旋转式方形玻璃提灯构成,红色表达“停止”,绿色表达“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 19,电气启动红绿灯出当前美国。这种红绿灯由红绿黄三色圆形投光器构成,安装在纽约市5号大街一座高塔上。红灯亮表
5、达“停止”,绿灯亮表达“通行”。 19,又浮现了带控制红绿灯和红外线红绿灯。带控制红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感路面时,它就能察觉到有人要过马路。红外光束能把信号灯红灯延长一段时间,推迟汽车放行,以免发生交通事故。 信号灯浮现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯含义作了规定。绿灯是通行信号,面对绿灯车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种
6、转向。左右转弯车辆都必要让合法地正在路口内行驶车辆和过人行横道行人优先通行。红灯是禁行信号,面对红灯车辆必要在交叉路口停车线后停车。黄灯是警告信号,面对黄灯车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 2.2系统规定 1) 容许过程中有时间提示 2) 系统运营参数可以在运营现茶馆修改 3) 控制灯切换原则:某一种灯方向红灯显示时间比另一种方向绿灯显示多3s,绿灯结束黄灯闪烁2s,然后变红灯,红灯结束后变绿灯。 4) 在修改参数过程中各个方向都黄灯闪亮,批示车辆减速慢行。 5) 提供详细修改参数办法,便于顾客操作。 6) 为简化设计,不考虑行人通
7、道。 2.3控制方案 1) 本例中用通用LED数码管作为时间显示屏件,LED二极管作为交通控制批示灯(实际交通灯中都是高亮度二极管点阵构成,和本例区别仅是驱动电路,控制过程是一致)。共需要8个数码管、12个二极管(红、黄、绿各4个)。 2) 现场修改参数系统必要设计键盘,本例设计有4个按钮构成独立式键盘,采用中断控制扫描方式,定义键功能如下: 第一种键:从指挥交通状态进入参数修改状态,并调出系统本来参数,前面两个数码管显示南北方向红灯时间,后两个显示南北方向绿灯时间(东西方向可以依照切换规则计算出来,修改参数只需要变化某一种方向参数),以备修改,修改时有一种数码管闪烁,表达该位显示数可
8、以修改。 第二个键:(在指挥交通状态该键不起作用,背面两个键也只这样)加一键,使闪烁数码管加1,并在0~9之间变化。 第三个键:移位键,使4个数码管杉树状态依次循环切换,和第二个键配合可以修改四个数码管上数据,达到修改参数目。 第四个键:运营键,保存设立参数,并按照修改参数进入指挥交通状态 3)考虑到现场也许停电,为防止片外数据存储器来保存参数,数据量不是诸多,也不经常变动,采用ATMEL公司AT24C02。 图2.3交通灯控制系统构造框图 3设计内容 3.1硬件设计 3.1.1单片机最小硬件电路 单片机最小硬件电路构成简述:要使单片机工作起来,最基本电路构成为本系统采用
9、AT89S51单片机,程序量不大,使用内部存储器。 电源电路:向单片机供电。 时钟电路:单片机工作时间基准,决定单片机工作速度。 复位电路: 拟定单片机工作起始状态,完毕单片机启动过程。 图3.1单片机最小硬件电路 1、电源 AT89S51单片机工作电压范畴:4.0V—5.5V, 因此普通给单片机外接5V直流电源。连接方式如图 图3. 2电源图 2、时钟电路: 时钟电路就是振荡电路,向单片机提供一种正弦波信号作为基准,决定单片机执行速度。 AT89S51单片机时钟频率范畴:0 — 33MHz。 3.3时钟电路连接方式 图中电容C1和C2起稳定作用。
10、3、复位电路 复位电路产生复位信号,使单片机从固定起始状态开始工作,完毕单片机“启机”过程。AT89S51单片机复位信号是高电平有效,通过RST/VPD(9脚)输入。 复位电路连接方式有两种。 (1)上电复位 单片机接通电源时产生复位信号,完毕单片机启动,拟定单片机起始工作状态。 (2)手动复位 手动按键产生复位信号,完毕单片机启动,拟定单片机初始状态。 普通在单片机工作浮现混乱或“死机”时,使用手动复位可实现单片机“重启”。 (3)混合复位电路 将上电复位电路和手动复位电路结合到一起构成,普通使用都是这种混合复位电路。 4、最小硬件系统电路图
11、 图3.4最小硬件系统电路图 3.1.2芯片简介 1、AT89S51芯片简介 EA/VP(31脚)接+5V。单片机P0、P1、P2、P3四个端口用于输入/输出数字电信号。 (1)电源引脚:连接电源 Vcc(40脚):电源正极 Vss(20脚):电源负极 (2)时钟引脚:连接时钟电路 XTAL1(19脚):输入引脚 XTAL2(18脚):输出引脚 (3)复位引脚:连接复位电路 RST/VPD(9脚):复位引脚 (4)控制引脚:辅助控制作用 PSEN(29脚)ALE/PROG(30脚)
12、 EA / VPP(31脚):接高电平 (5)I/O端口引脚:用来连接单片机和外部设备,实现数据输入/输出。 P0.0—P0.7(39脚—32脚):P0端口 P1.0—P1.7( 1脚 — 8脚 ):P1端口 P2.0—P2.7(21脚—28脚):P2端口 P3.0—P3.7(10脚—17脚):P3端口 图3.5 AT89S51引脚图 2、8155芯片简介 8155可编程并行接口芯片有三个输入输出端
13、口,即PA口、PB口和PC口,相应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部尚有一种控制寄存器,即控制口。普通PA口、PB口作为输入输出数据端口。PC口作为控制或状态信息端口,它在方式字控制下,可以提成4位端口,每个端口包括一种4位锁存器。它们分别与端口PA/PB配合使用,可以用作控制信号输出或作为状态信号输入。 8155可编程并行接口芯片工作方式: 方式0:基本输入/输出方式。合用于三个端口中任何一种。每一种端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入/输出方式。这时PA或PB口8位外设线用作输入或输出,PC口4条线中三条用
14、作数据传播联系信号和中断祈求信号。 方式2:双向总线方式。只有PA口具备双向总线方式,8位外设线用作输入或输出,此时PC口5条线用作通讯联系信号和中断祈求信号 3.1.3数码管显示电路 采用共阳型数码管,6个LED灯如图中接法,灯负载依次接到数码挂a-f段,采用动态扫描电路,并把显示程序作为主程序。数码管段用P0口控制,P2.0-P2.3作为数码管控制,p2.4作为批示灯控制。 图3-8共阳 图3-6管脚图 图3-7共阴 LED数码管管脚配备如图3-1所示。LED数码管有共阴极和共阳极两类。共阴极LED数码管发光二极管阴极
15、共地,如图3-2(a),当某个发光二极管阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管阳极共接,如图3-2(b),当某个二极管阴极电压为低电平时,二极管发光。 图3.9显示电路 3.1.4键盘接口电路 图3.10键盘接口电路如图 P1.0-P1.3作为接键输入信号,采用中断控制草庙方式,采用简朴二极管与门电路,与门输出接到外部中断0,外中断设立成边沿触发方式。任意键按下时都会在P3.2引脚产生下降沿,从而触发中断,在中断服务程序中检测P1.0-P1.3引脚,判断
16、是哪个键按下,执行该键按下,执行该键功能。 3.1.5存储器电路 AT24WC02 是一种2K 位串行CMOS E2PROM 内部具有256个8 位字节缓冲器AT24WC02 有一种16 字节页写缓冲器该器件通过I2C 总线接口进行操作有一种专门写保护功能。芯片引脚地址所有接地,用P2.6作为串行数据线SDA,P2.7作为串行时钟线SCL。 图3.11存储器芯片引脚 图3.12存储器接口电路 3.2软件设计 3.2.1总体设计 程序模块涉及:主程序(系统初始化、显示程序)、外中断服务程序(按键解决)、定期器服务程序(倒计时解决)、AT24C02操作程序等。 主程
17、序框图如图所示。 图3.13主程序构造框图 主程序涉及对定期/计数器、外部中断初始化,读出系统运营参数,将交通灯时间参数送相应显示缓冲区,然后重复调用显示子程序。并在现实过程中档待见哦按中断解决键盘功能,等待定期器中断变化数码管显示指挥交通。 系统用两个定期器,一种用交通灯计时解决,一种用来控制数码管闪烁显示,结合显示程序进行综合设计。其她与实践关于解决程序也用该定期器实现,进行多延时程序设计。 3.2.2主程序设计 定期器设立,交通灯控制需要产生秒信号,定期器一半不能直接产生,如系统晶振才哟个6MHz,系统机器中期是2um,最大定期约131ms,可以将定期器设立为重复定
18、期125ms,数中断次数,没=每8次就是1s。闪烁显示定期时间也可设立为125ms,1s亮灭几次可以看出闪烁效果。 两个定期器都设立为方式1定期,初值为:216-125*1000/2=0BDCH 主程序如下; ORG 0000H LJMP SETUP;程序开头,跳过入口地址区 ORG 0003H;外中断0入口地址 LJMP INEX0P;转移到键盘解决程序 ORG 000BH;T0入口地址 LJMP INET0P;交通控制时间解决程序 ORG 001BH;T1入口地址 LJMP INET1P;闪烁控制等解决程序 ORG 0030H SETUP:MOV SP,#30H;设
19、立堆栈指针 MOV TMOD,#11H;T0、T1方式1定期 MOV TH0,#0BH; MOV TL0,#0DCH;125ms初值 MOV TH1,#0BH; MOV TL1,#0DCH;125ms初值 SETB TR0;T0启动运营 SETB TR1;T1启动运营 SETB ET0;开通T0中断 SETB ET1;开通T1中断 SETB IT0;外中断0下降沿触发 SETB EX0;开通外中断 SETB EA;开通总容许位 LCALL STATUS;调系统初始状态设立子程序 LCALL RCS;调用读系统参数子程序 MAIN: MOV 0A6H,#
20、1EH;前两句,第一次执行启动看门狗 MOV 0A6H,#0E1H;后来再执行届时喂狗指令 LCALL DIS;调显子示程序 SJMP MAIN;主程序 读系统初始状态设立子程序时对系统初始运营需要信息(如显示程序中标志位等)进行设立。 3.3.3显示及闪烁程序设计 图3.14为显示程序分派RAM资源 数码管显示控制原理:在显示程序中判断该数码管亮灭标志决定与否跳过位开通指令,从而达到控制数码管亮和灭控制,在定期器程序中判断该位闪烁标志,决定与否对该数码管亮灭标志位求反操作,实现数码管闪烁控制。后来只要对闪烁标志设立就可控制数码管闪烁。 控制办法是判断闪烁标
21、志位,通过对显示缓冲区内容变化(该位亮或灭信息),达到闪烁效果。 (1)显示子程序 亮灭标志位:0-亮,1-灭 闪烁原则化:0-不闪,1-闪烁 DIS: 显示子程序 MOV DPTR,#TAB; 表格首地址送DPTR MOV A,70H; 显示缓冲区送A MOVC A,@A+DPTR;查表求出字段码 MOV P0,A; 字段码送段输出口 JB 50H,MIEO; 判亮灭标志,1转移 CLR P2.0; 开通位,0不转移亮 MIEO:LCALL DEL; 调延时 SETB
22、P2.0; 关断位,第1个显示完 MOV A,71H; 第2位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P0,A; 字段码送段输出口 JB 51H,MIE1; 判亮灭标志,1转移 CLR P2.1, 开通位,0不转移亮 MIE1:LCALL DEL; 调延时 SETB P2.1; 关断位,第2个显示完 MOV DPTR,#TAB; 表格首地址送DPTR MOV A,72H; 第3位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P0,A;
23、 字段码送段输出口 JB 52H,MIE2; 判亮灭标志,1转移 CLR P2.2; 开通位,0不转移亮 MIE2:LCALL DEL; 调延时 SETB P2.2; 关断位,第3个显示完 MOV A,73H; 第4位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P3,A; 字段码送段输出口 JB 53H,MIE3; 判亮灭标志,1转移 CLR P2.3; 开通位,0不转移亮 MIE3:LCALL DEL; 调延时 SETB
24、P2.3; 关断位,第4个显示完 MOV A,74H; 第5位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P4,A; 字段码送段输出口 JB 50H,MIE4; 判亮灭标志,1转移 CLR P2.4; 开通位,0不转移亮 MIE4:LCALL DEL; 调延时 SETB P2.4; 关断位,第5个显示完 MOV A,75H; 第6位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P5,A; 字段码送段输出口 JB 55H,MIE5;
25、判亮灭标志,1转移 CLR P2.5; 开通位,0不转移亮 MIE5:LCALL DEL; 调延时 SETB P2.5; 关断位,第6个显示完 MOV A,76H; 第7位数码管 MOVC A,@A+DPTR;查表求出字段码 MOV P6,A; 字段码送段输出口 JB 56H,MIE6; 判亮灭标志,1转移 CLR P2.6; 开通位,0不转移亮 MIE6:LCALL DEL; 调延时 SETB P2.6; 关断位,第7个显示完 MOV A,77H;
26、第8个数码管 MOVC A,@A+DPTR MOV P7,A JNB 57H,MIE7 CLR P2.7 MIE7:LCALL DEL SETB P2.7 MOV P0,78H; 送交通状态灯信息,不需查表 CLR P3.0 LCALL DEL SETB P3.0 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H DB 0F8H,80H,90H DEL:MOV R7,#0; 延时子程序 DJNZ R7,$ RET END (2)定期器服务程序 INETIP;
27、 T1服务程序 MOV TH1,#0BH; 从装初值 MOV TL1,#0DCH; 125ms初值 JNB 58H,SHAN0; 判第1数码管闪烁标志,0转移 CPL 50H; 1不转移,亮灭标志取反 SHAN0:JNB 59H,SHAN1; 判第2数码管闪烁标志,0转移 CPL 51H SHAN1:JNB 60H,SHAN2; 判第3数码管闪烁标志,0转移 CPL 52H SHAN2:JNB 61H,S
28、HAN3; 判第4数码管闪烁标志,0转移 CPL 53H SHAN3:JNB 62H,SHAN4; 判第5数码管闪烁标志,0转移 CPL 54H SHAN4:JNB 63H,SHAN4; 判第6数码管闪烁标志,0转移 CPL 55H SHAN4:JNB 64H,SHAN5; 判第7数码管闪烁标志,0转移 CPL 56H SHAN5:JNB 65H,SHAN6; 判第8数码管闪烁标志,0转移 CPL 57H SHAN6:JNB 66H,SHAN7 CPL 53H RETI 其她功能程序如键盘操作只要
29、对闪烁标志位进行操作,就可控制相应数码管闪烁,但要注旨在有闪烁到不闪烁控制中,应同步数码管亮灭标志。由于有也许时在闪烁过程中灭阶段停止闪烁,亮灭标志被置为灭状态,数码管熄灭。 3.3.4交通控制时间解决程序 1)软件设计基本思想:由定期器产生0.05s定期,软件计数得到秒信号,设30s计数器,30s计数器计满,绿灯灭、黄灯闪烁5次,黄灯灭、红灯亮;同步,另两路口红灯灭、绿灯亮。 2)定期器T0工作方式1,产生0.05s定期。P0口及P2口低4位输出控制信号。30s计数器地址为40H。 图3.15控制引脚与灯相应关系 图3.16流程图 程序如下: BRD EQU
30、 PA0 BYD EQU PA1 BLD EQU PA2 NRD EQU PB1 NYD EQU PB2 NLD EQU PB3 DRD EQU PA0 DYD EQU PA1 DLD EQU PA2 XRD EQU PA6 XYD EQU PA7 XLD EQU PB0 NHD BIT 00H DHD BIT 00H S30 EQU 40H BUF EQU 41H 初始化及主程序: ORG 0000H
31、LJMP MAIN ORG 000BH LJMP TOVLOCK; 0.05s中断服务程序 MAIN: MOV SP,#30H; 堆栈指针 CLR A; A=00H MOV BUF,A; 0.05s计数器清0 MOV S30,A; 30s计数器清0 MOV TMOD,#01H; 定期器T0工作在方式1 MOV THO,#3CH; T0用于时钟定期,0.05s定期初值 MOV TL0,#0B0H SETB EA; 开中断 SETB ET0 SETB TR0; 启动定期 NOP MOV
32、P0,#0FFH; 路口灯全灭 MOV P2,#0FFH NOP DEN_0:CLR NLD; 南绿灯亮 CLR BLD; 北绿灯亮 CLR DRD; 东红灯亮 CLR XRD; 西红灯亮 CLR S30,#00H ; 30s计数器清0 DEN_1:MOV A,S30 CJNZ A,#30,DEN_1;不到30s等待 SETB NLD ; 南绿灯灭 SETB BLD; 北绿灯 DEN_2:CLR NYD; 南黄灯亮 CLR BYD;
33、 北黄灯亮 ACALL DEL05S; 调用0.5子程序 SETB NYD; 南黄灯灭 SETB BYD; 北黄灯灭 ACALL DEL05S; 调用0.5子程序 DJNZ R1,DEN_2 CLR NRD; 南红灯亮 CLR BRD; 北红灯亮 CLR DLD ; 东绿灯亮 CLR XLD; 西绿灯亮 DEN_3:MOV A,S30 CJNE A,#30,DEN_3;不到30s等待 SETB DLD; 东绿灯灭 SETB XLD;
34、 西绿灯灭 DEN_4:CLR DYD; 东黄灯亮 CLR XYD; 西黄灯亮 ACALL DEL05S; 调用0.5子程序 SETB DYD; 东黄灯灭 SETB XYD; 西黄灯灭 ACALL DEL05S; 调用0.5子程序 DJNZ R1,DEN_4 LJMP DEN_0 T0中断服务程序 TOCLOCK:MOV TH0,#3CH; 重装初值 MOV TL0,#0B7H PUSH PSW
35、 PUSH ACC INC BUF;BUF+1 MOV A,BUF CJNE A,#20,TCHU; 合计20次为一秒 MOV BUF,#00H; 一秒到,计数器清0 MOV A,S30; 修改30s计数器 INC A MOV S30,A CJNE A,#31,TCHU; 计数不到30返回 MOV S30,#00H; 计数超30清0 TCHU:POP ACC POP PSW RETI 0.5S延时子程序 DEL05
36、S: MOV 74H,#03H LOOP0: MOV 73H,#0FFH LOOP1: MOV 72H,#0FFH LOOP2: NOP DJNZ 72H,LOOP2 DJNZ 73H,LOOP1 DJNA 74H,LOOP0 RET 3.3.5键盘功能解决程序设计 键盘用外部中断来解决,一方面判断那个键按下,然后按照总体方案中规划编写每个按键功能程序,下面列出四个按键功能描述和解决程序。 第一种键:系统由运营状态进入修改参数状态,需做一下工作: 1)停止倒计时。 2)将某一种方向红灯参数和绿灯参数调出来,送显示缓冲区。 3)第一种数码管闪烁,标
37、志进入设立状态。 程序如下: KEY1: ; 第一种键功能 PUSH ACC; 保护现场 CLR TR0; 关闭定期器,停止倒计时 LCALL RCS; 调用读系统参数子程序 SETB 54H; 第一种闪烁,别的不闪烁 CLR 55H CLR 56H CLR 57H POP ACC; 恢复现场 RET1; 中断返回 第二个键:加1键。按照表3.14分派位标志和显示缓冲区单元,依次对四个数码管闪烁标志位进行判断,对相应显示缓冲区进行加1解决(0~9变化)。程序构造如图3
38、17所示 KEY2: PUSH ACC; S2键功能程序 INC 55H; 加1 MOV R2,70H CJNE R2,#10,KEY1A; 判断与否为10,否转返回 MOV 55H,#0; 清为0 RETI 图3.17加1键程序框图 第三个键:移位键。使数码管闪烁依次移位,和第二键配合修改四个数码管上数据。程序构造和第二个键同样,仅是解决内容不同,进行移位操作,框图略去。在编程时应注意,移到下一位闪烁时应将前面数码管亮灭标志清0,避免移位后熄灭。 程序如下: KE
39、Y3:; 第三个键功能 PUSH ACC; 保护现场 JNB 54H,KEY3A; 第一种数码管不闪烁 ; 转移判下一种 CLR 54H; 闪烁,清闪烁 CLR 50H; 清灭标志 SETB 55H; 置下一位闪烁,实现移位 POP ACC; 恢复现场 RETI; 中断返回 KEY3A:JNB 55H,KEY3B; 第二个数码管不闪烁转移判下一种 CLR 55H; 闪烁,
40、清闪烁 CLR 51H; 清灭标志 SETB 56H; 置下一位闪烁,实现移位 POP ACC; 恢复现场 RETI; 中断返回 KEY3B:JNB 56H,KEY3C; 第三个数码管不山所转移到下一种 CLR 56H; 闪烁,清闪烁 CLR 52H; 清灭标志 SETB 57H; 置下一位闪烁,实现移位 POP ACC; 恢复现场 RETI;
41、 中断返回 KEY3C: 第四个数码管闪烁 CLR 57H; 闪烁,清闪烁 CLR 53H; 清灭标志 SETB 50H; 置下一位闪烁,实现移位 POP ACC; 恢复现场 RETI; 中断返回 第四个键:运营键。操作使系统重新进入指挥交通状态,需要做一下操作: 1)保存修改后参数,并替代系统患有参数。数码管上设立只是一种方向红绿灯参数,另一种方向可以通过计算求得: 一种方向红灯参数=另一种方向绿灯数据
42、2(黄灯数据) 两个方向参数一起存储到AT24C02中(调用鞋子程序0 2)设立初始系统状态(与初始化某些同样) 3)使数码管不闪烁。 4)启动倒计时,进入指挥交通状态。 程序如下: KEY4: 第四个键功能 PUSH ACC; 保护现场 MOV A,73H; 取红灯高位 MOV B,#10; MUL AB;乘10 ADD A,72H; 加红灯低位=南北方向红灯数据 MOV 60H,A; 南北红灯 CLR C SUBB A,#2 MOV 63H,A; 东西绿灯 MOV A,71H; 取绿灯高位 MO
43、V B,#10 MUL AB; 乘10 ADD A,70H; 加上绿灯低位=南北方向绿灯数据 MOV 61H,A; 南北绿灯 ADD A,#2; MOV 62H,A; 东西红灯 LCALL WRC; 调写参数子程序 MOV 2AH,#O; 为50H~57H清为0,使数码管正常显示 LCALL STATUS; 调系统初始状态设立子程序 LCALL RCS; 调用读系统参数子程序 SETB TR0; 重新开始到计时 POP ACC; 恢复现场 RETI 3.3.6 AT24C02操作程序 系统上电读参数,设
44、立参数后保存参数都是对AT24C02进行读写操作。 将单片机内部RAM 50H~7FH单元内容写入AT24C02中,20H开始存储空间 W24C02:MOV R0,#50H; 数据首地址 MOV R3,#8; 数据个数 LCALL START; 调启动子程序 MOV A,#0A0H; 写操作器件地址 LCALL WBYTE; 调写字节子程序写SADR LCALL BACK; 调检测应答子程序 MOV A,#20H;
45、 AT24C02内部单元首地址 LCALL WBYTE; 调检测应答子程序 WLOOP:MOV A,@R0; 从RAM中取数 LCALL WBYTE; 调写字节子程序,写DATA LCALL BACK; 调检测应答子程序 INC R0; 修改数据地址 DJNZ R3,WLOOP; 判断与否写完,没继续 LCALL STOP; 写完,调停止程序 RET 写入AT24C02 50H~7FH中数据读出,存入内RAM 10H~3FH AT24R
46、D:MOV MTD,#50H ;置AT24C02读出数据区首址SADR MOV SLA,#11110000B;置写AT24C02寻址字节 MOV NUMB,#1 ;置写入数据字节数 LCALL WRNB ;启动并发送AT24C02读出单元子地址SADR MOV SLA,#10100001B;置读AT24C02寻址字节 MOV NUMB,#10H ;置读出字节数 LCALL RDNB ;读16个数据[按
47、合同存储在40H(首址MRD)~4FH中] MOVD: MOV RO,#10H ;将接受16个数据转移至10H~3FH MOV R1,#MRD ; MOV A,@R1 ; MOV @RO,A ; INC RO ; INC R1 ; CJNE RO,#20H,MOVD ; RET ; 4.设计总结 本系统就
48、是充分运用了8155芯片和AT89S51引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能依照实际车流量通过8031芯片P1口设立红、绿灯燃亮时间功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。。系统局限性之处不能控制车左、右转、以及自动依照车流变化红绿灯时间等。这是由于自身地理位子以及车流量状况所定,如果有需要可以设计扩充原系统来实现 。 通过这次毕业设计,使我得到了一次用专
49、业知识、专业技能分析和解决问题全面系统锻炼。使我在单片机基本原理、单片机应用系统开发过程,以及在惯用编程设计思路技巧(特别是汇编语言)掌握方面都能向前迈了一大步,为日后成为合格应用型人才打下良好基本。 参照书目 [1] 竺可桢. 物理学. 北京:科学出版社,1973. [2]张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社 1998 [3]余锡存 曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版 社,.7 [4]雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2 《计算机控制技术》课程设计指引教师评语 评语: 指引教师: (签字) 年 月 日 ·
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818