电气自动化技术精品毕业论文--模拟交通灯设计内容摘要:

I/O 线, I/O 接口线浪费较大。 故只在按键数量不多时采用这种按键电路。 在此电路中,按键输入都采用低电平有效。 上拉电阻保证了按键断开时, I/O 接口线有确定的高电平。 当 I/O 接口内部有上拉电阻时,外电路可以不配置上拉电阻。 10 图 独立式键盘电路 七段 LED显示工作原理 LED 显示器是由发光二极管显示字段的 MCS51 单片机输出设备。 单片机应用系统常采用七段 LED 数码管作为显示器,这重显示器具有耗电低、配置灵 活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。 因此应用比较广泛。 LED 数码管显示器可以分为共阴极和共阳极两种结构。 (1)共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图 所示。 (2)共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图 所示。 a .共阴极 b .共阳极 图 七段 LED 显示器 ( 3) LED 动态显示接口: LED 动态显示就是利用单片机依次输出每一位数码管K1K2K3K4K5K6K7K8+5V89S51 11 的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。 对每位数码管来说,每隔一段时间点亮一次,如此循环。 利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。 在动态显示方式中,同一时刻,只有一位 LED 数码管在显示,其他各位是关闭的。 在段选码和位选码每送出一次后,应保持 1ms 左右,这个时间应根据实际情况而定。 不能太小,因而发光二极管从导 通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。 但也不能太大,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用 CPU 时间也越多。 采用动态显示方式比较节省 I/O 接口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时, CPU 要依次扫描,占用 CPU 较多的时间。 用 MCS51 单片机构建七段数码管动态显示系统时, 4 位数码管均采用共阴极LED, p0 接口作为段选码输出口, 8 路驱动采用 74LS244 总线驱动器作为字形驱动芯片,经过 8路驱动电路后接至数码管的各段,字形驱动输出 0时发 光。 P2 接口作为位选码输出口, 4 路驱动采用 74LS07( OC 门驱动器),当 C 接口线输出 1 时,选通相应位的数码管工作。 电路原理 电路的核心是 89S51 单片机,其内部带有 4KB 的 FlashROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的 128B 片内 RAM 已能满足要求,也不必扩展片外 RAM,系统配备 4位 LED 显示和 2个单接口键盘,采用 P0 接口外接 8 路反相三态缓冲器 74LS244 作 LED 动态扫描的段码控制驱动信号 ,用 P1 接口的 74LS07做为 4位 LED的位选信号驱动口, LED 共阴极端与 74LS07 的输出端相连;按键接口,由 , 来完成。 P3 口接交通指示灯,整个系统采用查表的方发,将交通灯的显示情况和数码管的计时情况,分别以代码的形式送到指示灯和 LED 数码管,启动定时器,同时调用显示程序,和查询按键。 利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环,当按下应急按键时停止定时器,送一个代码使两个方向都亮红灯,按下一个按键时启动定时器,恢复循环。 如图 所示 12 E A /V P31X119X218R E S E T9RD17WR16IN T 012IN T 113T014T115P 1 01P 1 12P 1 23P 1 34P 1 45P 1 56P 1 67P 1 78P 0 039P 0 138P 0 237P 0 336P 0 435P 0 534P 0 633P 0 732P 2 021P 2 122P 2 223P 2 324P 2 425P 2 526P 2 627P 2 728P S E N29A L E /P30T X D11R X D10VCC40GND20U18 9 S 5 11G1A121 Y 118A241 Y 216A361 Y 314A481 Y 412VCC20GND102G19B1112 Y 19B2132 Y 27B3152 Y 35B4172 Y 43U27 4 L S 2 4 4R1R E S 2R2R E S 2R3R E S 2R4R E S 2R5R E S 2R6R E S 2R7R E S 2R8R E S 2R9R E S 2R 1 0R E S 2R 1 1R E S 2R 1 2R E S 2R 1 3R E S 2R 1 4R E S 2R 1 5R E S 2R 1 6R E S 2R 1 7R E S 2R 1 9R E S 2R 2 0R E S 2S3 S W P BS1S W P BS2S W P BD1LEDD2LEDD3LEDD4LEDD5LEDD6LEDD7LEDD8LEDC1C A P1A11Y22A32Y43A53Y6GND74Y84A95Y105A116Y126A13V C C14U3LEDe1d2 3c4dp5b6a78f9g10abcdefgD 1 2LEDe1d2 3c4dp5b6a78f9g10abcdefgD 1 3LEDe1d2 3c4dp5b6a78f9g10abcdefgD 1 4LEDe1d2 3c4dp5b6a78f9g10abcdefgD 1 5LEDV C CV C CV C CV C C 图 电路原理图 13 4 软件设计 定时1 秒的方法 定时方法我们采用软硬件结合的方法,在主程序中设定一个初值为 20 的软件计数器使定时器 0 工作于方式 1 定时 50 毫秒,这样每当 T0 到 50 毫秒时 CPU 就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服务子程序中, CPU 先使软件计数器减 1,然后判断它是否为零。 为零表示 1秒已到。 定时器初值计算 定时器工作时必须给计数器送初值,将这个值送到 TH 和 TL 中。 他是以加法记数的,并能从全 1 到全 0 时自动产生溢出中断请求。 因此工作于方式 1,定时器为16 位计数器其定时时间由下式计算: 定时时间 =( 216- X)振荡周期 12(或) X=216-定时时间/振荡周期 12 式中 x 为 T0 的初始值,该值和计数器工作方式有关。 如单片机的主脉冲频率为12MHZ ,经过12分频 方式 0 定时时间= 213 1微秒= 毫秒 方式 1 定时时间= 216 1微秒= 毫秒 秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题,定时器需定时 50 毫秒,故T 0 工作于方式 1,定时 20次,就可定时一秒。 主程序模块 主程序初始化和按键控制,首先将时间、中断、次 数、和显示分别进行初始化,然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无条件跳转指令返回 , 再调用显示程序,如此周而复始的循环,如图 所示 14 保存表地址查时间表查灯状态表扫描按键调用显示启动T0显示初始化次数初始化中断初始化T0初始化开始 图 主程序流程图 主程序: 初值: X=216 -定时时间/振荡周期 12= 216 - 50ms/1us=15536=3CB0H,TH0=3CH , TL0=0B0H。 ORG 0000H。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。