计算机控制技术课程设计.docx
- 文档编号:10059349
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:30
- 大小:433.74KB
计算机控制技术课程设计.docx
《计算机控制技术课程设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
计算机控制技术课程设计
《计算机控制技术》课程设计报告
学院:
沈阳工业大学
专业:
电气工程及其自动化
班级:
06电气2班
姓名:
朱红云
学号:
09
指导教师:
李英顺
起止日期:
2009年6月15日~2009年6月28日
课程设计目的
1、通过单片机控制设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;
2、完成控制系统的硬件设计、软件设计;
3、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
4、通过交通信号灯控制系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
5、进一步熟悉和掌握单片机的结构和工作原理。
6、掌握单片机的接口技术及相关外围芯片的外特性,控制方法,通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术。
7、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
8、通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。
2.课程设计题目和要求
2.1课程设计题目
交通灯的设计
在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但。
这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿色两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
2.2系统要求
1)允许过程中有时间提示
2)系统运行参数可以在运行现茶馆修改
3)控制灯切换原则:
某一个灯方向的红灯显示时间比另一个方向绿灯显示多3s,绿灯结束黄灯闪烁2s,然后变红灯,红灯结束后变绿灯。
4)在修改参数过程中各个方向都黄灯闪亮,指示车辆减速慢行。
5)提供具体的修改参数方法,便于用户操作。
6)为简化设计,不考虑行人通道。
2.3控制方案
1)本例中用通用的LED数码管作为时间显示器件,LED二极管作为交通控制的指示灯(实际交通灯中都是高亮度的二极管点阵构成,和本例的区别仅是驱动电路,控制的过程是一致的)。
共需要8个数码管、12个二极管(红、黄、绿各4个)。
2)现场修改参数系统必须设计键盘,本例设计有4个按钮组成的独立式键盘,采用中断控制扫描方式,定义键的功能如下:
第一个键:
从指挥交通状态进入参数修改状态,并调出系统原来的参数,前面两个数码管显示南北方向红灯时间,后两个显示南北方向绿灯时间(东西方向可以根据切换规则计算出来,修改参数只需要改变某一个方向的参数),以备修改,修改时有一个数码管闪烁,表示该位显示的数可以修改。
第二个键:
(在指挥交通状态该键不起作用,后面两个键也只这样)加一键,使闪烁的数码管加1,并在0~9之间变化。
第三个键:
移位键,使4个数码管杉树状态依次循环切换,和第二个键配合可以修改四个数码管上的数据,达到修改参数的目的。
第四个键:
运行键,保存设置的参数,并按照修改的参数进入指挥交通状态
3)考虑到现场可能停电,为防止片外的数据存储器来保存参数,数据量不是很多,也不经常变动,采用ATMEL公司的AT24C02。
图2.3交通灯控制系统结构框图
3设计内容
3.1硬件设计
3.1.1单片机最小硬件电路
单片机最小硬件电路组成简述:
要使单片机工作起来,最基本的电路的构成为本系统采用AT89S51单片机,程序量不大,使用内部的存储器。
电源电路:
向单片机供电。
时钟电路:
单片机工作的时间基准,决定单片机工作速度。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
图3.1单片机最小硬件电路
1、电源
AT89S51单片机的工作电压范围:
4.0V—5.5V,所以通常给单片机外接5V直流电源。
连接方式如图
图3.2电源图
2、时钟电路:
时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
AT89S51单片机时钟频率范围:
0—33MHz。
3.3时钟电路连接方式
图中的电容C1和C2起稳定作用。
3、复位电路
复位电路产生复位信号,使单片机从固定的起始状态开始工作,完成单片机的“启机”过程。
AT89S51单片机复位信号是高电平有效,通过RST/VPD(9脚)输入。
复位电路连接方式有两种。
(1)上电复位
单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。
(2)手动复位
手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。
通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机“重启”。
(3)混合复位电路
将上电复位电路和手动复位电路结合到一起构成,通常使用的都是这种混合复位电路。
4、最小硬件系统电路图
图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脚)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.5AT89S51引脚图
2、8155芯片简介
8155可编程并行接口芯片有三个输入输出端口,即PA口、PB口和PC口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。
其内部还有一个控制寄存器,即控制口。
通常PA口、PB口作为输入输出的数据端口。
PC口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。
它们分别与端口PA/PB配合使用,可以用作控制信号输出或作为状态信号输入。
8155可编程并行接口芯片工作方式:
方式0:
基本输入/输出方式。
适用于三个端口中的任何一个。
每一个端口都可以用作输入或输出。
输出可被锁存,输入不能锁存。
方式1:
选通输入/输出方式。
这时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-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位串行CMOSE2PROM内部含有256个8位字节缓冲器AT24WC02有一个16字节页写缓冲器该器件通过I2C总线接口进行操作有一个专门的写保护功能。
芯片引脚地址全部接地,用P2.6作为串行的数据线SDA,P2.7作为串行的时钟线SCL。
图3.11存储器芯片引脚
图3.12存储器接口电路
3.2软件设计
3.2.1总体设计
程序模块包括:
主程序(系统初始化、显示程序)、外中断服务程序(按键处理)、定时器服务程序(倒计时处理)、AT24C02操作程序等。
主程序的框图如图所示。
图3.13主程序结构框图
主程序包括对定时/计数器、外部中断的初始化,读出系统运行参数,将交通灯时间参数送对应的显示缓冲区,然后反复调用显示子程序。
并在现实过程中等待见哦按中断处理键盘功能,等待定时器中断改变数码管显示指挥交通。
系统用两个定时器,一个用交通灯的计时处理,一个用来控制数码管的闪烁显示,结合显示程序进行综合设计。
其他与实践有关的处理程序也用该定时器实现,进行多延时程序设计。
3.2.2主程序设计
定时器设置,交通灯控制需要产生秒信号,定时器一半不能直接产生,如系统晶振才哟个6MHz,系统的机器中期是2um,最大定时约131ms,可以将定时器设置为反复定时125ms,数中断的次数,没=每8次就是1s。
闪烁显示定时的时间也可设置为125ms,1s亮灭几次可以看出闪烁效果。
两个定时器都设置为方式1定时,初值为:
216-125*1000/2=0BDCH
主程序如下;
ORG0000H
LJMPSETUP;程序开头,跳过入口地址区
ORG0003H;外中断0入口地址
LJMPINEX0P;转移到键盘处理程序
ORG000BH;T0入口地址
LJMPINET0P;交通控制时间处理程序
ORG001BH;T1入口地址
LJMPINET1P;闪烁控制等处理程序
ORG0030H
SETUP:
MOVSP,#30H;设置堆栈指针
MOVTMOD,#11H;T0、T1方式1定时
MOVTH0,#0BH;
MOVTL0,#0DCH;125ms初值
MOVTH1,#0BH;
MOVTL1,#0DCH;125ms初值
SETBTR0;T0启动运行
SETBTR1;T1启动运行
SETBET0;开通T0中断
SETBET1;开通T1中断
SETBIT0;外中断0下降沿触发
SETBEX0;开通外中断
SETBEA;开通总允许位
LCALLSTATUS;调系统初始状态设置子程序
LCALLRCS;调用读系统参数子程序
MAIN:
MOV0A6H,#1EH;前两句,第一次执行启动看门狗
MOV0A6H,#0E1H;以后再执行到时喂狗指令
LCALLDIS;调显子示程序
SJMPMAIN;主程序
读系统初始状态设置子程序时对系统初始运行需要的信息(如显示程序中的标志位等)进行设置。
3.3.3显示及闪烁程序设计
图3.14为显示程序分配的RAM资源
数码管显示控制的原理:
在显示程序中判断该数码管的亮灭标志决定是否跳过位开通指令,从而达到控制数码管亮和灭的控制,在定时器程序中判断该位的闪烁标志,决定是否对该数码管亮灭标志位的求反操作,实现数码管的闪烁控制。
以后只要对闪烁标志设置就可控制数码管的闪烁。
控制的方法是判断闪烁标志位,通过对显示缓冲区内容的改变(该位亮或灭信息),达到闪烁的效果。
(1)显示子程序
亮灭标志位:
0-亮,1-灭闪烁标准化:
0-不闪,1-闪烁
DIS:
显示子程序
MOVDPTR,#TAB;表格首地址送DPTR
MOVA,70H;显示缓冲区送A
MOVCA,@A+DPTR;查表求出字段码
MOVP0,A;字段码送段输出口
JB50H,MIEO;判亮灭标志,1转移
CLRP2.0;开通位,0不转移亮
MIEO:
LCALLDEL;调延时
SETBP2.0;关断位,第1个显示完
MOVA,71H;第2位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP0,A;字段码送段输出口
JB51H,MIE1;判亮灭标志,1转移
CLRP2.1,开通位,0不转移亮
MIE1:
LCALLDEL;调延时
SETBP2.1;关断位,第2个显示完
MOVDPTR,#TAB;表格首地址送DPTR
MOVA,72H;第3位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP0,A;字段码送段输出口
JB52H,MIE2;判亮灭标志,1转移
CLRP2.2;开通位,0不转移亮
MIE2:
LCALLDEL;调延时
SETBP2.2;关断位,第3个显示完
MOVA,73H;第4位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP3,A;字段码送段输出口
JB53H,MIE3;判亮灭标志,1转移
CLRP2.3;开通位,0不转移亮
MIE3:
LCALLDEL;调延时
SETBP2.3;关断位,第4个显示完
MOVA,74H;第5位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP4,A;字段码送段输出口
JB50H,MIE4;判亮灭标志,1转移
CLRP2.4;开通位,0不转移亮
MIE4:
LCALLDEL;调延时
SETBP2.4;关断位,第5个显示完
MOVA,75H;第6位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP5,A;字段码送段输出口
JB55H,MIE5;判亮灭标志,1转移
CLRP2.5;开通位,0不转移亮
MIE5:
LCALLDEL;调延时
SETBP2.5;关断位,第6个显示完
MOVA,76H;第7位数码管
MOVCA,@A+DPTR;查表求出字段码
MOVP6,A;字段码送段输出口
JB56H,MIE6;判亮灭标志,1转移
CLRP2.6;开通位,0不转移亮
MIE6:
LCALLDEL;调延时
SETBP2.6;关断位,第7个显示完
MOVA,77H;第8个数码管
MOVCA,@A+DPTR
MOVP7,A
JNB57H,MIE7
CLRP2.7
MIE7:
LCALLDEL
SETBP2.7
MOVP0,78H;送交通状态灯信息,不需查表
CLRP3.0
LCALLDEL
SETBP3.0
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H
DB0F8H,80H,90H
DEL:
MOVR7,#0;延时子程序
DJNZR7,$
RET
END
(2)定时器服务程序
INETIP;T1服务程序
MOVTH1,#0BH;从装初值
MOVTL1,#0DCH;125ms初值
JNB58H,SHAN0;判第1数码管闪烁标志,0转移
CPL50H;1不转移,亮灭标志取反
SHAN0:
JNB59H,SHAN1;判第2数码管闪烁标志,0转移
CPL51H
SHAN1:
JNB60H,SHAN2;判第3数码管闪烁标志,0转移
CPL52H
SHAN2:
JNB61H,SHAN3;判第4数码管闪烁标志,0转移
CPL53H
SHAN3:
JNB62H,SHAN4;判第5数码管闪烁标志,0转移
CPL54H
SHAN4:
JNB63H,SHAN4;判第6数码管闪烁标志,0转移
CPL55H
SHAN4:
JNB64H,SHAN5;判第7数码管闪烁标志,0转移
CPL56H
SHAN5:
JNB65H,SHAN6;判第8数码管闪烁标志,0转移
CPL57H
SHAN6:
JNB66H,SHAN7
CPL53H
RETI
其他功能程序如键盘操作只要对闪烁的标志位进行操作,就可控制相应的数码管闪烁,但要注意在有闪烁到不闪烁的控制中,应同时数码管亮灭的标志。
因为有可能时在闪烁过程中灭的阶段停止闪烁,亮灭的标志被置为灭的状态,数码管熄灭。
3.3.4交通控制时间处理程序
1)软件设计基础思想:
由定时器产生0.05s定时,软件计数得到秒信号,设30s计数器,30s计数器计满,绿灯灭、黄灯闪烁5次,黄灯灭、红灯亮;同时,另两路口红灯灭、绿灯亮。
2)定时器T0工作方式1,产生0.05s定时。
P0口及P2口的低4位输出控制信号。
30s计数器的地址为40H。
图3.15控制引脚与灯的对应关系
图3.16流程图
程序如下:
BRDEQUPA0
BYDEQUPA1
BLDEQUPA2
NRDEQUPB1
NYDEQUPB2
NLDEQUPB3
DRDEQUPA0
DYDEQUPA1
DLDEQUPA2
XRDEQUPA6
XYDEQUPA7
XLDEQUPB0
NHDBIT00H
DHDBIT00H
S30EQU40H
BUFEQU41H
初始化及主程序:
ORG0000H
LJMPMAIN
ORG000BH
LJMPTOVLOCK;0.05s中断服务程序
MAIN:
MOVSP,#30H;堆栈指针
CLRA;A=00H
MOVBUF,A;0.05s计数器清0
MOVS30,A;30s计数器清0
MOVTMOD,#01H;定时器T0工作在方式1
MOVTHO,#3CH;T0用于时钟定时,0.05s定时初值
MOVTL0,#0B0H
SETBEA;开中断
SETBET0
SETBTR0;启动定时
NOP
MOVP0,#0FFH;路口灯全灭
MOVP2,#0FFH
NOP
DEN_0:
CLRNLD;南绿灯亮
CLRBLD;北绿灯亮
CLRDRD;东红灯亮
CLRXRD;西红灯亮
CLRS30,#00H;30s计数器清0
DEN_1:
MOVA,S30
CJNZA,#30,DEN_1;不到30s等待
SETBNLD;南绿灯灭
SETBBLD;北绿灯
DEN_2:
CLRNYD;南黄灯亮
CLRBYD;北黄灯亮
ACALLDEL05S;调用0.5子程序
SETBNYD;南黄灯灭
SETBBYD;北黄灯灭
ACALLDEL05S;调用0.5子程序
DJNZR1,DEN_2
CLRNRD;南红灯亮
CLRBRD;北红灯亮
CLRDLD;东绿灯亮
CLRXLD;西绿灯亮
DEN_3:
MOVA,S30
CJNEA,#30,DEN_3;不到30s等待
SETBDLD;东绿灯灭
SETBXLD;西绿灯灭
DEN_4:
CLRDYD;东黄灯亮
CLRXYD;西黄灯亮
ACALLDEL05S;调用0.5子程序
SETBDYD;东黄灯灭
SETBXYD;西黄灯灭
ACALLDEL05S;调用0.5子程序
DJNZR1,DEN_4
LJMPDEN_0
T0中断服务程序
TOCLOCK:
MOVTH0,#3CH;重装初值
MOVTL0,#0B7H
PUSHPSW
PUSHACC
INCBUF;BUF+1
MOVA,BUF
CJNEA,#20,TCHU;累计20次为一秒
MOVBUF,#00H;一秒到,计数器清0
MOVA,S30;修改30s计数器
INCA
MOVS30,A
CJNEA,#31,TCHU;计数不到30返回
MOVS30,#00H;计数超30清0
TCHU:
POPACC
POPPSW
RETI
0.5S延时子程序
DEL05S:
MOV74H,#03H
LOOP0:
MOV73H,#0FFH
LOOP1:
MOV72H,#0FFH
LOOP2:
NOP
DJNZ72H,LOOP2
DJNZ73H,LOOP1
DJNA74H,LOOP0
RET
3.3.5键盘功能处理程序设计
键盘用外部中断来处理,首先判断那个键按下,然后按照总体方案中规划编写每个按键的功能程序,下面列出四个按键的功能描述和处理程序。
第一个键:
系统由运行状态进入修改参数状态,需做一下工作:
1)停止倒计时。
2)将某一个方向的红灯参数和绿灯参数调出来,送显示缓冲区。
3)第一个数码管闪烁,标志进入设置状态。
程序如下:
KEY1:
;第一个键功能
PUSHACC;保护现场
CLRTR0;关闭定时器,停止倒计时
LCALLRCS;调用读系统参数子程序
SETB54H;第一个闪烁,其余不闪烁
CLR55H
CLR56H
CLR57H
POPACC;恢复现场
RET1;中断返回
第二个键:
加1键。
按照表3.14分配的位标志和显示缓冲区单元,依次对四个数码管的闪烁标志位进行判断,对相应的显示缓冲区进行加1处理(0~9变化)。
程序结构如图3.17所示
KEY2:
PUSHACC;S2键功能程序
INC55H;加1
MOVR2,70H
CJNER2,#10,KEY1A;判断是否为10,否转返回
MOV55H,#0;清为0
RETI
图3.17加1键程序框图
第三个键:
移位键。
使数码管闪烁依次移位,和第二键配合修改四个数码管上的数据。
程序结构和第二个键一样,仅是处理内容不同,进行移位操作,框图略去。
在编程时应注意,移到下一位闪烁时应将前面数码管的亮灭标志清0,避免
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 技术 课程设计