当前位置:文档之家› 汇编语言,led点亮

汇编语言,led点亮

《单片机应用设计》课程设计
专业:自动化
姓名:
学号:
同组人员:
指导教师:
日期:
单片机应用设计课程设计
设计题目
1个按键:无按键时,8个LED全亮,按下1次,8个Led依次点亮,持续1S。

连续按两次,8个Led以相反的次序依次点亮。

单片机应用设计课程设计
第一部分系统设计分析
硬件分析
1.LED灯采用共阳极接法,本题中则将P1口对应各位赋低电平即可点亮LED灯。

2.p
3.5接按键。

软件分析
第二部分硬件电路设计及实现
单片机应用设计课程设计
第三部分软件设计
ORG 0000H
LJMP MAIN
;中断入口
ORG 000BH
LJMP DIER
KEY BIT P3^4
LED EQU P1
MAIN: MOV R2,#0 ;R2清零
MOV LED,#0 ;八个二极管全亮
MOV R3,#10
MOV TMOD,#01H;选择定时器0的定时器方式1
;赋初值3CB0H即15536
MOV TL0,#0B0H
MOV TH0,#3CH
SETB EA ;打开总中断
SETB ET0 ;允许定时器0中断
;第一次按键检测
KEY_SCAN:JNB KEY, YN1 ;为零则转移,即为按下
AJMP KEY_SCAN
YN1:LCALL DEL1MS
JNB KEY,Y1 ;判断是否真的按下,真的按下了,则转移
AJMP KEY_SCAN
Y1:LCAL L DEL1MS
JB KEY,SSH ;检测是否松手,松手转移
AJMP Y1
SSH:SETB TR0 ;打开定时器0
CJNE R2,#1,$ ;检测R2是否为一,不为一则等待
CLR TR0 ;关闭定时器
AJMP MAIN ;跳回主程序
;第二次键盘检测,每50ms检测一次,检测10次,即为500ms DIER:JNB KEY, LED_2 ;检测键盘是否按下,按下则转移
DJNZ R3,CZ ;R3减一是否为零,不为零则转移
AJMP LED_1 ;延迟500ms后没有第二次按下,跳到LED_1 LED_1:MOV R4,#8
MOV A,#0FEH
;LED顺序循环程序
LOOP1:MOV LED,A
LCALL DEL1S
题目:
RL A ;数据循环左移
DJNZ R4,LOOP1 ;循环不够八次则转移
LCALL DEL1S
INC R2
RETI;中断返回
;LED逆序循环程序
LED_2:MOV R4,#8
MOV A,#07Fh
LOOP2:MOV LED,A
LCALL DEL1S
RR A
DJNZ R4,LOOP2
LCALL DEL1S
INC R2
RETI ;中断返回
;定时器一赋初值
CZ: MOV TL0,#0B0H
MOV TH0,#3CH
RETI;中断返回
;延时1s程序
DEL1S:MOV R7,#60
DEL3:MOV R6,#200
DEL1:MOV R5,#250
DEL2:DJNZ R5,DEL2
DJNZ R6,DEL1
DJNZ R7,DEL3
RET
;延时1ms程序
DEL1MS:MOV R7,#1
DE3:MOV R6,#10
DE1:MOV R5,#100
DE2:DJNZ R5,DE2
DJNZ R6,DE1
DJNZ R7,DE3
RET
END
单片机应用设计课程设计
课程设计总结
这次通过用汇编语言对51单片机编程,对定时器,以及各类指令可以熟练运用;不再是课本的死读书,读死书,我们也对单片机的内部结构有了更深的了解,我们在一起学习,通过编程我体会到了团队的力量,互相学习,特别是对第二次按键的设计,我们是绞尽脑汁,最后终于有了初步的方案,使用定时器来解决的第二次的按键,我相信这只是初步的控制单片机的小程序,我们会在以后进一步学习其他的模块,提高自身的能力。

相关主题