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

P1

  • 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

  • 51单片机读写u盘(含源程序和原理图)

    附件有51单片机加上sl811读写U盘的源程序和原理图 /*--------------------------------------------------------------------------AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.Copyright (c) 1995-1996 Keil Software, Inc.  All rights reserved.--------------------------------------------------------------------------*/ #ifndef AT89X52_HEADER_FILE#define AT89X52_HEADER_FILE 1 /*------------------------------------------------Byte Registers------------------------------------------------*/sfr P0      = 0x80;sfr SP      = 0x81;sfr DPL     = 0x82;sfr DPH     = 0x83;sfr PCON    = 0x87;sfr TCON    = 0x88;sfr TMOD    = 0x89;sfr TL0     = 0x8A;sfr TL1     = 0x8B;sfr TH0     = 0x8C;sfr TH1     = 0x8D;sfr P1      = 0x90;sfr SCON    = 0x98;sfr SBUF    = 0x99;sfr P2      = 0xA0;sfr IE      = 0xA8;sfr P3      = 0xB0;sfr IP      = 0xB8;sfr T2CON   = 0xC8;sfr T2MOD   = 0xC9;sfr RCAP2L  = 0xCA;sfr RCAP2H  = 0xCB;sfr TL2     = 0xCC;sfr TH2     = 0xCD;sfr PSW     = 0xD0;sfr ACC     = 0xE0;sfr B       = 0xF0;

    标签: 51单片机 读写 源程序 原理图

    上传时间: 2014-01-05

    上传用户:lnnn30

  • 跟我学单片机教程(实验与指令教程)

    :单片机是一门实践性非常强的学科,为此我们突破传统思路,全面围绕单片机试验,从简单的流水灯开始, 逐步的带领大家从这些简单的几行或者10几行的程序,来熟悉和理解单片机的指令。学指令 制作单片机教程之通过实验学指令...未经许可不得转载!通过实验学指令之1把所有端口的同时置高置低,不断闪烁通过实验学指令之2P1 口3 路流水灯理解2 进制数与端口的关系通过实验学指令之3 单片机的加法:把52h+0fch 结果送P1 口通过实验学指令之4 单片机的乘法:把ff*03h 结果送P1通过实验学指令之5 单片机的二进制加法 通过实验学指令之6 单片机的两位计数器通过实验学指令之7 学习单片机的逻辑运算 通过实验学指令之8 进一步学习单片机的逻辑运算通过实验学指令之9 循环移位指令的流水灯 通过实验学指令之10 理解熟悉散转结构的程序通过实验学指令之11 位操作指令的学习 通过实验学指令之12 比较指令的学习与cy 位通过实验学指令之13 该程序的功能是小喇叭1khz信号通过实验学指令之14按p3.510 次P1 口led 按照2进制加1通过实验学指令之15 使用定时器实现长时间的延时。通过实验学指令之16 中断的响应,p3.3 的小喇叭1khz 输出通过实验学指令之17p3.2的键盘数码管显示0 通过实验学指令之18 中断的响应,两级中断嵌套通过实验学指令之19顺序程序的结构通过实验学指令之20P1 口的led 闪烁10 次后停止子程序的嵌套

    标签: 单片机教程 实验 指令 教程

    上传时间: 2013-10-11

    上传用户:dragonhaixm

  • 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单片机C语言编程实例

    C语言编程基础:1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  P1_3 = 1;   //给P1_3赋值1,引脚P1.3就能输出高电平VCC    5.  While( 1 );  //死循环,相当 LOOP: goto LOOP;    6. }   注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出低电平的编程方法:(比如P2.7引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  P2_7 = 0;   //给P2_7赋值0,引脚P2.7就能输出低电平GND    5.  While( 1 );  //死循环,相当 LOOP: goto LOOP;    6. }   在某引脚输出方波编程方法:(比如P3.1引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  While( 1 )  //非零表示真,如果为真则执行下面循环体的语句    5.  {    6. P3_1 = 1;  //给P3_1赋值1,引脚P3.1就能输出高电平VCC    7.   P3_1 = 0;  //给P3_1赋值0,引脚P3.1就能输出低电平GND    8.  }    //由于一直为真,所以不断输出高、低、高、低……,从而形成方波    9. }   将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )

    标签: 51单片机C语言 编程实例

    上传时间: 2013-11-02

    上传用户:zengduo

  • 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

  • 单片机控制交通灯程序及设计

    近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 程序源代码              ORG 0000H         ;主程序的入口地址        LJMP MAIN         ;跳转到主程序的开始处        ORG 0003H         ;外部中断0的中断程序入口地址                 ORG 000BH         ;定时器0的中断程序入口地址  

    标签: 单片机控制 交通灯 程序

    上传时间: 2013-12-21

    上传用户:1234321@q

  • 51单片机c语言入门

    单片机的C 语言轻松入门随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C 语言为主,市场上几种常见的单片机均有其C 语言开发环境。这里以最为流行的80C51 单片机为例来学习单片机的C 语言编程技术。本书共分六章,每章一个专题,以一些待完成的任务为中心,围绕该任务介绍C 语言的一些知识,每一个任务都是可以独立完成的,每完成一个任务,都能掌握一定的识,等到所有的任务都完成后,即可以完成C 语言的入门工作。C 语言概述及其开发环境的建立学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil 软件是目前最流行开发80C51 系列单片机的软件,Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部份组合在一起。在学会使用汇编语言后,学习C 语言编程是一件比较容易的事,我们将通过一系列的实例介绍C 语言编程的方法。图1-1 所示电路图使用89S52 单片机作为主芯片,这种单片机性属于80C51 系列,其内部有8K 的FLASH ROM,可以反复擦写,并有ISP 功能,支持在线下载,非常适于做实验。89S52 的P1 引脚上接8 个发光二极管,P3.2~P3.4 引脚上接4 个按钮开关,我们的任务是让接在P1 引脚上的发光二极管按要求发光。

    标签: 51单片机 c语言

    上传时间: 2013-11-04

    上传用户:467368609

  • 一种基于C8051F单片机的直流无刷电机转速控制系统

    具有梯形反电动势的永磁同步电动机通常被称为无刷直流电动机,它具有结构简单、体积小、重量轻、效率高、高功率密度、启动扭矩大、惯量小和响应快等其它种类直流电机无法比拟的特性。采用电子换向器替代了传统直流电动机的机械换向装置,从而克服了电刷和换向器所引起的噪声、火花、电磁干扰、寿命短等一系列弊病。由于无刷直流电动机既具备交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具  有直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故其在在家用消费类产品(空调、冰箱、洗衣机)和IT周边产品(打印机、软驱、硬驱)中得到广泛的应用。    C8051F单片机是美国Silabs公司推出的一种与51系列单片机内核兼容的单片机,具有高速、高性能、高集成度。以C8051F020为例,具有如下特点:    C8051F020片上系统单片机片内资源:    一、模块外设    (1)逐次逼近型8路12位ADC0    转换速率最大100ksps    可编程增益放大器PGA    温度传感器    (2)8路8位ADC1输入与P1口复用    转换速率500ksps   可编程增益放大器PGA    (3)两个12 位DAC    (4)两个模拟电压比较器    (5)电压基准内部提供2.43V    外部基准可输入    (6)精确的VDD监视器    二、高速8051微控制器内核    流水线式指令结构速度可达25MIPS    22个矢量中断源    三、存储器    片内4352字节数据RAM    64KBFlash程序存储器可作非易失性存储

    标签: C8051F 单片机 直流无刷 电机转速

    上传时间: 2013-12-21

    上传用户:bnfm

  • SM-IIC/2051模块用户说明(I2C 数据控制模块)

    SM-IIC/2051 模块用户说明简介:SM-IIC/2051 是一个基于2051 单片机的I2C 总线控制模块。上位机接口可直接与PC的RS232 连接,下位机可实现对应用电路中I2C 控制总线的连接,块内设置2K 的FLASH 存储器,可存储用户I2C 初始化数据。模块采用2051 单片机,使电路简单可靠。型号:SM-IIC/2051名称:I2C 数据控制模块功能:RS232 串行信号与I2C 数据转换 接口说明:编号信号标志信号名称规格备注CK1-1 VCC 供电+5VCK1-2 VCC 供电+5VCK1-3 GND 地GroundCK1-4 GND 地GroundCK2-1 TOUT 串口输出RS232CK2-2 RIN 串口输入RS232CK2-3 GND 地GroundCK2-4 GND 地Ground编号信号标志信号名称规格备注CK3-1 GND 地GroundCK3-2 SCL I2C 时钟TTLCK3-3 SDA I2C 数据TTLCK3-4 GND 地GroundCK3-5 P1.2 PI/O 端口TTLCK3-6 P1.3 PI/O 端口TTLCK3-7 P1.4 PI/O 端口TTLCK3-8 P1.5 PI/O 端口TTLCK3-9 P1.6 PI/O 端口TTLCK3-10 P1.7 PI/O 端口TTLCK3-11 P3.7 PI/O 端口TTLCK3-12 T1 定时端口TTLCK3-13 T0 定时端口TTLCK3-14 INT1 中断端口TTLCK3-15 INT0 中断端口TTLCK3-16 GND 地Ground

    标签: SM-IIC 2051 I2C 模块

    上传时间: 2013-11-18

    上传用户:爺的气质