当前位置:文档之家› 自动路灯控制器的设计

自动路灯控制器的设计

合肥学院计算机科学与技术系微机原理与接口技术课程设计课程设计科目自动路灯控制器的设计学生姓名陈超学号1304012026班级 13计科2班指导教师高玲玲、何立新时间2016.1.101、题意分析与解决方案1.1 题意需求分析自动路灯控制器的设计,先在LED数码管上显示时钟初值,包含有“时”、“分”、“秒”(例如07小时59分59秒),时钟按每秒运转动态显示。

当当前显示时间与实际时间不一致时,应具有校时功能,即可以通过矩阵键盘对时钟数值进行设置、修改。

而且可以按设计的时间使LED灯亮和灭。

当前数码管显示时间与所设定的亮灯和灭灯时间相等时,可以使LED灯亮和灭。

所以在本课程设计中,应需要解决的问题有:(1)如何驱动LED数码管,将时钟该数值显示在数码管上;(2)如何实现对矩阵键盘的扫描,获取按键值来对不正确的时钟数值的时、分、秒进行修改;如何实现当当前数码管显示时间与所设定的亮灯和灭灯时间,驱动LED灯,持续亮灯,亮灯后,继续走时。

1.2 解决问题方法及思路1.2.1硬件部分本实验中我们要用到的硬件主要是8253、8259、8279、8255、矩阵键盘、LED七段数码管、LED灯。

设计一个时钟,包含有时、分、秒,驱动LED七段数码显示时间。

对于设定的时钟初值如何显示在数码管上,可以利用8279接口芯片来驱动数码管。

8279模块的B 端、C端分别接到数码管的段选和位选。

实现时钟走时,可利用8253定时器/计数器来实现时钟按每秒走时。

将8253芯片的OUT0端接到8259的IR0端口,通过8253的电平输出来触发中断,实现每过1s,秒值加1,并更新数码管的显示。

对于时钟数值与要求时钟不一致时,利用矩阵键盘来触发时钟的修改功能。

矩阵键盘的分配如下:0—9键为数字功能键,相应键值代表所要修改的数值,E 键为时钟修改取消键,F键为时钟修改确认键。

按下时钟修改确认键后,进入修改,从时的十位开始到秒的个位逐位修改。

按照亮灯和灭灯时间,驱动LED灯,并用8255来驱动。

8255有A口、B口、C口,用C口的PC口与LED灯连接,若当前时间与设定时间相等时,则将PC1置成低电平,此时LED灯亮。

若不相等,则置PC1为高电平。

1.2.2软件部分设定时钟初值,将设定的初值存储在缓冲区中,然后按照LED数码管的显示特性和字模表,通过8279模块的B端、C端先送段选,后送位选,以驱动数码管,实现将时钟数值显示在数码管上。

为了简便8253的操作,可以利用8253的定时器/计数器0来定时0.5s,然后定义标志量对0.5的计时个数进行判断,从而达到时钟以1s为单位进行走时,时钟的动态显示。

8253触发8259的中断时,在中断程序中判断秒值是否等于60,若不相等,则继续计时;若相等,则将秒值置0,分值加1,接着判断分值是否等于60,若不等于,则继续走时;若等于,则分值置0,时值加1,最后对时值进行判断。

若时值等于24,则时值置0;若不等于24小时,则继续走时。

8279模块通过A端、D端获取矩阵键盘的状况,对矩阵键盘的按键的状态判断,来确定是否修改时钟。

当按下的键值为F键值时,则进行时钟修改程序。

接着获取相应的数值键,来修改时间。

LED灯亮灭功能中,比较当前钟值与设定的灯亮时间值是否一样,当一样时,对8255的C口的PC口通过控制字使得与其相连的LED灯亮,比较当前钟值与设定的灯灭时间值是否一样,则将PC口的值置高电平,使LED灯灭。

2、硬件设计2.1选择芯片82532.1.1芯片8253在本设计中的作用8253定时器/计数器芯片为本实验提供计时功能,对8253完成控制字的设置、定时初值的写入等初始化后,可以实现定时0.5s,然后利用对0.5s的计数标志量的判断,比较其是否为2,来实现1s为单位的走时效果。

2.1.2 8253的功能分析8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,主要由数据总线缓冲器、读/写逻辑、控制字寄存器及3个计数器组成。

8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。

每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。

每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。

每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。

输出锁存器的值是通过程序设置的。

输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。

8253芯片有6种工作方式:①方式0:计数结束中断;②方式1:可编程触发器;③方式2:频率发生器;④方式3:方波发生器;⑤方式4:软件触发选通信号;⑥方式5:硬件触发选通信号。

本实验中,采用的是8253的定时/计数器0,工作在方式2,在计数结束后输出上升沿触发中断。

2.1.3 8253的技术参数图2-1 8253芯片引脚图D7-D0:双向三态数据线CLK0-CLK2:计数输入,用于输入定时基准脉冲或计数脉冲GATE0-GATE2:门控输入,用于启动或禁止计数器的操作,以使计数器和计测对象同步。

