没有合适的资源?快使用搜索试试~ 我知道了~
首页51单片机实战:流水灯、方波与1秒定时器汇编教程
51单片机实战:流水灯、方波与1秒定时器汇编教程
0 下载量 176 浏览量
更新于2024-06-28
收藏 89KB DOC 举报
"《单片机汇编语言经典一百例》文档是一本针对51单片机初学者和进阶开发者编写的实用指南,它提供了100个精心设计的汇编语言程序实例,涵盖了单片机的基础知识与高级应用。这些实例涵盖了一系列关键功能,包括: 1. 流水灯控制 - 通过P1口实现延时控制,使得多个LED灯交替点亮,适用于广告灯箱、霓虹灯等场景的灯光控制。程序如[LAMP.ASM]展示了如何初始化、操作位操作寄存器和调用延时函数来控制灯的状态。 2. 方波输出 - 使用P1.0口产生周期性高电平和低电平信号,模拟波形发生器的功能。程序[FAN.ASM]展示了如何利用延时和位操作来实现简单的方波输出。 3. 定时器功能应用 - 特别是定时1秒报警功能,通过定时器1的计数器配合中断机制,实现定时器工作方式1下每过一秒p1.0的状态切换。这在如定时报警器等需要精确时间控制的应用中有重要作用,如[DIN1.ASM]所示。 每个例子都包含了详细的代码解释和注释,帮助读者理解汇编指令的工作原理,以及如何将其应用于实际的硬件电路。通过学习和实践这些实例,读者可以深入掌握单片机汇编语言的基础,提升编程技巧,并能解决实际问题中的电子设计挑战。这份文档不仅适合初学者作为入门教材,也适合有一定经验的工程师查阅和参考,以扩展他们的技能库。"
资源详情
资源推荐
.
.
. .word..
;延时//////////////////////////////////////////////
DELAY: MOV R1,#0FFH
E1: MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,E1
RET
;/////////////////////////////////////////////
SETTAB:
DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,
F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;数显代码
END
七、AD 转换
7.1 AD 转换〔数码显示〕
程序介绍:利用 ADC0809 模拟通道 3 输入电压,经单片机
19
处理后在数码管上用相对应的 16 进制数显示出来,0—5V 对
应为 0--0FFH,实际应用例如:数据采集。
程序操作:程序写完上电运行后,用本机配带的专用起微调
图 15 所示电位器,会在数码管上看到随不同电压而变化的对
应 16 进制值。也可以用
万用表实 ADC0809IN3 脚
电压,来检验所对应显
.
.
. .word..
示的 16 进制数。
图 15
程序实例〔ad.asm〕:
ORG 0000H
MAIN1:
ACALL DELAY ;延时
ACALL AD ;呼叫 AD 子程序
;将转换的数字量屏蔽高位低位送显////////////////////
MOV 31H,30H
MOV A,30H
ANL A,#0FH
MOV DPTR,#SETTAB
MOVC A,A+DPTR
MOV SBUF,A
D1: JNB TI,D1
CLR TI
;//////////////////////////////////////////////////
;将转换的数字量屏蔽低位高位送显////////////////////
MOV A,30H
20
ANL A,#0F0H
SWAP A
.
.
. .word..
MOV DPTR,#SETTAB
MOVC A,A+DPTR
MOV SBUF,A
D2: JNB TI,D2
CLR TI
;//////////////////////////////////////////////////
AJMP MAIN1 ;返回主程序
AD: MOV DPTR,#7F00H ;指向转换地址
MOV A,#03H ;指向转换口
MOVX DPTR,A ;转换
MOV R1,#64H
D3: DJNZ R1,D3 ;等 100 微秒转换完
MOVX A,DPTR ;转换后的值给 A
MOV 30H,A ;转换的值给 30H
RET
DELAY: ;延时
MOV R2,#0FFH
D14: MOV R3,#0FFH
D12: DJNZ R3,D12
DJNZ R2,D14
RET
SETTAB:
.
.
. .word..
DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,
0FEH,0F6H
DB 0EEH,3EH,9CH,7AH,9EH,8EH
21
7.2 十六进制两位数加法器〔数码显示〕
程序介绍:将 ADC0809 输入的两个不同电压〔一样电
压也可相加,只是为举例说明,所以取不同电压〕所对应
的 16 进制数相加显示出来。实际应用例如:取代加法运放
电路。
程序操作:程序写完上电运行后,用本机配带的钟表
起微调图 16 所示电位器,输入两个不同电压,数码管会显
示两个不同的对应 16 进制数,随后数码管会显示两个 16
进制数相加的值。
程序实例〔add2.asm〕:
ORG 0000H
MAIN:
ADNUMBER EQU 30H ;AD 转换值
ADDNUMBER EQU 31H ;加数值 1
ADL EQU 32H ;//
ADH EQU 33H ;ADL 转换上下位值
DISL EQU 34H ;//
DISH EQU 35H ;显示上下位值
剩余78页未读,继续阅读
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功