//此程序功能是:手动计数器,当按键按下时,计数加一,液晶显示一次(加一的结果)。
//源程序和proteus下载地址:http://proteus.5d6d.com/thread-9003-1-1.html
ORG 0000H
LJMP START
ORG 0030H
START: MOV DPTR,#TABLE ;设置段码首地址
MOV R0,#00H ;计数初值存R0
MOV P0,#3FH
MOV P2,#3FH ;复位时数码管显示0
S1: INC R0
CJNE R0,#100,S2
MOV R0,#00H
S2: JB P3.3,$ ;等待按键
LCALL DELAY ;消除抖动延时
JB P3.3,S2
S3: MOV A,R0
MOV B,#10
DIV AB ;分离计数值的个位和十位
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
JB P3.3,S1 ;等待按键拾起
LJMP S3
DELAY: MOV R5,#20H ;延时10ms
D1: MOV R6,#250
DJNZ R6,$
DJNZ R5,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H ;0-9七段码值
DB 6DH,7DH,07H,7FH,6FH
END
关键字:独立键盘 计数功能 汇编
引用地址:
独立键盘实现计数功能程序(汇编)
推荐阅读最新更新时间:2024-03-16 15:09
51单片机汇编——延时和点灯
前言 这篇文章主要是看视频学习51汇编,但是我的环境总是配置不好,出现了这个问题(keil2+vdmagdi.exe+Proteus),有懂的小伙伴可以帮助一下我 ^.^ 一、延时程序 1.1 延时程序的简介和分类 在单片机的控制应用中,常有延时的需要,CPU 过一段时间再去做某件事,称之为延迟。延时有两种方法,即软件延时和硬件延时 硬件延时是通过定时/计数器(中断程序)来实现的,这种方法不占用 CPU 的工作时间 软件延时一般采用循环程序,通过 CPU 执行一个具有固定延迟时间的循环体来实现的 1.2 软件延时 1、机器周期数 延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序中的循环次数,一旦晶振确定之后
[单片机]
GNU ARM汇编入门
任何汇编行都是如下结构: .macro SHIFTLEFT a, b .if b 0 MOV a, a, ASR #-b .exitm .endif MOV a, a, LSL #b .endm .rept number_of_times 循环执行.endr前的代码段number_of_times次。 (与armasm中的WEN相似) .irp param {, val_1 } {, val_2 } 循环执行.endr前的代码段,param依次取后面给出的值。 在循环执行的代码段中必须以 param 表示参数。 .endr 结束循环(与armasm中的WEND相似).
[单片机]
用汇编语言写一个LCD1602驱动显示程序
Fosc_KHZ EQU 22118 ;22118KHZ STACK_POIRTER EQU 0D0H ;堆栈开始地质 P4 DATA 0C0H P5 DATA 0C8H P0M1 DATA 0x93 P0M0 DATA 0x94 P1M1 DATA 0x91 P1M0 DATA 0x92 P2M1 DATA 0x95 P2M0 DATA 0x96 P3M1 DATA 0xB1 P3M0 DATA 0xB2 P4M1 DATA 0xB3 P4M0 DATA 0xB4 P5M1 DATA 0xC9 P5M0 DATA 0xCA P6M1 DATA 0xCB P6M0 DATA 0xCC P7M1 DATA 0xE1 P7M0 DAT
[单片机]
DS18B20汇编程序与C程序
ds18b20 c程序 //DS1820 C51 子程序 //这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间 //sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte; typedef unsigned int word; //延时 void delay(word useconds) { for(;useconds 0;useconds--); } //复位 byte ow_reset(void) { byte presence; DQ = 0; //pull DQ line low delay(29); // leave it lo
[单片机]
51单片机汇编语言(一)
6.1功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。 程序:JS01.ASM 01: MOV A , #11111110B ; 存入欲显示灯的位置数据 02: MOV P1, A ; 点亮第一只灯 03: JMP $ ; 保持当前的输出状态 04: END ; 程序结束 6.2功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。 程序:JS02.ASM 01:START: MOV A , #00010010B ;
[单片机]
基于FPGA和单片机的多功能计数器设计
一、系统方案 方案1:采用中小规模数字电路构成系统,由计数器构成主要的测量模块。用定时器组成主要的控制电路。此方案软件设计简单,但外围芯片过多,且频带窄,实现起来较复杂,功能不强,而且不能程控和扩展。 方案2:采用单片机实现。被测信号经调理后送入单片机,利用其内部的计数器完成计数,然后再进行数据处理和显示,但单片机在处理高速信号时略显吃力。 方案3:利用FPGA对调理后的被测信号实现高速计数,单片机软件执行高精度浮点数运算并显示。单片机完成系统的数据处理、逻辑控制和人机交互功能;大规模现场可编程器件(FPGA)实现外围计数功能。电路框图如图1所示。 图1 方案3系统框图 方案比较与选择:方
[单片机]
汇编入门学习笔记 (三) —— 第一个程序
疯狂的暑假学习之 汇编入门学习笔记 (三) 第一个程序 参考:《汇编语言》 王爽 第四章 1.一个源程序从写到执行的过程 第一步:编写汇编源程序 第二步:对源程序进行编译连接 第三步:在操作系统中执行 2.源程序 代码: assume cs:first first segment start: mov ax,2 add ax,ax add ax,ax mov ax,4C00H int 21H first ends end start 代码解释: assume 、segment、end
[单片机]
用汇编实现I2CBUS总线协议
摘要: 本文简要介绍了I2C串行总线结构和特点,并结合其在单片机(GMS97C2051)上的应用,以24LC01BEEPROM为例,给出了用汇编语言实现该协议的程序。
关键词: I2C总线 单片机
I2C总线
PHILIPS公司早在十几年前就推出了I2C串行总线,它具备多主机系统所需的包括裁决和高低速设备同步等功能高性能串行总线。
I2C总线硬件结构
I2C串行总线有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线睥设备的串行数据SDA都接到总线的SDA线,各设备的时钟线SCL接到总线的SCL。典型的I2C总线结构如图1。
为了避免总线信号的混乱,
[嵌入式]