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