低电平禁止工作,为高电平或GATE上升沿出发后,允许计数器工作OUT0-OUT2:输出信号,以相应的电平指示计数的完成,或输出脉冲波形A1、A0:片内地址寄存器地址输入信号,用于寻找3个计数器和控制字寄存器#RD、#WR、#CS:分别为读、写和片选信号,均为低电平有效表2-1 控制功能表#CS #RD #WR A1 A0 寄存器选择及其操作0 1 0 0 0 计数器0置计数初值0 1 0 0 1 计数器1置计数初值0 1 0 1 0 计数器2置计数初值0 1 0 1 1 置控制字0 0 1 0 0 计数器0读出计数值0 0 1 0 1 计数器1读出计数值0 0 1 1 0 计数器2读出计数值0 0 1 1 1 无操作(D7-D0三态)1 X X X X 禁止(D7-D0三态)0 1 1 X X 无操作(D7-D0三态)2.2选择芯片82552.2.1 芯片8255在本设计中的作用本实验中利用8255芯片的A通道来控制LED灯。

2.2.2 8255的功能分析8255A采用40脚双列直插式封装单一+5V电源,全部输入/输出均与TTL电平兼容,为可编程通用并行接口芯片。

它有24条可编程的I/O引脚,与Intel 系列微处理器完全兼容,直接的位清0或置1功能,简化了接口控制。

8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。

三个端口都可以作为输入端口或输出端口。

8255有三种工作方式。

方式0:基本输入输出,端口与外设之间无联络信号,只能使用无条件传送方式输入输出数据;方式1:是选通输入输出方式,PC口用作联络信号;方式2:双向数据传送方式,仅A口有此功能。

A口有三种工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。

8255A的工作只有当片选CS效时才能进行。

8255A在本设计中起并行传输接口作用,将C口作为输出端口,对PC口进行操作,通过C口向LED灯传输数据,来驱动LED灯工作。

2.2.3 8255的技术参数PA7~PA0:A口数据信号线。

PB7~PB0:B口数据信号线。

PC7~PC0:C口数据信号线。

RESET:复位信号。

当此信号来时,所有寄存器都被清除。

同时三个数据端口被自动置为输入端口。

D7~D0:它们是8255A的数据线和系统总线相连。

CS:片选信号。

在系统中,一般根据全部接口芯片来分配,若低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,8255A 被选中。

只有当其有效时,读信号写才对8255A进行读写。

RD:读信号。

当此信号有效时,CPU可从8255A中读取数据。

WR:写信号。

当此信号有效时,CPU可向8255A中写入数据。

A1、A0:端口选择信号。

8255A内部有3个数据端口和1个控制端口,共4个端口。

规定:A1、A0为00时,选中A端口;A1、A0为01时,选中B端口;A1、A0为10时,选中C端口;A1、A0为11时,选中控制口。

输入最低电压:min=-0.5V,max=0.8 V输入最高电压:2.0 V输出最低电压:0.45 V输出最高电压:2.4 V表2-2 8255A的技术参数参数名称符号测试条件最大规范值最小规范值输入低电平电压VIL 0.8V -0.5V输入高电平电压VIH Vcc 2.0VVOL IOL=2.5MA 0.45V输入低电平电压(数据总线)VOL IOL=1.7MA 0.45V输入低电平电压(外部端口)输入高电平电压VOH IOH=-400MA 2.4V(数据总线)VOH IOH=-200MA 2.4V输入高电平电压(外部端口)-0.4MA 1.0MA达林顿驱动电流IDAR REXT=750VEXT=1.5V电源电流ICC 120MA输入负载电流IIL I=Vcc—0V +10MA -10MA输出浮动电流IOFL Vout=Vcc--0 +10MA -10MA 8255A主要参数分析:8255A的达林顿驱动电流最大为4.0 mA, 当电流超过达林顿驱动电流是芯片就有可能会被损坏,而LED的驱动电流要比它高的多发光,在保证8255A芯片安全的同时又能让LED管显示就会需要外加器件。

2.3选择芯片82592.3.1 芯片8259在本设计中的作用本实验中利用8259芯片来实现LED灯的亮灭。

2.3.2 8259的功能分析8259A有4个初始化命令字ICW1~ICW4,它们按照一定的顺序送入,用于设置8259A的初始状态。

无论何时,当微处理器向8259A发送一条A0=0和D4=1的命令时,这条命令就译码为ICW1。

A0=0和D4=1是ICW1的标识位! 利用A0=0,D4=1对ICW1寻址。

[1](1)ICW1:规定8259的连接方式(单片或级联)与中断源请求信号的有效形式(边沿或电平触发)。

命令字格式ICW1图2-2 ICW1命令字如图所示,利用A0=0,D4=1寻址。

注意:D7、D6、D5、 D2在8086/8088系统中不用,可为1,也可为0。

它们在8080/8085系统中使用。

(2) ICW2(中断类型码字)ICW2是设置中断类型码的初始化命令字。

编程时用ICW2设置中断类型码高5位T7~T3,低3位自动插入IR的编码。

ICW2图2-3 ICW2命令字例如:写入ICW2的内容为40H,则IR0~IR7对应的8个中断类型号依此为:40H、41H、….47H,8个中断类型号一定是连号!ICW2决定了某位中断请求输入线所对应的向量类型码,可以使CPU自动得到相应的中断请求的中断类型号。

相关主题