单片机实训报告文档格式.docx
- 文档编号:19170380
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:28
- 大小:472.63KB
单片机实训报告文档格式.docx
《单片机实训报告文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实训报告文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
框图如下:
(一)动态扫描LED显示框图符号位LED1自检框图:
其余四位自检框图:
(二)一位一位的显示LED1显示子程序:
⑶键盘自检
键盘检测主框图:
键处理子程序框图:
(4)温度监测计
主程序框图:
子程序框图:
1数字滤波
2中断
3显示
4数字处理
四、程序清单:
⑴蜂鸣器自检程序清单
;
*********************************************
给A赋不同的值,通过控制A使蜂鸣器产生不同
时间长度的延时,及产生不同频率的声音
START:
CLRP2.3;
蜂鸣器发出本来的声音
BEEP:
MOVA,#3FH;
给A赋初值
ACALLDELAY;
调用延时子程序
MOVA,#7FH
ACALLDELAY
MOVA,#08H
MOVA,#0A8H
MOVA,#0FFH
MOVA,#01FH
SJMPBEEP
;
*********************
延时子程序
DELAY:
MOVR2,#0DFH;
R2控制外循环次数,及总延时时间
LOP1:
MOVR1,A;
R1控制发声频率
LOP2:
DJNZR1,LOP2;
R1-1不为零则跳转,为零则顺序执行
CPLP2.3;
取反,产生矩形波
DJNZR2,LOP1
RET
⑵LED自检程序清单
************************************************************
先让各个LED灯依次显示各段,最后五个灯一起亮及显示-8.8.8.8.
LCALLSEL1;
调用选字位子程序SEL1
LCALLLED1;
调用查表送字型子程序
LCALLSEL2
LCALLLED
LCALLSEL3
LCALLSEL4
LCALLSEL5
LCALLALL
SJMPSTART
SEL1:
CLRP2.7;
最高位及符号位位选
CLRP2.6
CLRP2.5
RET
SEL2:
SETBP2.7;
第二位位选
SEL3:
CLRP2.7;
第三位位选
SETBP2.6
SEL4:
SETBP2.7;
第四位位选
SEL5:
第五位位选
SETBP2.5
*************************************
除符号位的四个LED依次显示每一段
LED:
MOVA,#01H;
MOVR0,#08H
JM:
MOVP0,A
LCALLDELAY
RLA
DJNZR0,JM
****************************************
通过查表使符号位依次显示各段
LED1:
PUSHA;
入栈
MOVR1,#04H;
R1赋初值4
MOVR0,#00H;
R0初始化
H:
MOVA,R0
MOVDPTR,#TABLE;
把表首地址给寄存器
MOVCA,@A+DPTR;
查表取数并给A
MOVP0,A;
把字型送到P0口
CALLDELAY;
延时
INCR0;
修改指针,使其指向下一个地址
DJNZR1,H;
R1-1不为零跳转执行H,否则顺序执行
POPA;
出栈
TABLE:
DB01H,04H,08H,80H;
符号位的字型表
******************
延时子程序
MOVR5,#02H
MOVR6,#0C8H
MOVR7,#0F8H
NOP
LOP3:
DJNZR7,LOP3
DJNZR6,LOP2
DJNZR5,LOP1
***********************
八段都亮的字型
**********************
W:
MOVR6,#0FFH
MOVA,R6
MOVP0,A
********************************
五个LED灯都亮的子程序
ALL:
MOVR4,#0EEH
R:
MOVR3,#0FFH
Q:
LCALLSEL1
MOVR0,#0FFH
MOVA,R0
MOVP0,A;
LCALLSEL2;
调用字位
LCALLW;
调用字型
LCALLSEL3
LCALLW
DJNZR3,Q
DJNZR4,R
⑶键盘自检程序清单
STA:
SETBP2.3;
关闭蜂鸣器
MOVP0,#0
CALLKEY;
读键
MOVR0,A
ANLA,#0FH;
JZSTA
CALLDELAY
CALLKEY
CALLZE
CALLDI
SJMPSTA
KEY:
LCALLSEL8;
打开三态门
MOVP1,#0FFH;
设置P1口为输入口
MOVA,P1;
采集键状态
CPLA;
把采到的键状态取反
LCALLSEL7;
关闭三态门
ZE:
ANLA,R0
ANLA,#0FH
********************
判断键号子程序
DI:
RRCA
JNCK2
CALLSEL1
K2:
JNCK3
CALLSEL2
K3:
JNCK4
CALLSEL3
K4:
JNCRE
CALLSEL4
RE:
RET
所有位选子程序
SETBP2.7
CLRP2.6
CLRP2.5
MOVP0,#0CH
CLRP2.3
CALLDELAY
CLRP2.7
MOVP0,#0B6H
CLRP2.3
CALLDELAY
MOVP0,#09EH
MOVP0,#0CCH
SEL7:
SEL8:
MOVR2,#014H
MOVR3,#0F8H
DJNZR3,LOP2
DJNZR2,LOP1
⑷温度监测计程序清单
ORG0000H
JMPMAIN
ORG0003H;
外部中断0入口
JMPZD
ORG080H
**********************************************
以下为初始化
MAIN:
MOVSP,#048H
CLR07FH
SETBRS1
MOVR1,#60H
MOVR2,#00H
CLRRS1
SETBEA
SETBIT1
SETBEX0
LCALLXS
SJMPSTA
***********************************************
双字节除双字节,除法子程序
ORG500H
DDIV:
movR4,#0
movR5,#0
movA,R0
movR6,A
movA,R1
movR7,A
Div2Byte_1:
clrc
subbA,R3
movR1,A
subbA,R2
movR0,A
jcDiv2Byte_3
movA,R5
addA,#1
movR5,A
jncDiv2Byte_2
incR4
Div2Byte_2:
LJMPDiv2Byte_1
Div2Byte_3:
RET
中断子程序至RETI结束
ORG1000H
ZD:
CLREA;
关中断
PUSHPSW;
入栈,保存工作状态
PUSHA
SETBRS1;
选1区
MOVP1,#0FFH
CLRP2.0
CLRP2.1;
读高位
MOVA,P1
SETBP2.1
MOVC,ACC.4
JCAD1;
判断是否溢出
ANLA,#0FH;
取有用的位值
MOV@R1,A;
存数据
INCR1;
地址指针加1
CLRP2.2;
读低位
SETBP2.2
SETBP2.0
存地址
INCR2;
次数加1
地址指针加1
CJNER2,#04H,AD1;
R4=4时,程序顺序进行
SETB07FH
AD1:
POPA
POPPSW;
SETBEA;
RETI
***************************************
位选部分
CLRP2.5
CLRP2.6
选2位有效
CLRP2.5
SETBP2.6
选3位有效
选4位有效
SETBP2.5
选5位有效
关闭245三态门
*****************************************
MOVR5,#08H
DELAY1:
MOVR4,#0FFH
DELAY2:
DJNZR4,DELAY2
DJNZR5,DELAY1
OUT:
MOVA,@R0;
用来查表显示
MOVDPTR,#TAB
MOVCA,@A+DPTR
INCR0;
指针加1
字型表
TAB:
DB7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0DEH,80H
显示子程序
XS:
SETBEA;
开中断
MOVR0,#40H;
字型放在40H
LCALLOUT
LCALLSEL2
LCALLDELAY
LCALLSEL3
LCALLSEL4
LCALLSEL5
JB07FH,SJCL;
如果07FH=1时,则采样4次完成跳入数据处理
SJCL:
CLREA;
关中断,处理部分不允许中断
LCALLLB;
滤波
CLRC;
清进位
MOVA,#81H
SUBBA,32H
MOVA,#01H
SUBBA,31H;
将取来的数与0181H比较,判断取来的数是正是负
JNCFS;
取来的数为负则跳转
正数处理部分
MOVR5,31H
MOVR4,32H;
入口参数,R4、R5为被乘数
MOVR7,#00H
MOVR6,#0DH;
R7、R6为乘数
LCALLMULX;
调用乘法子程序
MOVR0,41H
MOVR1,40H;
R0、R1为被除数
MOVR3,#0AH;
R2、R3为除数,R4、R5为商,R6、R7为余数
LCALLDDIV
CLRC
MOVA,R5
SUBBA,#0F4H
MOVR1,A
MOVA,R4
SUBBA,#01H
MOVR2,#03H
MOVR3,#0E8H;
除1000
MOV40H,R5;
商在40H中
MOVA,R6;
余数为下一次的被除数
MOVA,R7
MOVR3,#64H;
除100
MOV41H,R5;
商放在41H
MOVR3,#0AH;
除10
MOV42H,R5;
商放在42H中
MOV43H,R7;
余数放在43H中
SJMPRE
负数处理部分
FS:
MOVR4,32H
MOVR6,#0DH;
乘13除10
LCALLMULX
MOVR1,40H
MOVR3,#0AH
MOVA,#0F4H
SUBBA,R5
MOVA,#01H;
函数关系:
500-1.3x
SUBBA,R4
除100,同上
MOV41H,R5
除10,同上
MOV42H,R5
MOV43H,R7
MOV40H,#0AH;
40H存入负号字型
乘法子程序
MULX:
MOV43H,#0
MOV42H,#0
MOV41H,#0
MOV40H,#0
MOVR0,#40H
MOVA,@R0
ADDA,R4
MOV@R0,A
INCR0
ADDCA,R5
ADDCA,#0
CJNER7,#0,BB
SUBBA,#1
MOVR6,A
JNZSTART
SJMPCC
BB:
SUBBA,#0
MOVR7,A
JNCSTART
CC:
滤波子程序
LB:
SETBRS0
MOVR0,#60H;
初始化
CLRRS0
CLRA
MOVR2,A
MOVR3,A
MOVR4,#03FH
MOVR5,#0FFH;
滤波初始化
MOVR0,#04H;
滤波个数
DAV1:
LCALLRDATA;
从60H开始读数据
ADDA,R7
MOVA,B
ADDCA,R6
MOVA,R3
SUBBA,R1
MOVA,R2
SUBBA,B
JNCDAV2
MOVA,R1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 报告