花样流水灯的设计4(单片机-汇编)

发布者:EternalSunset最新更新时间:2015-07-08 来源: 51hei关键字:花样流水灯  单片机  汇编 手机看文章 扫描二维码
随时随地手机看文章
;This program will show you cycle glitter between 8 led lamps
;     maker:Chen Weiwu
;     date:2012-11-08
;     version:1.0.0
;-------------------------------------------------------------
;Define
Ledprt     equ          p0
SegDisplay   equ          p2
Button     equ        p1
ButtonState   equ        30h
;----------------------
;Set the initiation address which the program runing
;----------------------
        org        0
        ajmp       main
;-----------------------      
Cycle:
        mov        a,#low(Tables)
        add        a,r1
        mov        dpl,a
        clr        a
        addc       a,#high(Tables)
        mov        dph,a
        ;----------------------           Get Table's Address
        clr        a
        movc       a,@a+dptr
        mov        r1,a 
        mov        a,#1
        movc       a,@a+dptr
        mov        dpl,a
        mov        dph,r1         
        ;----------------------
        clr        a
        movc       a,@a+dptr           ;Get the count of data in table
        mov        r0,a
        inc        dptr
        ;----------------------
        mov        ButtonState,button    ;Save button
Loop:                    
        mov        a,button
        cjne       a,ButtonState,ExitCycle  ;Buttion is change
        clr        a
        movc       a,@a+dptr
        mov         Ledprt,a
        acall       delay
        inc        dptr
        djnz       r0,Loop
ExitCycle:
        ret
;-----------------------
;-----------------------
;delay sub
delay:     mov        r5,#50
delay1:     mov        r6,#100
DELAY2:     mov        r7,#10
        djnz       r7,$
        djnz       r6,delay2
        djnz       r5,delay1
        ret
;-----------------------
ButtonTable:
        ;--------ONE BUTTON--------
        db        11111110B
        DB        11111101B
        db        11111011B
        DB        11110111B
        ;--------TWO BUTTON--------
        DB        11111100B
        db        11111010B
        DB        11110110B
        DB        11111001B
        db        11110101B
        DB        11110011B
        ;-------THREE BUTTON-------
        DB        11111000B
        DB        11110100B
        DB        11110010B
        DB        11110001B
        ;-------FOUR BUTTON-------
        DB        11110000B
        DB        0
        
;-----------------------
Tables:     dw        Table1,Table2,Table3,Table4
        dw        Table5,Table6,Table7,Table8,Table9,Table10
        dw        Table11,Table12,Table13,Table14
        dw        Table15
        dw        0
;-----------------------
Table1:     db        Table2-$-1
        db        11101111b
        db        11011111b
        db        10111111b
        db        01111111b
        db        11111110b
        db        11111101b
        db        11111011b
        db        11110111b
        db        11111011b
        db        11111101b
        db        11111110b
        db        01111111b
        db        10111111b
        db        11011111b
        
Table2:     db        Table3-$-1
        db        01111110b
        db        10111101b
        db        11011011b
        db        11100111b
        db        11011011b
        db        10111101b
                
Table3:     db        Table4-$-1   
        db        01010101b
        db        00000000b
        db        10101010b
        db        00000000b 
                
Table4:     db        Table5-$-1
        db        11111110b
        db        11111100b
        db        11111000b
        db        11110000b
        db        11100000b
        db        11000000b
        db        10000000b
        db        00000000b         
        db        00000001b
        db        00000011b
        db        00001111b
        db        00011111b
        db        00111111b
        db        01111111b
        db        11111111b                      
Table5:     db        Table6-$-1   
        db        00000000b
        db        11111111b
Table6:     db        Table7-$-1   
        db        00001111b
        db        00011110b
        db        00111100b
        db        01111000b
        db        11110000b
        db        01111111b
        db        00111111b
        db        00011111b        
Table7:     db        Table8-$-1   
        db        00110110b
        db        01010110b
        db        01100110b
        db        01101010b
        db        01101100b
        db        01101010b
        db        01100110b
        db        01010110b 
Table8:     db        Table9-$-1
        db        01110111b
        db        10110111b
        db        11010111b
        db        11100111b
        db        11101011b
        db        11101101b
        db        11101110b
        db        11101101b
        db        11101011b
        db        11100111b
        db        11010111b
        db        10110111b
        
Table9:     db        Table10-$-1   
        db        11100111b
        db        11000011b
        db        10100101b
        db        01100110b      
