15路抢答器程序

发布者:玉米哥哥最新更新时间:2018-01-06 来源: eefocus关键字:15路  抢答器 手机看文章 扫描二维码
随时随地手机看文章

Beep    BIT    P2.3 

LED1    EQU    08H 
LED2    EQU    09H 
LED3    EQU    0AH 

LED4    EQU    0BH 
LedT0    EQU    0CH    ;0-3 轮流点亮4个数据管 

    ORG 0000H  
    LJMP START    ;转入主程序 

    ORG    000BH     
;=================================================         
;定时器0中断入口 
INT_TO: 
    PUSH    ACC 
    PUSH    PSW 

    CLR    TF0        ;清定时0中断标志 
    MOV    TH0,#0F6H    ;2.5MS 
    MOV    TL0,#03DH    ; 

    MOV    A,#11110000B    ;关数码管 
    ORL    P2,A 

    MOV    A,LedT0 
    CJNE    A,#0,INT_T0_1 
    MOV    A,LED1 
    MOVC    A,@A+DPTR 
    MOV    P0,A 
    CLR    P2.7     
    MOV    LedT0,#1 
    LJMP    INT_T0_END 
 INT_T0_1: 
       
    MOV    A,LedT0 
    CJNE    A,#1,INT_T0_2 
    MOV    A,LED2 
    MOVC    A,@A+DPTR 
    MOV    P0,A 
    CLR    P2.6     
    MOV    LedT0,#2 
    LJMP    INT_T0_END 
 INT_T0_2: 
       
     MOV    A,LedT0 
    CJNE    A,#2,INT_T0_3 
    MOV    A,LED3 
    MOVC    A,@A+DPTR 
    MOV    P0,A 
    CLR    P2.5     
    MOV    LedT0,#3 
    LJMP    INT_T0_END 
 INT_T0_3: 
       
    MOV    A,LED4 
    MOVC    A,@A+DPTR 
    MOV    P0,A 
    CLR    P2.4     
    MOV    LedT0,#0 
    LJMP    INT_T0_END 
       
 INT_T0_END: 

    POP    PSW     
    POP    ACC 

RETI 

;============================================= 

START: 
    MOV    SP,#60H 
     

    MOV    TMOD,#01H    ;设定T0为十六位定时模式。 
    MOV    TH0,#0F6H    ;2.5MS 
    MOV    TL0,#03DH    ; 
    SETB    TR0        ;开定时器0 
    SETB    ET0        ;致能定时0中断 
    CLR    TF0        ;清定时0中断标志 
    SETB    EA        ;开总中断 

    MOV    LedT0,#00H 
    MOV    DPTR,#TABLE 

    MOV    LED1,#10H 
    MOV    LED2,#10H 
    MOV    LED3,#10H 
    MOV    LED4,#10H 
;============================================= 
SCAN:     
    ;按键扫描 
    JNB    P3.2,KEY_SW1 
    JNB    P3.3,KEY_SW2 
    JNB    P3.4,KEY_SW3 
    JNB    P3.5,KEY_SW4 
    LJMP    SCAN 
;============================================= 
KEY_SW1: 
    LCALL    DELAY_10MS    ;去抖动 
    JB    P3.2,SCAN 

    MOV    LED3,#0H 
    MOV    LED4,#01 
    CLR    P1.0        ;点亮LED 
    CLR    Beep 
    CALL    DELAY_100MS 
    SETB    Beep 
    CALL    DELAY_2S 
     
    MOV    LED3,#10H 
    MOV    LED4,#10H 
    SETB    P1.0 
    JMP    SCAN 
;============================================= 
KEY_SW2: 
    LCALL    DELAY_10MS    ;去抖动 
    JB    P3.3,SCAN 

    MOV    LED3,#0H 
    MOV    LED4,#02 
    CLR    P1.1        ;点亮LED 
    CLR    Beep 
    CALL    DELAY_100MS 
    SETB    Beep 
    CALL    DELAY_2S 
     
    MOV    LED3,#10H 
    MOV    LED4,#10H 
    SETB    P1.1 
    JMP    SCAN 
