• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 研讨交流 > 正文

    交通信号灯模拟控制器x

    时间:2020-09-21 16:33:45 来源:勤学考试网 本文已影响 勤学考试网手机站

    昆明冶金高等专科学校教学教案

    课题:

    编程实例 2

    教学时数: 2 学时

    教学目的:

    1、通过交通灯控制的编程掌握单片机的编程方法

    2、学习中断服务程序的编写方法。

    重点、难点:

    中断服务程序的编写。

    主要教学内容(提纲):

    一、课题内容

    二、编程指导

    三、参考程序

    教学方法、手段:

    课堂讲授,学生练习

    课内外练习

    将所编程序在实验仪验证 .

    课后小结

    1 / 7

    讲 授 要 点

    一、课题内容

    编写一程序实现城市 “十字” 路口正常情况下以及特殊情况和紧急情况下交通信号灯的模拟控制。

    1、在十字路口东西南北各设置红、 黄、绿三种信号灯, 如图 1所示。正常情况下, 东西、

    南北方向轮流放行。当东西方向 (A 线 ) 放行、南北方向 (B 线) 禁行时,东西方向 (A 线 ) 绿灯

    亮25秒,然后黄灯亮 5秒,南北方向 (B 线 ) 红灯亮 30秒;当南北方向 (B 线 ) 放行、东西方向 (A

    ) 禁行时,南北方向 (B 线 ) 绿灯亮 25秒,然后黄灯亮 5秒,东西方向 (A 线 ) 红灯亮 30秒。如此循环,实现交通灯定时控制。

    2、有急救车优先通过功能。当有急救车到达时,路口的信号灯全部变红灯,以便急救车通过,急救车的通行时间为 10秒,急救车过后,交通灯恢复先前状态。

    3、交通灯在红、绿灯交替点亮中,用两个数码管显示点亮的灯还能持续的时间。

    西 东

    图 1 交通灯布置示意图

    二、编程指导

    1、电路图

    2 / 7

    交通灯控制电路的核心元件采用单片机芯片

    AT89C51 ,其内部带有 4KB 的 ROM ,无须

    扩展存储器。

    信号灯的控制由单片机的

    P1.0~P1.5控制, 6只信号灯以共阴极方式连接,当

    P1口输出

    为高电平时,信号灯点亮,为实现上述控制要求,

    P1口共输出四种控制码,如表

    1所示。

    表 1:交通灯信号控制码

    B 道

    B 道

    B 道

    A 道

    A 道

    A 道

    绿灯

    黄灯

    红灯

    绿灯

    黄灯

    红灯

    控制码

    P1.7

    P1.6

    P1.5

    P1.4

    P1.3

    P1.2

    P1.1

    P1.0

    状态说明

    A 道放行、 B 道

    0

    0

    0

    0

    1

    1

    0

    0

    0CH

    禁止

    A 道警告、 B 道

    0

    0

    0

    0

    1

    0

    1

    0

    0AH

    禁止

    A 道禁止、 B 道

    0

    0

    1

    0

    0

    0

    0

    1

    21H

    放行

    A 道禁止、 B 道

    0

    0

    0

    1

    0

    0

    0

    1

    11H

    警告

    2、控制程序

    1) 流程图

    软件包括主程序、延时、显示子程序、中断服务程序,各程序流程图如图2所示。

    3 / 7

    开始

    开始

    初始化

    显示秒数减1

    显示初始值设置

    秒数转十进制

    A道放行, B道禁行

    拆分秒数

    延时

    秒个位数转字形码

    显示

    R1 个位数

    A道警告, B道禁行

    秒十位数转字形码

    延时5S

    R2 十位数

    A道禁行, B道放行

    设置显示次数

    置显示初始值

    显示十位数

    延时

    延时1ms

    显示

    显示个位数

    A道禁行, B道警告

    延时1ms

    延时

    N

    显示次数 =0?

    Y

    显示

    返回

    主程序流程图 显示子程序流程图

    图 2 程序流程图

    三、参考程序

    主程序:

    ORG 2000H

    MAIN: MOV DPTR,#7F00H

    MOV A, #0BH ;PA、 PC口均为输出

    MOVX @DPTR,A

    MAIN: SETB EA ;开中断

    SETB EX0

    

    中断响应

    保护现场

    A道放行, B道禁行

    延时10s

    恢复现场

    返回

    紧急情况

    中断服务程序

    4 / 7

    MOV 50H, #1FH

    ;设置时间显示初值

    MOV P1, #0CH

    ;A 道放行, B 道禁行

    MOV R7, #19H

    ;延时秒数

    MAIN1:

    LCALL DISP

    ;调 1 秒延时、及显示子程序

    DJNZ R7, MAIN1

    MOV P1, #0AH

    ;A 道警告, B 道禁行

    MOV R7, #05H

    ;延时秒数

    MAIN2:

    LCALL DISP

    DJNZ R7, MAIN2

    MOV 50H, #1FH

    ;设置时间显示初值

    MOV P1, #21H

    ;A 道禁行, B 道放行

    MOV R7, #19H

    ;延时秒数

    MAIN3:

    LCALL DISP

    DJNZ R7, MAIN3

    MOV P1, #11H

    ;A 道禁行, B 道警告

    MOV R7, #05H

    ;延时秒数

    MAIN4:

    LCALL DISP

    DJNZ R7, MAIN4

    AJMP MAIN

    ;循环

    延时、显示子程序:

    ORG 2000H

    DISP : MOV R6, #01H ;设置显示位寄存器初值(右边一位

    MOV TMOD,#01H ;定时器 T0 设置为定时方式的模式 1

    MOV R5, #0AH

    ;定时器操作循环

    10 次

    DEL1:

    MOV TH0, #3CH

    ;定时器 100ms计数器的初始值

    MOV TL0, #B0H

    SETB TR0

    ;启动定时器

    DEL2:

    DEC 50H

    ;显示秒数减 1

    MOV A, 50H

    5 / 7

    MOV B, #0AH

    DIV B

    ;拆分秒数

    ADD A, #2BH

    MOVC A, @A+PC

    ;查表个位数的字形码

    MOV R1, A

    ;个位数字形码送

    R1

    MOV A, B

    ADD A, #25H

    MOVC A, @A+PC

    ;查表十位数的字形码

    MOV R2, A

    ;十位数字形码送

    R2

    MOV A, R6

    ;位控码

    MOV DRTP, #7F03H

    MOVX @DPTR,A

    MOV A, R1

    ;送个位数显示

    MOV DPTR, #7F01H

    MOVX @DPTR,A

    LCALL DELAY

    ;延时 1ms

    MOV A, R6

    RL A

    ;位控左移

    MOV R6, A

    MOV DPTR, #7F03H

    MOVX @DPTR,A

    MOV A, R2

    ;送十位数显示

    MOV DPTR, #7F01H

    MOVX @DPTR,A

    LCALL DELAY

    ;延时 1ms

    JNB TF0, $

    ;检测 100ms 定时是否到

    CLR TF0

    DJNZ R5, DEL1

    ; 100ms循环控制

    RET

    ;返回

    TABLE:

    DBC0H,F9H,A4H, B0H,

    99H

    DB92H,82H,F8H, 80H,

    90H

    DELAY:

    MOV R7, #02H

    ;延时 1ms 子程序

    6 / 7

    DEL3: MOV R6, #0F9H

    DEL4 : DJNZ R6, DEL2

    DJNZ R7, DEL1

    RET

    END

    中断服务程序:

    ORG 0003H ;外部中断 0 入口地址

    LJMP INTER0

    ORG 2100H

    INTER0:

    PUSH 50H

    ;保护现场

    PUSH P1

    MOV P1, #00H

    ;两车道禁止

    MOV R7, #0AH

    ;延时 10 秒

    INT0 :

    LCALL DISP

    ;调显示

    DJNZ R7, INT0

    POP P1

    ;恢复现场

    POP 50H

    RETI

    ;中断返回

    7 / 7

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问