Table10:    db        Table11-$-1   
        db        01111111b
        db        10111111b
        db        11011111b
        db        11101111b
        db        11110111b
        db        11111011b
        db        11111101b
        db        11111110b
        db        01111110b
        db        10111110b
        db        11011110b
        db        11101110b
        db        11110110b
        db        11111010b
        db        11111100b
        db        01111100b
        db        10111100b
        db        11011100b
        db        11101100b
        db        11110100b
        db        11111000b
        db        01111000b
        db        10111000b
        db        11011000b
        db        11101000b
        db        11110000b
        db        01110000b
        db        10110000b
        db        11010000b
        db        11100000b
        db        01100000b
        db        10100000b
        db        11000000b
        db        01000000b
        db        10000000b
        db        10000000b
        db        10000000b                
        db        01000000b
        db        11000000b
        db        10100000b
        db        01100000b
        db        11100000b
        db        11010000b
        db        10110000b
        db        01110000b
        db        11110000b
        db        11101000b
        db        11011000b
        db        10111000b
        db        01111000b
        db        11111000b
        db        11110100b
        db        11101100b
        db        11011100b
        db        10111100b
        db        01111100b
        db        11111100b
        db        11111010b
        db        11110110b
        db        11101110b
        db        11011110b
        db        10111110b
        db        01111110b
        db        11111110b
        db        11111101b
        db        11111011b
        db        11110111b
        db        11101111b
        db        11011111b
        db        10111111b
        db        01111111b
        db        11111111b
        db        11111111b
        db        11111111b 
        db        11111111b
        db        11111111b
        db        11111111b
        db        11111111b
        db        11111111b
        db        11111111b 
        db        11111111b
        db        11111111b
        db        11111111b                      
Table11:    db        Table12-$-1   
        db        11111110b
        db        01111111b
        db        11111101b
        db        10111111b
        db        11111011b
        db        11011111b
        db        11110111b
        db        11101111b
        db        11110111b
        db        11101111b        
        db        11111011b
        db        11011111b
        db        11111101b
        db        10111111b
Table12:    db        Table13-$-1   
        db        00111100b
        db        11111111b
        db        11100111b
        db        11111111b
        db        11011011b
        db        11011011b
        db        11011011b
        db        11011011b        
Table13:    db        Table14-$-1   
        db        01111110b
        db        11111111b
        db        10111101b
        db        11111111b
        db        10111101b
        db        11111111b
        db        11011011b
        db        11111111b
        db        11011011b
        db        11111111b
        db        11011011b
        db        11111111b
        db        11100111b
        db        11111111b
        db        11100111b
        db        11111111b
        db        11100111b
        db        11111111b
        db        11100111b
        db        11111111b
        db        00000000b
Table14:    db        Table15-$-1   
        db        11111110b
        db        11111100b
        db        11111010b
        db        11110100b
        db        11101100b
        db        11011010b
        db        10111010b 
        db        01110101b
        db        01110101b
        db        01101101b
        db        01101101b
        db        01011011b
        db        01011011b
        db        00111011b
        db        00111011b
        db        00110111b
        db        00110111b
        db        00110111b
        db        00110111b
        db        00101111b
        db        00101111b
        db        00101111b
        db        00101111b
        db        00011111b
        db        00011111b
        db        00011111b
        db        00011111b
        db        00011111b
        db        00011111b
        
Table15:    db        TableEnd-$-1   
        db        01111110b
        db        10111110b
        db        11011101b
        db        11101101b
        db        11110011b
        db        11101101b
        db        11011101b
        db        10111110b                
        
TableEnd:
;-----------------------
main: 
        mov        Ledprt,#11111111B         
        mov        r2,#0
        mov        SegDisplay,#00H      ;Initiate the SegDisplay
        MOV        DPTR,#ButtonTable
ToNext:
        inc        r2            ;Button Number
        CLR        A
        MOVC       A,@A+DPTR
        JZ        MAIN
        INC        DPTR
        cjne       a,button,ToNext      ;Check whether the button is enable or not
        mov        SegDisplay,r2       ;button is enable,Show on the SegDisplay
        mov        a,r2
        rl        a
        clr        c
        subb       a,#2           ;Location in the Tables
        mov        r1,a
        acall       Cycle    
        ajmp       Main
;-----------------------
        end
;-------------------------------------------------------------
关键字:花样流水灯  单片机  汇编 引用地址:花样流水灯的设计4(单片机-汇编)

上一篇:用STC15F104E单片机制作闪灯
下一篇:花样流水灯的设计2(单片机-汇编)

推荐阅读最新更新时间:2024-03-16 14:24

