实 验 报 告
第 页
专业__软件工程__ 班级___4___ 学号__123012005158__
实验日期: 2007 年 11 月 27 日 报告退发 (订正 、 重做)
课程 单片机程序设计 实验名称 LED实验
一、实验目的
掌握LED工作原理和使用方法
二、实验环境
PC,KC,51板
三、实验内容、步骤和结果分析
编写时钟程序,用LED管显示。
org 00h
ajmp main
org 000Bh
ajmp dis
main: mov tmod,#01h
mov th0,#0bfh
mov tl0,#0ffh
mov r0,#00h ;用于判断秒的十位数
mov r1,#00h ;用于判断秒的个位数
mov r3,#20h ;用于连续显示的循环个数
mov r4,0ffh
mov dptr,#para
setb tr0
setb et0
setb ea
sjmp $
dis: mov th0,#8fh
mov tl0,#8fh
djnz r3,disc ;循环显示结束
mov r3,#20h
inc r1 ;个位数字计数加1
inc dptr ;各位数字加1
cjne r0,#06h,zhuanyi
mov r0,#00h
mov r1,#00h
mov dptr,#para
zhuanyi:cjne r1,#0ah,disc ;个位数满10,重新赋值
mov r1,00h
inc r0
mov dptr,#para
reti
dis1: ;mov r3,#64h
ajmp disc
disc: cjne r0,#00h,shi1 ;R0为0,即十位数为0
mov p2,#02h ;开第二个数码管
mov p0,#3fh ;赋值为0
ajmp xunhuan ;设置个位数
shi1: cjne r0,#01h,shi2 ;r0=1
mov p2,#02h
mov p0,#06h
ajmp xunhuan
shi2: cjne r0,#02h,shi3 ;r0=2
mov p2,#02h
mov p0,#5bh
ajmp xunhuan
shi3: cjne r0,#03h,shi4
mov p2,#02h
mov p0,#4fh
ajmp getge
shi4: cjne r0,#04h,shi5
mov p2,#02h
mov p0,#66h
ajmp xunhuan
shi5:
mov p2,#02h
mov p0,#6dh
ajmp xunhuan
xunhuan: djnz r4,xunhuan
mov p0,#00h
mov r4,#020h
getge: mov a,#01h
mov p2,a
mov a,#0h
movc a, @a+dptr
mov p0,a
xunhuan2:djnz r4,xunhuan2
mov r4,#0ffh
;mov p0,#00h
reti
para: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
;0 1 2 3 4 5 6 7 8 9
end
实验成功,可是实现两位数的0~60的不断循环,但并没有能完全的实现时钟的功能
四、讨论
通过本次实验,了解了如何控制在模拟51板上进行数字轮流显示的程序,起先由于不设置延时,导致在程序执行过程只能有一个LED灯显示,但在单步过程中可以进行两个LED灯的轮流显示.在这个问题上想了很久,后来对两个位数进行了延时之后就可以进行两个LED灯的显示,并设置了时钟的时间,中断时间等,完成了本实验.