利用51单片机设计的交通灯汇编原程序

发布者:快乐的成长最新更新时间:2017-12-26 来源: eefocus关键字:51单片机  交通灯 手机看文章 扫描二维码
随时随地手机看文章

用的是51系列的单片机
说一下,MARK标志位其关键作用,
需要的人自己想想,
  
下面是仿真图51单片机

 

LED0  EQU P1
 LED2  EQU P2
 LED1  EQU P0
 MARK  BIT 00H
 MARK1 BIT 01H
 TIME  EQU 30H;时间缓冲区
        SHI  EQU 31H ;时长数据缓冲区!
 KEY  EQU P3.2
 KEY1  EQU P3.3
 CTH EQU (65536-50000)/256
 CTL EQU (65536-50000) MOD 256 
 ORG 0000H
 JMP START
 ORG 0003H
 JMP INT_0
 ORG 000BH
 JMP TIME0
 ORG 0030H
START:  MOV P1,#00H
        MOV P0,#0FFH
 MOV P2,#0FFH
 MOV DPTR,#ABC
 MOV SP,#5FH
 MOV SHI,#20
 MOV R0,SHI
 MOV R7,#20
 CLR MARK
 CLR MARK1
 MOV TMOD,#01H 
        MOV TH0,#CTH;初始指针
 MOV TL0,#CTL
 SETB EA
 SETB IT0
 SETB EX0
 SETB ET0
 SETB TR0
 MOV TIME,R0
 CALL DISPLAY
MAIN: MOV LED0,#21H;北,红灯亮
        CJNE R0,#3,MAIN
 MOV SHI,#04
NEXT:  MOV R6,#3
A1:    MOV  LED0,#01H
 CALL DELAY_500MS
        MOV LED0,#21H
 CALL DELAY_500MS
 DJNZ R6,A1
S1: JBC MARK,A2
 SJMP S1  
A2: MOV LED0,#11H; BEI HUANG DENG LIANG 
 MOV SHI,#20
 JBC MARK,MAIN1
 SJMP A2
MAIN1:  MOV LED0,#0CH ;XI HONG DENG LIANG 
 CJNE R0,#3,MAIN1
 MOV SHI,#04
NEXT1:  MOV R6,#3
A3:    MOV LED0,#08H
        CALL DELAY_500MS
 MOV LED0,#0CH
 CALL DELAY_500MS
 DJNZ R6,A3
S2: JBC MARK,A4
 SJMP S2

    A4: MOV LED0,#0AH
 MOV SHI,#20
        JBC MARK,MAIN 
        SJMP A4
DELAY_500MS: 
        MOV R5,#20
K1: MOV R4,#50
K2: MOV R3,#250
 DJNZ R3,$
 DJNZ R4,K2
 DJNZ R5,K1
 RET
DISPLAY:MOV A,TIME
        MOV B,#10
 DIV AB
 MOVC A,@A+DPTR
 MOV LED2,A
        MOV A,B
 MOVC A,@A+DPTR
 MOV LED1,A
 RET
ABC:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H  
INT_0:  PUSH ACC
 PUSH PSW
 SETB RS1
 SETB RS0
 MOV R5,#70
K4: MOV R4,#250
      DJNZ R4,$
 DJNZ R5,K4 
 JB KEY,ITT_2
 MOV TIME,#20
 CALL DISPLAY
ITT_1:  MOV LED0,#00010010B
 CALL DELAY_500MS
 MOV LED0,#00H
 JNB KEY,ITT_2
 CALL DELAY_500MS
        JB KEY,ITT_1
ITT_2:  JNB KEY ,$
 POP PSW
 POP ACC
 RETI              
TIME0: PUSH ACC
      PUSH PSW
      MOV TH0,#CTH;初始指针
      MOV TL0,#CTL
      DJNZ R7,TIME1
      MOV R7,#20
      DJNZ R0,TIME2
      SETB MARK
      MOV R0,SHI
TIME2: MOV TIME,R0
      CALL DISPLAY
TIME1: POP PSW
      POP ACC
      RETI
      END


关键字:51单片机  交通灯 引用地址:利用51单片机设计的交通灯汇编原程序

上一篇:基于8051单片机的电机转速测量控制程序
下一篇:AT89S51单片机实验及系统板

推荐阅读最新更新时间:2024-03-16 15:50