单片机之STM32 中的 assert_param 函数
我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。 4 断言机制函数assert_param 我们在分析库函数的时候,几乎每一个函数的原型有这个函数assert_param();下面以assert_param(IS_GPIO_ALL_PERIPH(GPIOx));为例说一下我的理解,函数的参数IS_GPIO_ALL_PERIPH(GPIOx),我们可以寻找到原型 #define IS_GPIO_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH))
[单片机]
<font color='red'>单片机</font>之STM32 中的 assert_param 函数
PIC单片机程序设计方法和的基本格式
为了快速掌握P IC 单片机 源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84?INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。   TITLE“This is……”;程序标题   ;程序说明   LIST P=16F84,F=1NHX8M   ;   include   -config_RC_Qsc &_WDT_0FF…   ;资源定义和变量定义   STATUS EQU 03   FSR
[单片机]
22.1184晶振的单片机
首先说说晶振与51单片机的机器周期得关系:晶振的倒数是一个时钟周期单位为秒,一个机器周期等于12乘时钟周期。 再说说指令周期与时钟周期得关系:对于8031等早期的51来说,指令周期和机器周期是一样的等于12乘时钟周期,但后来出现了很多改进型的51系列单片机如80320等,指令周期等于4个时钟周期,也就是说同样的晶振速度是原来的3倍。但无论如何变,T0、T1等定时器的计时任然按机器周期来计算的,也就是说12乘时钟周期。 定时器是按溢出产生中断的,所以要用溢出值65536减你所希望的值得到定时器的初值。 那么怎么计算赋值所决定的时间呢: 首先计算出机器周期:12*(1/22.1184/1000000)秒(应该是22.1184兆吧), 因
[单片机]
完整开发工具平台进一步简化MCU设计过程
微控制器及触摸技术解决方案的领导厂商爱特梅尔公司(Atmel® Corporation)宣布推出专为支持Atmel 微控制器(MCU)和最近付运的ARM® Cortex™-M4-based SAM4L系列而开发的完整硬件和软件平台集成开发工具平台(integrated development tools platform),进一步简化MCU设计过程。 现今的嵌入式硬件设计中,由于软件设计持续变得更加复杂,并且越来越多用于终端客户产品的差异化,因此为设计人员提供全部所需的工具和嵌入式软件的完整解决方案变得更重要。甚至,随着设计周期继续缩短,完全集成且无缝使用的完整工具平台变得更关鍵 —— 因為MCU供应商必须考虑芯片之外的内容。使
[单片机]
AD转换汇编程序实例
AD转换程序实例 ;此程序是一个简单的AD转换演示例程,作0-5V电压测试 ;转换结果从C口输出 非常直观 ;转换的值ADRESH在0V是0发光管全灭, 5V时全亮 ;============================================== include p16f73.inc ORG 0X00 NOP START BCF STATUS,RP0 CLRF PORTC MOVLW B'01000001'  ;D7 D6=01 AD转换时钟频率= FOSC/8 MOVWF ADCON0  ;D5 D4 D3=000 AD转换模拟通道选择RA0/AN0       ;
[单片机]
STM8单片机中断的主要功能解析
内部中断:一般是由硬件错误或者运算过程中出错引起的,一般是不可避免的; 外部中断:是处理器的外设发出的中断请求,如定时器中断,UART接收中断,外部中断一般都可以通过中断控制器进行屏蔽; 1.ITC功能概述: ……所有IO引脚都具有外部中断能力,每个端口都有独立的中断向量以及独立的标志;外设中断能力; ……软件中断能力(TRAP) ……具有灵活的优先级和中断等级管理,支持可嵌套和同级中断管理: ——多达4个软件可编程的嵌套等级;——最多有32个中断向量,其入口地址由硬件固定;——2个不可避免的中断:RESET,TRAP;——1个不可避免的最高优先级硬件中断TL1; 2.中断的主要功能 1. 实现高速CPU和低速外设之间速度
[单片机]
STM8<font color='red'>单片机</font>中断的主要功能解析
介绍单片机硬件抗干扰经验
单片机硬件抗干扰经验 在研制带器的电子产品时,如何提高抗干扰能力和电磁兼容性? 一、下面的系统要特别注意抗电磁干扰: 1、微控制器时钟频率特别高,总线周期特别快的系统。 2、系统含有大功率,大电流驱动电路,如产生火花的继电器,大电流开关等。 3、含微弱模拟信号电路以及高精度A/D变换电路的系统。 二、为系统的抗电磁干扰能力采取如下措施: 1、选用频率低的微控制器 选用外时钟频率低的微控制器可以有效降低噪声和提高系统的抗干扰能力。同样频率的方波和正弦波,方波中的高频成份比正弦波多得多。虽然方波的高频成份的波的幅度,比基波小,但频率越高越发射出成为噪声源,微控制器产生的最有影响的高频噪声大约是时钟频率的3倍。 2、减
[单片机]
STMCU应用过程中与电源相关的案例分享
我们在从事STM32单片机的应用开发及调试过程中,往往会碰到各类异常。其中有不少比例的问题跟电源有关。对于一个电子产品而言,电源部分很关键、很重要,但在实际开发调试中,我们偶尔会有意无意的忽视它。这里分享几个实际案例,以加强刺激,加深印象。 毕竟因为电源问题可能导致的异常很多很多,这里分享几个案例算是抛砖引玉,希望大家在调试中对电源方面加以重视。个人认为,往往电源出问题时导致的异常时并不太好分析。多数时候异常表现得更为诡异或没章法。 注:下面提到的案例中异常原因都与电源有关,但并不是说出现类似异常时一定是电源的原因。 下面主要分享五个基于STM32应用的案例。 案例1:STM32芯片的PLL无法正常工作。 有人使用STM3
[单片机]
STMCU应用过程中与电源相关的案例分享
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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