;============================================= 
KEY_SW3: 
    LCALL    DELAY_10MS    ;去抖动 
    JB    P3.4,SCAN 

    MOV    LED3,#0H 
    MOV    LED4,#03 
    CLR    P1.2        ;点亮LED 
    CLR    Beep 
    CALL    DELAY_100MS 
    SETB    Beep 
    CALL    DELAY_2S 
     
    MOV    LED3,#10H 
    MOV    LED4,#10H 
    SETB    P1.2 
    JMP    SCAN     
;============================================= 
KEY_SW4: 
    LCALL    DELAY_10MS    ;去抖动 
    JB    P3.5,SCAN 

    MOV    LED3,#0H 
    MOV    LED4,#04 
    CLR    P1.3    ;点亮LED 
    CLR    Beep 
    CALL    DELAY_100MS 
    SETB    Beep 
    CALL    DELAY_2S 
     
    MOV    LED3,#10H 
    MOV    LED4,#10H 
    SETB    P1.3 
    JMP    SCAN 

;============================================= 
DELAY_2S: 
    MOV    R3,#200 
    JMP    DELAY10MS 
DELAY_100MS: 
    MOV    R3,#10 
    JMP    DELAY10MS 
DELAY_10MS:  
    MOV    R3,#1 
;============================= 
DELAY10MS: 
    MOV    R4,#20 
DELAY10MSA: 
    MOV    R5,#247 
    DJNZ    R5,$ 
    DJNZ    R4,DELAY10MSA 
    DJNZ    R3,DELAY10MS 
RET 
;============================================= 
TABLE: 
    DB    00101000B    ;0 
    DB    11101011B    ;1 
    DB    00110010B    ;2 
    DB    10100010B    ;3 
    DB    11100001B    ;4 
    DB    10100100B    ;5 
    DB    00100100B    ;6 
    DB    11101010B    ;7 
    DB    00100000B    ;8 
    DB    10100000B    ;9 
    DB    01100000B    ;A 
    DB    00100101B    ;b 
    DB    00111100B    ;C 
    DB    00100011B    ;d 
    DB    00110100B    ;E 
    DB    01110100B    ;F 
    DB    11110111B    ;- 
    DB    11111111B    ; 
END


关键字:15路  抢答器 引用地址:15路抢答器程序

上一篇:多机红外通信发送端程序
下一篇:TLC0831转换示例程序

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

基于可编程逻辑控制器和触摸屏的抢答器设计
引 言   本文提出了一种新的控制方法--用触摸屏和PLc(可编程逻辑控制器)实现抢答器的控制。与一般的控制方法相比,运行更加可靠,操作更加直观,更适合于高档的场合。   本文以三菱F940GOT-LwD-c型触摸屏和三菱FXOS_30MR型PLc控制4路抢答器为例,介绍具体的实现方法。    l触摸屏   20世纪90年代初出现了一种新的人机交互技术--触摸屏技术,触摸屏便是这种技术的具体体现。触摸屏是一种最直观的计算机的输入设备,使用者只要触摸屏幕上的图形对象,计算机便会执行相应的操作,这样就摆脱了键盘和鼠标操作,大大提高了计算机的可操作性。 触摸屏的基本原理是:用户用手指或其他物体触摸触摸屏时,所触摸的位置(以坐标
[工业控制]
基于可编程逻辑控制器和触摸屏的<font color='red'>抢答器</font>设计
STC15单片机6专用PWM
(1)STC例程分析 /* STC15Fxx 系列 输出任意周期和任意占空比的PWM实例*/ #define CYCLE 0x1000L //定义PWM周期(最大值为32767) #define DUTY 10L //定义占空比为10% void pwm() { P0M0 = 0x00; //因PWM模块相关IO口初始状态为高阻,需要将IO口设置为准双向或推挽输出才能正常输出波形; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P4
[单片机]
MIC29150双输出的稳压器电路 (输出1.2V,5V)
MIC29152双路输出的稳压器电路 (输出1.2V,5V) 由RS104L、MIC29150-12,MIC29150-5.0等组成。
[电源管理]
MIC29<font color='red'>15</font>0双<font color='red'>路</font>输出的稳压器电路 (输出1.2V,5V)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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