51单片机-继电器
继电器控制方式: * 单片机I/O口控制端 * 继电器控制端 * 光耦控制端 * 在原理图中TX-3那部分,用单片机控制继电器把P35与JDQ连接在一起,如果B极是低电平,那么VCC的电流流过B,电流流过C极,通过继电器的线圈,指针从常闭端打到常开端。对应上边继电器左边绿色的那三个中间的是中间端,一个常开端,一个常闭端。平时中间端和常闭端是导通的,一控制继电器吸合,中间端和常开端导通。 NPN与PNP的区别 NPN和PNP主要就是电流方向和电压正负不同,说得 专业 一点,就是 极性 问题。 NPN 是用 B E 的电流(IB)控制 C E 的电流(IC),E极电位最低,且正常放大
[单片机]
<font color='red'>51单片机</font>-继电器
关于51单片机的定时器T0、T1总结
这是我总结的51单片机的中断定时器原理,之后会附上附件。第一次发帖,不足之处请多多包含! 我总结的文稿画面很花,所以给上个参考,各位不习惯的话,请酌情选择。 目录 一、原理: 1、对中断和定时器进行初始化: ①定时器/计数器工作方式寄存器 ②设定初值 ③开启中断和定时器 2、设置中断服务程序: 3、主函数: 二、各个定时器和工作方式: 方式0: 方式2: 方式3: 借鉴:郭天祥《新概念51单片机C语言教程》 一、原理: 51单片机,拥有两个定时器,用来中断计数,分别是T0和T1。而52单片机和51单片机的定时器是一样的,只是52比51多了一个定时器/计数器T2,它们的设置都大同小异,下面我来总结各个定时器的用法。 定时器
[单片机]
关于<font color='red'>51单片机</font>的定时器T0、T1总结
浅谈基于51单片机的反汇编要点
  从一个现有的单片机应用系统中读出目标代码进行反汇编,可以分析原程序的设计思想,然后加以改进和创新,这是单片机爱好者学习单片机、开发新产品的一个重要途径。但是,很多单片机爱好者在反汇编时常会失败,怎样才能正确进行反汇编呢?下面就以51单片机为例,谈谈反汇编的要点。   1.怎样正确获取程序的目标代码   要正确获取程序的目标代码,首先要明确程序代码的存放地点。51单片机的程序存储器最大空间为64KB,在一个实际的应用系统中,程序存储器的分布情况可能有以下几种:   (1)只使用了片内程序空间。而没有使用片外的程序空间。   其硬件特征为:/EA引脚接VCC;/PSEN引脚为空脚。   这种情况比较简单,全
[单片机]
浅谈基于<font color='red'>51单片机</font>的反汇编要点
51单片机-指向数组的指针
在串口章节和液晶屏章节的部分代码中总是看到“ *str!='' ”和“ *str++ ”却一时难以理解意思,本节我们将简要讲解这两部分代码的含义,但前提需要大家有对指针方面的知识基础,建议先了解《手把手教你学51单片机》文档12.1节知识内容先。 1.代码解析 我们先定义一个数组“u8 LEDSET ={0x7E,0xBD,0xDB,0xE7};” 假设这四个元素的内存排布如下,5,6,7,8代表的是指向元素的指针。 每个数组初始化之后都会在最后那个元素内存的下一个内存分配有一个结束符的数据,“‘’”的ASCII码值就是0。 接着我们先把下面代码下载进开发板中观察现象 #include reg52.h #
[单片机]
<font color='red'>51单片机</font>-指向数组的指针
51单片机+11.0592的晶振,如何产生115200的波特率?
今天解决了一个小问题(查书后才得到确切结论。。。)用51单片机+11.0592的晶振,如何产生115200的波特率? 本来感觉这个小意思,直接初始化定时器1,程序如下: void init_com( void ) { SCON = 0x50 ; //串口工作方式1,8位UART,波特率可变 TMOD |= 0x20 ; //定时器1,工作方式2,自动再装入8位定时器 PCON |= 0x80 ; //SMOD=1; 波特率加倍 TH1 = 0xfa ; //波特率:9600 晶振=11.0592MHz IE |= 0x90 ; //使能串口中断 TR1 = 1 ; // 定时器1开始 } 结果发现这样只能得到9600
[单片机]
51单片机编程实例讲解
通过前面的学习,我们已经掌握了相当一部份的单片机指令,大家对这些枯燥的单片机指令可能也有些厌烦了,下面让我们轻松一下,做个实验。 实验(注意本程序可以在C51单片机实验台上或在Keil C51仿真软件上运行,仿真软件可以在本站下载): ORG 0000H LJMP START ORG 30H START: MOV SP,#5FH MOV A,#80H LOOP: MOV P1,A RL A LCALL DELAY LJMP LOOP delay: mov r7,#255 d1: mov r6,#255 d2: nop nop nop nop djnz r6,d2 djnz r7,d1 r
[单片机]
51单片机uart通信协议
  51单片机   51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。   同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WINBO
[单片机]
<font color='red'>51单片机</font>uart通信协议
80C51单片机对压力测量控制系统的设计
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量
[单片机]
80C<font color='red'>51单片机</font>对压力测量控制系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved