基于单片机数字电压表的设计文档格式.docx
- 文档编号:17510765
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:15
- 大小:139.86KB
基于单片机数字电压表的设计文档格式.docx
《基于单片机数字电压表的设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机数字电压表的设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
(3)CS0接KEY/LED端,CS1接0809的地址选择端,确定键盘和数码管及A\D转换器的地址。
3.程序清单(不含实验系统程序)
OUTBITequ08002h;
位控制口
OUTSEGequ08004h;
段控制口
INequ08001h;
键盘读入口
LEDBufequ60h;
显示缓冲
ORG0000H
ljmpStart
ORG000bh
LJMPT0SERVE
LEDMAP:
;
八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
Delay:
延时子程序
movr7,#0
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
DisplayLED:
movr0,#LEDBuf
movr1,#6;
共6个八段管
movr2,#00100000b;
从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#0
movx@dptr,a;
关所有八段管
mova,@r0
movdptr,#OUTSEG
movx@dptr,a
mova,r2
显示一位八段管
movr6,#1
callDelay
mova,r2;
显示下一位
rra
movr2,a
incr0
djnzr1,Loop
TestKey:
输出线置为0
movdptr,#IN
movxa,@dptr;
读入键状态
cpla
anla,#0fh;
高四位不用
KeyTable:
键码定义
db16h,15h,14h,0ffh
db13h,12h,11h,10h
db0dh,0ch,0bh,0ah
db0eh,03h,06h,09h
db0fh,02h,05h,08h
db00h,01h,04h,07h
GetKey:
movP2,dph
movr0,#Low(IN)
movr1,#00100000b
movr2,#6
KLoop:
mova,r1;
找出键所在列
movr1,a;
下一列
movxa,@r0
anla,#0fh
jnzGoon1;
该列有键入
djnzr2,KLoop
movr2,#0ffh;
没有键按下,返回0ffh
sjmpExit
Goon1:
键值=列X4+行
deca
rla
movr2,a;
r2=(r2-1)*4
r1中为读入的行值
movr1,#4
LoopC:
rrca;
移位找出所在行
jcExit
incr2;
r2=r2+行值
djnzr1,LoopC
Exit:
取出键码
movdptr,#KeyTable
movca,@a+dptr
WaitRelease:
movdptr,#OUTBIT;
等键释放
clra
movr6,#10
callTestKey
jnzWaitRelease
mov67h,a;
r2中是键值
Start:
movsp,#70h
movLEDBuf+0,#03fh;
显示0.0.0.0.0
movLEDBuf+1,#03fh
movLEDBuf+2,#03fh
movLEDBuf+3,#03fh
movLEDBuf+4,#03fh
movLEDBuf+5,#03fh
MLoop:
callDisplayLED;
显示
callTestKey;
有键入?
jzMLoop;
无键入,继续显示
callGetKey;
读入键码
cjnea,#0,function2;
a不为0,跳至f2,为0继续
function1:
movLEDBuf+0,#77h
movLEDBuf+1,#03fh
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#3CH
SETBEA
SETBET0
MOVR3,#0AH
SETBTR0
test:
jztest;
clrtr0
ljmpmloop
function2:
cjnea,#0fh,function3
mov60h,#7ch
mov61h,#03fh
test1:
lcallad
lcallfuzhi
function3:
cjnea,#0eh,function4
mova,60h
cjnea,#7ch,fenzhi
test2:
callDisplayLED
lcallfuzhi1
fenzhi:
mov60h,#77h
test3:
jztest3;
function4:
cjnea,#01h,function5
mov60h,#03fh
mov62h,#03fh
mov63h,#03fh
mov64h,#03fh
mov65h,#06h
mov66h,#33h
function5:
cjnea,#02h,function6
mov65h,#5bh
mov66h,#66h
function6:
cjnea,#03h,function7
mov65h,#4fh
mov66h,#99h
function7:
cjnea,#04h,function8
mov65h,#66h
mov66h,#0cch
function8:
cjnea,#05h,ml
mov65h,#6dh
mov66h,#0ffh
ml:
T0SERVE:
pushdph
pushdpl
DJNZR3,xLOOP
mova,67h
cjnea,#00h,si
ljmpxlOOP
si:
callad
xlOOP:
popdpl
popdph
RETI
AD:
movdptr,#9000h
起动A/D
here:
jnbp3.3,here
读入结果
fuzhi:
mov50h,a
lcallBCD
fuzhi1:
mov50h,a
movr0,a
subba,66h
jncaa1
jcaa2
aa1:
callBCD;
正数
mov61h,#01000110b
aa2:
subba,1
负数
mov61h,#01000000b
BCD:
mova,50h;
显示数据为4位BCD码子程序
MOV62H,#3fh
MOV63H,#3fh
MOV64H,#3fh
MOV65H,#3fh
MOVB,#51
DIVAB
movdptr,#ledmap
movca,@a+dptr
MOV62H,A;
千位
MOVA,B
JZtch;
余数为0结束
MOVA,#10;
处理百位
MULAB
PUSHACC
JZL3
MOV7fh,#5
POPACC
inca
SJMPL33
L3:
mov7fh,#0
L33:
MOVB,#51
ADDA,7fh
MOV63H,A;
百位
JZtch
处理十位
JZL4
SJMPL44
L4:
mov7fh,#00h
L44:
MOV64H,A;
十位
处理个位
JZL5
SJMPL55
L5:
MOV65H,A;
个位
ajmptch
l55:
mov7fh,#5
MOV65H,A
tch:
end
四、软硬件调试
开始做程序时,只是从编程实现功能的角度出发,进入实验室调试写好的程序时,才发现实验箱上的硬件与软件编程是不匹配的,比如单片机的P0、P2口在内部已被封装好。
我们又开始根据硬件的连接修改软件程序,程序终于写完了,但结果并不是我们所希望的那样,数码管不显示结果,我们花了很长时间重新研究程序并修改了算法,可还是没有解决问题。
无奈之下,请教了老师,在老师的帮助下,发现还是算法有考虑不周的地方,最后数码管能显示了。
可用万用表检测误差的时候,发现数码管显示值和万用表读数相差100—500mv左右,说明算法还是存在些问题。
仔细研究发现是我们编写程序时出现了一点错误,在处理乘法溢出时出现了一点错误,改正之后,数码管准确显示,误差在允许的范围之内。
五、设计分析总结
经过一周时间的单片机课设,我收获很多。
它不仅增进了我对单片机设计的兴趣,更让我熟悉了从开始的论证分析到编写程序,再到软硬件程序的调试,实现产品功能这一设计过程。
当时拿到课题我觉得很熟悉,因为以前数电、模电课设时,接触过这个题目,可那时是用搭建电路,模拟仿真的方法做的,现在要用软件编程的方法实现,很期待。
所以拿到课题后我们就按照要求,论证分析,划分模块,开始编程序。
写程序过程中,分支太多,相互跳转的很麻烦,所以我们画了很详细的流程图,画硬件连接图,分配端口,花了三天的时间,不断的修改终于写完了。
到实验室调试时,发现了一个致命的错误,实验箱的硬件跟我们的程序根本对不上,编程前忽略了这一点,而是自己连的硬件。
没办法,从头开始改程序,改了很长时间,算是差不多了,调试没有错误。
可数码管不能显示数值,我们花了很长时间重新研究程序并修改了算法,可还是没有解决问题。
由于之前没有意识到硬件的问题,我们验收的很晚。
当时发现硬件与软件不匹配的时候,有点失落,所有的程序都是一句一句写出来的,却不能用。
可课设结束后想想那三天真的很值,亲身经历后的收获真的不一样。
后来调试程序过程中不断的遇到问题,解决问题,和同组人一起努力完成了课设。
课设顺利完成,是老师和同组人员共同努力的结果。
这个过程中,老师给了我们不少的启发,感谢李老师的悉心指导!
六、参考文献
[1]楼然苗、李光飞.《单片机课程设计指导》.北京航空航天大学出版社.2007.7
[2]胡辉、李叶紫.《单片机原理与应用》中国水利水电出版社.2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 电压表 设计