虫虫首页|资源下载|资源专辑|精品软件
登录|注册

0FFH

  • 51程序库 (各种常用程序)

    ;片内RAM初始化子程序 IBCLR    :MOV    A,R0          MOV    R1,A          CLR    AIBC1     :MOV    @R1,A          INC    R1          DJNZ   R7,IBC1          RET ;片外RAM初始化子程序 EBCLR1   :MOV    A,ADDPL          MOV    DPL,A          MOV    A,ADDPH          MOV    DPH,A          CLR    CEBC11    :MOVX   @DPTR,A          INC    DPTR          DJNZ   R7,EBC11          RET ;片外RAM初始化子程序(双字节个单元) EBCLR2   :MOV    A,ADDPL          MOV    DPL,A          MOV    A,ADDPH          MOV    DPH,A          MOV    A,R7          JZ     EBC21          INC    R6EBC21    :CLR    A          MOVX   @DPTR,A          INC    DPTR          DJNZ   R7,EBC21          DJNZ   R6,EBC21          RET ;内部RAM数据复制程序;入口    :R0,R7;占用资源:A;堆栈需求:2字节;出口    :R1 IBMOV    :MOV    A,R0          ADD    A,R7          MOV    R0,A          MOV    A,R1          ADD    A,R7          MOV    R1,AIBM1     :DEC    R0          DEC    R1          MOV    A,@R0          MOV    @R1,A          DJNZ   R7,IBM1          RET ;外部RAM数据复制程序;入口    :ADDPH,ADDPL,R7;占用资源:ACC;堆栈需求:2字节;出口    :R0,R1 EBMOV1   :MOV    A,ADDPL          ADD    A,R7          MOV    DPL,A          CLR    A          ADDC   A,ADDPH          MOV    DPH,A          MOV    A,R7          ADD    A,R1          XCH    A,R0          ADDC   A,#00H          MOV    P2,AEBM11    :DEC    R0          CJNE   R0,#0FFH,EBM12          DEC    P2EBM12    :DEC    DPL          MOV    A,DPL          CJNE   A,#0FFH,EBM13          DEC    DPHEBM13    :MOVX   A,@R0          MOVX   @DPTR,A          DJNZ   R7,EBM11          RET ;外部RAM数据复制程序

    标签: 程序库 常用程序

    上传时间: 2013-10-29

    上传用户:bs2005

  • 4位八段数码管的十进制加计数仿真实验(含电路图和仿真文件)

    4位八段数码管的十进制加计数仿真实验,程序采用汇编语言编写。此程序在仿真软件上与EDN-51实验板上均通过。仿真图中的数码管位驱动采用74HC04,如按EDN-51板上用想同的PNP三极管驱动在仿真软件上则无法正常显示。程序共分5块,STAR0为数据初始化,STAR2为计数子程序,STAR3为4位数码管动态显示子程序,STAR4为按键扫描子程序,STS00是延时子程序。由于EDN-51实验板上没装BCD译码器,所以编写程序比较烦琐。 程序如下: ORG 0000H                LJMP STAR0                        ;转程序 SRAR0ORG 0200H                                          ;程序地址 0200HSTAR0:   CLR 00                                  ;位 00 清 0               MOV P1,#0FFH                    ;#0FFH-->P1               MOV P2,#0FH                      ;#0FH-->P2               MOV P0,#0FFH                    ;#0FFH-->P0               MOV 30H,#00H                    ;#00H-->30H               MOV 31H,#00H                    ;#00H-->30H               MOV 32H,#00H                    ;#00H-->30H               MOV 33H,#00H                    ;#00H-->30H               LJMP STAR3                        ;转程序 SRAR3STAR2:   MOV A,#0AH                       ;#0AH-->A               INC 30H                                ;30H+1               CJNE A,30H,STJE                 ;30H 与 A 比较,不等转移 STJE               MOV 30H,#00H                    ;#00H-->30H               INC 31H                                ;31H+1               CJNE A,31H,STJE                 ;31H 与 A 比较,不等转移 STJE               MOV 31H,#00H                    ;#00H-->31H               INC 32H                                ;32H+1               CJNE A,32H,STJE                 ;32H 与 A 比较,不等转移 STJE               MOV 32H,#00H                    ;#00H-->32H               INC 33H                                ;33H+1               CJNE A,33H,STJE                 ;33H 与 A 比较,不等转移 STJE               MOV 33H,#00H                    ;#00H-->33H               MOV 32H,#00H                    ;#00H-->32H               MOV 31H,#00H                    ;#00H-->31H               MOV 30H,#00H                    ;#00H-->30HSTJE:      RET                                        ;子程序调用返回STAR3:   MOV R0,#30H                      ;#30H-->R0                MOV R6,#0F7H                   ;#0F7H-->R6SMG0:    MOV P1,#0FFH                    ;#0FFH-->P1                MOV A,R6                            ;R6-->A                MOV P1,A                            ;A-->P1                RR A                                     ;A向右移一位                MOV R6,A                           ;A-->R6                MOV A,@R0                       ;@R0-->A                ADD A,#04H                        ;#04H-->A                MOVC A,@A+PC               ;A+PC-->                MOV P0,A                            ;A-->P0                AJMP SMG1                        ;转程序 SMG1SDATA:   DB 0C0H,0F9H,0A4H,0B0H,99H                DB 92H,82H,0F8H,80H,90H SMG1:     LCALL STAR4                    ;转子程序 SRAR4                LCALL STS00                     ;转子程序 STS00                INC R0                                 ;R0+1                CJNE R6,#07FH,SMG0       ;#07FH 与 R6 比较,不等转移 SMG0                AJMP STAR3                       ;转程序 SRAR3STAR4:    JNB P2.0,ST1                      ;P2.0=0 转 ST1                CLR 00                                 ;位 00 清 0                SJMP ST3                            ;转ST3ST1:         JNB 00,ST2                          ;位 00=0 转 ST2                SJMP ST3                            ;转 ST3ST2:         LCALL STAR2                    ;调子程序 STAR2                SETB 00                               ;位 00 置 1ST3:         RET                                      ;子程序调用返回ORG 0100H                                         ;地址 0100HSTS00:     MOV 60H,#003H                ;#003H-->60H  (211)DE001:     MOV 61H,#0FFH               ;#0FFH-->61H (255)DE002:     DJNZ 61H,DE002               ;61H 减 1 不等于 0 转 DE002                 DJNZ 60H,DE001               ;60H 减 1 不等于 0 转 DE001                 RET                                     ;子程序调用返回                 END                                    ;结束 上次的程序共有293句,经小组成员建议,本人经几天的研究写了下面的这个程序,现在的程序用了63句,精简了230句。功能没有减。如谁有更简练的程序,请发上来,大家一起学习。 4位八段数码管的十进制加计数仿真实验(含电路图和仿真文件)

    标签: 数码管 十进制 仿真实验 仿真

    上传时间: 2013-10-11

    上传用户:sssl

  • 汇编+保护模式+教程

    九.输入/输出保护为了支持多任务,80386不仅要有效地实现任务隔离,而且还要有效地控制各任务的输入/输出,避免输入/输出冲突。本文将介绍输入输出保护。 这里下载本文源代码。 <一>输入/输出保护80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入/输出,实现输入/输出保护。 1.I/O敏感指令输入输出特权级(I/O Privilege Level)规定了可以执行所有与I/O相关的指令和访问I/O空间中所有地址的最外层特权级。IOPL的值在如下图所示的标志寄存器中。 标  志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O许可位图规定了I/O空间中的哪些地址可以由在任何特权级执行的程序所访问。I/O许可位图在任务状态段TSS中。 I/O敏感指令 指令 功能 保护方式下的执行条件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 设置EFLAGS中的IF位 CPL<=IOPL IN 从I/O地址读出数据 CPL<=IOPL或I/O位图许可 INS 从I/O地址读出字符串 CPL<=IOPL或I/O位图许可 OUT 向I/O地址写数据 CPL<=IOPL或I/O位图许可 OUTS 向I/O地址写字符串 CPL<=IOPL或I/O位图许可 上表所列指令称为I/O敏感指令,由于这些指令与I/O有关,并且只有在满足所列条件时才可以执行,所以把它们称为I/O敏感指令。从表中可见,当前特权级不在I/O特权级外层时,可以正常执行所列的全部I/O敏感指令;当特权级在I/O特权级外层时,执行CLI和STI指令将引起通用保护异常,而其它四条指令是否能够被执行要根据访问的I/O地址及I/O许可位图情况而定(在下面论述),如果条件不满足而执行,那么将引起出错码为0的通用保护异常。 由于每个任务使用各自的EFLAGS值和拥有自己的TSS,所以每个任务可以有不同的IOPL,并且可以定义不同的I/O许可位图。注意,这些I/O敏感指令在实模式下总是可执行的。 2.I/O许可位图如果只用IOPL限制I/O指令的执行是很不方便的,不能满足实际要求需要。因为这样做会使得在特权级3执行的应用程序要么可访问所有I/O地址,要么不可访问所有I/O地址。实际需要与此刚好相反,只允许任务甲的应用程序访问部分I/O地址,只允许任务乙的应用程序访问另一部分I/O地址,以避免任务甲和任务乙在访问I/O地址时发生冲突,从而避免任务甲和任务乙使用使用独享设备时发生冲突。 因此,在IOPL的基础上又采用了I/O许可位图。I/O许可位图由二进制位串组成。位串中的每一位依次对应一个I/O地址,位串的第0位对应I/O地址0,位串的第n位对应I/O地址n。如果位串中的第位为0,那么对应的I/O地址m可以由在任何特权级执行的程序访问;否则对应的I/O地址m只能由在IOPL特权级或更内层特权级执行的程序访问。如果在I/O外层特权级执行的程序访问位串中位值为1的位所对应的I/O地址,那么将引起通用保护异常。 I/O地址空间按字节进行编址。一条I/O指令最多可涉及四个I/O地址。在需要根据I/O位图决定是否可访问I/O地址的情况下,当一条I/O指令涉及多个I/O地址时,只有这多个I/O地址所对应的I/O许可位图中的位都为0时,该I/O指令才能被正常执行,如果对应位中任一位为1,就会引起通用保护异常。 80386支持的I/O地址空间大小是64K,所以构成I/O许可位图的二进制位串最大长度是64K个位,即位图的有效部分最大为8K字节。一个任务实际需要使用的I/O许可位图大小通常要远小于这个数目。 当前任务使用的I/O许可位图存储在当前任务TSS中低端的64K字节内。I/O许可位图总以字节为单位存储,所以位串所含的位数总被认为是8的倍数。从前文中所述的TSS格式可见,TSS内偏移66H的字确定I/O许可位图的开始偏移。由于I/O许可位图最长可达8K字节,所以开始偏移应小于56K,但必须大于等于104,因为TSS中前104字节为TSS的固定格式,用于保存任务的状态。 1.I/O访问许可检查细节保护模式下处理器在执行I/O指令时进行许可检查的细节如下所示。 (1)若CPL<=IOPL,则直接转步骤(8);(2)取得I/O位图开始偏移;(3)计算I/O地址对应位所在字节在I/O许可位图内的偏移;(4)计算位偏移以形成屏蔽码值,即计算I/O地址对应位在字节中的第几位;(5)把字节偏移加上位图开始偏移,再加1,所得值与TSS界限比较,若越界,则产生出错码为0的通用保护故障;(6)若不越界,则从位图中读对应字节及下一个字节;(7)把读出的两个字节与屏蔽码进行与运算,若结果不为0表示检查未通过,则产生出错码为0的通用保护故障;(8)进行I/O访问。设某一任务的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;对应I/O端口00H—3FH                        DB      10000000B      ;对应I/O端口40H—47H                        DB      01100000B      ;对用I/O端口48H—4FH                        DB      8182 DUP(0FFH) ;对应I/O端口50H—0FFFFH                        DB      0FFH           ;位图结束字节TSSLen                  =       $TSSSEG                  ENDS 再假设IOPL=1,CPL=3。那么如下I/O指令有些能正常执行,有些会引起通用保护异常:                         in      al,21h  ;(1)正常执行                        in      al,47h  ;(2)引起异常                        out     20h,al  ;(3)正常实行                        out     4eh,al  ;(4)引起异常                        in      al,20h  ;(5)正常执行                        out     20h,eax ;(6)正常执行                        out     4ch,ax  ;(7)引起异常                        in      ax,46h  ;(8)引起异常                        in      eax,42h ;(9)正常执行 由上述I/O许可检查的细节可见,不论是否必要,当进行许可位检查时,80386总是从I/O许可位图中读取两个字节。目的是为了尽快地执行I/O许可检查。一方面,常常要读取I/O许可位图的两个字节。例如,上面的第(8)条指令要对I/O位图中的两个位进行检查,其低位是某个字节的最高位,高位是下一个字节的最低位。可见即使只要检查两个位,也可能需要读取两个字节。另一方面,最多检查四个连续的位,即最多也只需读取两个字节。所以每次要读取两个字节。这也是在判别是否越界时再加1的原因。为此,为了避免在读取I/O许可位图的最高字节时产生越界,必须在I/O许可位图的最后填加一个全1的字节,即0FFH。此全1的字节应填加在最后一个位图字节之后,TSS界限范围之前,即让填加的全1字节在TSS界限之内。 I/O许可位图开始偏移加8K所得的值与TSS界限值二者中较小的值决定I/O许可位图的末端。当TSS的界限大于I/O许可位图开始偏移加8K时,I/O许可位图的有效部分就有8K字节,I/O许可检查全部根据全部根据该位图进行。当TSS的界限不大于I/O许可位图开始偏移加8K时,I/O许可位图有效部分就不到8K字节,于是对较小I/O地址访问的许可检查根据位图进行,而对较大I/O地址访问的许可检查总被认为不可访问而引起通用保护故障。因为这时会发生字节越界而引起通用保护异常,所以在这种情况下,可认为不足的I/O许可位图的高端部分全为1。利用这个特点,可大大节约TSS中I/O许可位图占用的存储单元,也就大大减小了TSS段的长度。 <二>重要标志保护输入输出的保护与存储在标志寄存器EFLAGS中的IOPL密切相关,显然不能允许随便地改变IOPL,否则就不能有效地实现输入输出保护。类似地,对EFLAGS中的IF位也必须加以保护,否则CLI和STI作为敏感指令对待是无意义的。此外,EFLAGS中的VM位决定着处理器是否按虚拟8086方式工作。 80386对EFLAGS中的这三个字段的处理比较特殊,只有在较高特权级执行的程序才能执行IRET、POPF、CLI和STI等指令改变它们。下表列出了不同特权级下对这三个字段的处理情况。 不同特权级对标志寄存器特殊字段的处理 特权级 VM标志字段 IOPL标志字段 IF标志字段 CPL=0 可变(初POPF指令外) 可变 可变 0  不变 不变 可变 CPL>IOPL 不变 不变 不变 从表中可见,只有在特权级0执行的程序才可以修改IOPL位及VM位;只能由相对于IOPL同级或更内层特权级执行的程序才可以修改IF位。与CLI和STI指令不同,在特权级不满足上述条件的情况下,当执行POPF指令和IRET指令时,如果试图修改这些字段中的任何一个字段,并不引起异常,但试图要修改的字段也未被修改,也不给出任何特别的信息。此外,指令POPF总不能改变VM位,而PUSHF指令所压入的标志中的VM位总为0。 <三>演示输入输出保护的实例(实例九)下面给出一个用于演示输入输出保护的实例。演示内容包括:I/O许可位图的作用、I/O敏感指令引起的异常和特权指令引起的异常;使用段间调用指令CALL通过任务门调用任务,实现任务嵌套。 1.演示步骤实例演示的内容比较丰富,具体演示步骤如下:(1)在实模式下做必要准备后,切换到保护模式;(2)进入保护模式的临时代码段后,把演示任务的TSS段描述符装入TR,并设置演示任务的堆栈;(3)进入演示代码段,演示代码段的特权级是0;(4)通过任务门调用测试任务1。测试任务1能够顺利进行;(5)通过任务门调用测试任务2。测试任务2演示由于违反I/O许可位图规定而导致通用保护异常;(6)通过任务门调用测试任务3。测试任务3演示I/O敏感指令如何引起通用保护异常;(7)通过任务门调用测试任务4。测试任务4演示特权指令如何引起通用保护异常;(8)从演示代码转临时代码,准备返回实模式;(9)返回实模式,并作结束处理。

    标签: 汇编 保护模式 教程

    上传时间: 2013-12-10

    上传用户:nunnzhy

  • PLC TM卡开发系统汇编程序(ATM8051)

    PLC TM卡开发系统汇编程序(ATM8051) ;***************** 定义管脚*************************SCL BIT P1.0SDA BIT P1.1GC BIT P1.2BZ BIT P3.6LEDI BIT P1.4LEDII BIT P1.5OK BIT 20H.1OUT1 BIT P1.3OUT2 BIT P1.0OUT3 BIT P1.1RXD BIT P3.0TXD BIT P3.1PCV BIT P3.2WPC BIT P3.3RPC BIT P3.5LEDR BIT P3.4LEDL BIT P3.6TM BIT P3.7;********************定义寄存器***********************ROMDTA EQU 30H;NUMBY EQU 61H;SLA EQU 60H;MTD EQU 2FH;MRD EQU 40H;TEMP EQU 50H;;ORG 00H;;INDEX:MOV P1, #00H;MOV P2, #0FFHMOV MTD ,#00HCALL REEMOV R0,40HCJNE R0,#01,NO;MOV P2,#1CHLJMP VIMEN MOV P2,#79HACALL TOUCHRESET ;JNC NO ;CALL READTM ;CJNE A,#01H,NO;NOPMOV MTD, #00HCALL WEENOPMOV P2,#4AHSETB BZCALL TIMECLR BZMOV PCON, #0FFHVIME:CALL TIME1CALL TOUCHRESETJNC VIMECALL READTMCJNE A, #01H,VIME;NOPNOPNOPIII: MOV MTD,#00HCALL REECALL BBJNB OK,NO1LJMP ZHUNO1:MOV MTD,#10H

    标签: 8051 PLC ATM TM卡

    上传时间: 2014-03-24

    上传用户:448949

  • 51汇编程序实例

    51汇编程序实例:举一例说明:流水灯加数码管 LOOP:     ; 标号CLR P2.6   ;选中p2.6 数码管左边的8字使能SETB P2.7   ;p2.7不使能。 右边的数码管消隐MOV P0,#28H  ;把28h送p0口;数码管显示 0LCALL DELAY ;延时MOV P0,#0FFH   ;0FFH 送p0口,数码管清除CLR P1.0    ;点亮p1.0发光管MOV P0,#7EH ;把7eh送p0口;数码管显示 1LCALL DELAYMOV P0,#0FFHCLR P1.1      ;点亮p1.0发光管CLR P1.0      ;点亮p1.0发光管MOV P0,#0A2H   ;数码管显示 2LCALL DELAYMOV P0,#0FFHCLR P1.2CLR P1.1CLR P1.0MOV P0,#62H    ;数码管显示 3LCALL DELAYMOV P0,#0FFHCLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#74H    ;数码管显示 4LCALL DELAYMOV P0,#0FFHCLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#61H   ;数码管显示 5;LCALL DELAYMOV P0,#0FFHCLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#21H     ; 数码管显示 6LCALL DELAYMOV P0,#0FFHCLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#7AH   ; 数码管显示 7LCALL DELAYMOV P0,#0FFHCLR P1.7CLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#20H   ; 数码管显示 8LCALL DELAYMOV P0,#0FFHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFH;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8;p1.0------------p1.7指示灯依次点亮SETB P2.6   ; 左边的8消隐CLR P2.7   ;选中p2.7 数码管右边的8字使能 ,;MOV P0,#28HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.0MOV P0,#7EHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.1MOV P0,#0A2HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.2MOV P0,#62HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.3MOV P0,#74HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.4MOV P0,#61HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.5MOV P0,#21HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.6MOV P0,#7AHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.7MOV P0,#20HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHMOV P0,#0FFHMOV P1,#0FFH;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮;;同时p1口的灯流动显示:AJMP LOOP; 注意: 程序运行到此跳转到开始标号,重复执行:DELAY:  ;延时子程序;参考前面的教程:CLR P3.3  ;注意小喇叭在3.3口, 这里可以使小喇叭发出嗒,嗒声MOV  R7,#255NOPNOPD1:MOV R6,#255setb p3.3D2: DJNZ R6,D2clr p3.3DJNZ R7,D1SETB P3.3RETENDLOOP:                ; 标号CLR P2.6             ;选中p2.6 数码管左边的8字使能SETB P2.7            ;p2.7不使能。 右边的数码管消隐MOV P0,#28H          ;把28h送p0口;数码管显示 0    ;28为1010000LCALL DELAY          ;  延时程序MOV P0,#0FFH         ;0FFH 送p0口,数码管清除;P0口为11111111CLR P1.0             ;点亮p1.0发光管; P1。0为电平,P0口为11111110MOV P0,#7EH          ;把7eh送p0口;数码管显示 1; P1。0为低电平,P0口为11111110LCALL DELAY          ;  延时程序MOV P0,#0FFHMOV P0,#0FFH         ;0FFH 送p0口,数码管清除;P0口为11111111 清一次显示这条是清显示的

    标签: 汇编 程序实例

    上传时间: 2013-10-31

    上传用户:gundamwzc

  • LED显示屏动态显示及程序

    实现动态显示效果的方法和以上几种基本类似,这里以滚动显示为例作一说明。对于需要滚动的文字,可以将其设置为位图格式,暂存于内存中,然后利用VC 提供的位图拷贝函数BitBlt将位图复制到显示位置。对于特殊字符或图形,则可以直接利用BitBlt函数调用到显示位置。然后在类CLEDDlg的 OnTimer函数中调用该函数,以实现文字的滚动显示。另外,也可以通过设定不同的响应时间间隔来改变文字的滚动速度。 程序清单: ORG  00H LOOP: MOV A,#0FFH ;开机初始化,清除画面 MOV P0,A    ;清除P0口        ANL P2,#00   ;清除P2口 MOV R2,#200   D100MS: MOV R3,#250 ;延时100毫秒        DJNZ R3,$        DJNZ R2,D100MS        MOV 20H,#00H ;取码指针的初值 l100:    MOV R1,#100 ;每个字的停留时间 L16:    MOV R6,#16 ;每个字16个码

    标签: LED 显示屏 动态显示 程序

    上传时间: 2013-11-06

    上传用户:zl520l

  • 一款ls2051国产的单片机,由p1.0和p1.1两个输出口接两个喇叭

    一款ls2051国产的单片机,由p1.0和p1.1两个输出口接两个喇叭,将c语言音乐程序在0道程序运行;汇编音乐程序在1道程序运行工具。两首音乐同时放出。奇怪的是程序的开发平台是通用的编程工具,用了一条MOV 0FFH,#ROAD1指令,将1道程序开通即可

    标签: 2051 1.0 1.1 ls

    上传时间: 2014-01-14

    上传用户:ouyangtongze

  • 这个程序的任务是键盘显示数字

    这个程序的任务是键盘显示数字,也就是分别按倚天版的4个小键盘,右边的数码管轮流分别显示数字0,1,2,3,为了便于程序的讲解,我们把每一句分别编号, 实际输入程序时,就不用写后面的号码了。第1,2,3行是单片机的初始化,一般的程序都是这样开头的, 作用是跳开00-30h的地址单元,因为这些单元是分配给特殊寄存器使用的。第6行把p3送0FFH,作用是把这些端口p3.0-p3.7置高电平, 因为倚天版的键盘接在p3口,只有当端口为高电平时, 我们按下键盘,那么这个端口被短路到地,端口被强行变为0。根据这个大家自行分析第4句的意思。第5行clr p2.6,就是选中最右边的数码管。 板上一共有6个数码管,分别是p2.1,p2.2,p2.3p2.4p2.5p2.6.

    标签: 程序 数字 键盘显示

    上传时间: 2015-10-22

    上传用户:gououo

  • VIP专区-嵌入式/单片机编程源码精选合集系列(157)

    VIP专区-嵌入式/单片机编程源码精选合集系列(157)资源包含以下内容:1. 嵌入式486手册.2. 奔腾-486处理器指令集手册.3. 1602液晶显示程序+1302温度测量+18b20显示时间(C语言).4. 51写的SLE4442程序实验用的SLE4442卡初始密码PSC1、PSC2、PSC3均为0FFH.5. 语音芯片的驱动程序.6. 嵌入式平台入门--嵌入式系统内存泄漏的检查和预防.7. 从PCI一直讲到PCI EXPRESS的文章.8. 基于TMS320F2812的工控实时时钟.9. 新代数控系统.10. S3C2442 官方 原理图 网上收集的一份原理图!.11. 高级数据链路控制(HDLC)协议的介绍文档.12. ARMSYS实验二十四:FAT16文件系统的移植与应用 描述:对Nandflash进行格式化.13. pxa270 的bootloader源码.14. ds1302源程序 (为辅试验箱调试通过).15. FPGA开发板的原理图很详细的.16. HT单片机模拟I2C通讯.17. easy web build on NXP LPC2300 LPc2400.18. 蓝牙耳机的SCH,与PCB图,可适合于自己动手的朋友们进行创作..19. ti的12位AD采集c实现.20. wince 下测试串口.21. 本系列所采用的所有技术都将“以实例来定义”.22. 用运算放大器做正弦波振荡器在学校时老师就教过.23. FPGA/CPLD数字电路设计经验分享。大唐公司的!.24. NorFlash的烧写及相关说明可以通过串口实现程序的在线升级.25. 嵌入式操作系统实时性比对与评价,尤其对windowsce性能的测试大有帮助。.26. 东芯IV的SEP3203ARM的源代码.27. 1702的资料.28. 数字逻辑交通信号灯课程设计代码请指正.29. C#程序开发范例宝典 图书光盘附带源码 第20章.30. 介绍了嵌入式linux操作系统的知识以及arm编程.31. P,PI D控制系统仿真设计的例子.32. 32位元2進位SIGNED乘法器32位元SIGNED乘法器.33. 用8051单片机和6个数码管加一片DS1302时钟芯片做成实用闹钟.34. UP-NETARM 2410-S 开发平台 电路原理图.35. 通过时钟芯片计算按键开关闭合次数和时间.36. 通过对双口ram 操作判断硬件正确性.37. Nokia 3310 驱动程序 ... KeilC.38. MPC03-LV运动控制卡驱动程序.39. 一个51整开发板的应用(源程序电路图功能全实用给有需要的人).40. I2C : 用C语言编译的I2C.

    标签: 光学 温度变送器

    上传时间: 2013-07-21

    上传用户:eeworm