单片机课程论文.docx
- 文档编号:4360790
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:26
- 大小:1.15MB
单片机课程论文.docx
《单片机课程论文.docx》由会员分享,可在线阅读,更多相关《单片机课程论文.docx(26页珍藏版)》请在冰点文库上搜索。
单片机课程论文
单片机课程论文
(一)交通灯的设计:
原理图:
仿真图:
程序:
ORG0;程序初始地址
AJMPSTAR;跳转到STAR
ORG40H;STAR程序的开始地址
STAR:
;开始
MOVR3,#5AH;R3寄存器赋值
ST:
MOVP1,R3;定义P1口,初始灯亮的情况(2457位=1)
MOVR1,#06H;数码管十位的初值(6)
MOVR0,#00H;数码管个位的初值(0)
MOVDPTR,#TEL;定义指针DPTR的初地址
LOP:
MOVA,R1;把R1的内容赋值给累加器A
MOVCA,@A+DPTR;取段选
MOVP2,A;数码管十位显示数值
MOVA,R0;把R0的内容赋值给累加器A
MOVCA,@A+DPTR;取段选
MOVP3,A;数码管个位显示数值
LOOP:
MOVR7,#8;¥
LOOP1:
MOVR6,#50;¥
LOOP2:
MOVR5,#100;¥1s延时
LOOP3:
DJNZR5,LOOP3;¥
DJNZR6,LOOP2;¥
DJNZR7,LOOP1;¥
CJNER0,#0,TEX;判断显示管个位数值是否为0
CJNER1,#0,NT;判断显示管十位数值是否为0
SJMPFC;个位十位同时为0则跳转FC
NT:
DECR1;NT:
个位是0时,十位减1
MOVR0,#9;个位跳到数值为9的段选地址
SJMPLOP;重新显示新赋值(9)的个位
TEX:
DECR0;个位不是0时,个位减1
SJMPLOP;子程序复位
FC:
CJNER3,#5AH,FU;个位十位同时是0,判断P1端灯亮情况
MOVR3,#0A5H;#
SJMPST;#改变P1端为另一种情况(只有2种情况)
FU:
MOVR3,#5AH;#
SJMPST;改变灯亮情况后,程序复位
TEL:
DB40H,0F9H,24H,30H,19H
(二)
第一题:
原理图:
1.查询方式
程序代码:
ORG0000H
LJMPSTAR
ORG0030H
STAR:
MOVTMOD,#01H
SETBEA
SETBET0
SETBTR0
MOVR0,#3
ST:
MOVTH0,#3CH
MOVTL0,#0B0H
SX:
JBCTF0,DSB
SJMPSX
DSB:
JNBP1.0,DSX;高电平马上取反,低电平定时为高电平的三倍
CPLP1.0
SJMPST
DSX:
DJNZR0,ST
CPLP1.0
SJMPSTAR
END
2.中断方式
程序代码:
ORG0000H
LJMPSTAR
ORG000BH
AJMPINT0S
ORG0030H
STAR:
MOVTMOD,#01H
SETBEA
SETBET0
SETBTR0
MOVR0,#3
MOVTH0,#3CH
MOVTL0,#0B0H
LOOP:
SJMPLOOP
INT0S:
JNBP1.0,DSB
CPLP1.0
SJMPDSX
DSB:
DJNZR0,DSX
CPLP1.0
MOVR0,#3
DSX:
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
END
第二题:
查询方式
原理图:
仿真图:
程序代码:
ORG0H
SJMPSTAR
STAR:
MOVTMOD,#11H
MOVTL0,#0
MOVTH0,#0
MOVTL1,#0
MOVTH1,#0
MOVR4,#3
ST:
JBP3.4,ST;第一次上升沿
ST1:
JNBP3.4,ST1
SETBTR0
SETBTR1
ST2:
JBP3.4,ST2;第二次上升沿
ST3:
JNBP3.4,DSB
READ:
CLRTR0
MOVA,TH0
MOVR0,TL0
CJNEA,TH0,READ
MOVR1,A
SJMPTL
DSB:
MOVA,TH1;第一个下降沿
MOVR2,TL1
CJNEA,TH1,DSB
MOVR3,A
CLRTR1
SJMPST3
TL:
MOVP1,R1;先显示一个周期的时间
MOVP2,R0
ACALLDELAY
ACALLDELAY
MOVP1,#0
MOVP2,#0
ACALLDELAY
TTL:
MOVP1,R3;再显示高电平的持续时间
MOVP2,R2
ACALLDELAY
ACALLDELAY
MOVP1,#0
MOVP2,#0
ACALLDELAY
SJMPTL
DELAY:
MOVR7,#80
D1:
MOVR6,#100
D2:
MOVR5,#100
D3:
DJNZR5,D3
DJNZR6,D2
DJNZR7,D1
RET
END
中断方式:
程序代码:
ORG0
SJMPSTAR
ORG03H
SJMPINT0S
ORG1BH
SJMPT1S
STAR:
MOVTMOD,#15H;初始化TMOD,T1定时,T0计数
MOVTCON,#53H
SETBPX0
MOVTH0,#0;T0清零
MOVTL0,#0
MOVTH1,#3CH;T1赋初值
MOVTL1,#0B0H;初始化TCON,T1优先级最高
MOVIE,#8DH;设置IE,开中断允许
MOVP2,#0
MOVP1,#0
SETBP3.2
MOVR7,#20
ST1:
MOVP1,TL0
SJMPST1
T1S:
MOVTH1,#3CH;重新赋值
MOVTL1,#0B0H
DJNZR7,T1S0;R7减1,不为0则转移到T1S0
CLRTR0;关T0
MOVP2,TH0;计数器T0值送P2P1显示
MOVP1,TL0
T1S0:
RETI
INT0S:
CLRTR1;外部中断0,记录一个周期内高电平的持续时间
MOVTH1,#0
MOVTL1,#0
BB1:
JBP3.4,BB1
BB2:
JNBP3.4,BB2
SETBTR1
BB3:
JNBP3.4,BB3
BB4:
JBP3.4,BB4
CLRTR1
MOVP2,TH1
MOVP1,TL1
SETBTR1
RETI
END
(三)
原理图:
仿真图:
程序代码:
org0
ljmp1000H
ORG1000H
MOVR2,#0
MOVA,R2
STAR:
MOVP1,A
INCR2
MOVA,R2
ANLA,#0FH
;LCALLDLY
SJMPSTAR
DLY:
MOVR1,#2
D1:
MOVR3,255
DJNZR3,$
DJNZR1,D1
RET
END
(四)
原理图:
仿真图:
程序代码:
ORG0
SJMPSTAR
STAR:
MOVP1,#0F0H
MOVDPTR,#0FFFEH
MOVA,#88H
MOVX@DPTR,A
ST:
ACALLSP1
JNZSK1
SJMPST
SK1:
ACALLDELAY
ACALLSP1
JNZSK2
SJMPST
SK2:
MOVR2,#0FEH
MOVR1,#00H
SK3:
MOVDPTR,#0FFBEH
MOVA,R2
MOVX@DPTR,A
MOVXA,@DPTR
JBACC.4,L1
MOVA,#0
SJMPSK
L1:
JBACC.5,L2
MOVA,#4
SJMPSK
L2:
JBACC.6,L3
MOVA,#8
SJMPSK
L3:
JBACC.7,NEXT
MOVA,#0CH
SK:
ADDA,R1
PUSHACC
WT:
ACALLDELAY
ACALLSP1
JNZWT
POPACC
LOK:
ANLA,#0FH
MOVP1,A
SETBP1.7
CLRP1.7
SETBP1.6
CLRP1.6
SETBP1.5
CLRP1.5
SETBP1.4
CLRP1.4
AJMPST
NEXT:
INCR1
MOVA,R2
JNBACC.3,ST
RLA
MOVR2,A
SJMPSK3
SP1:
MOVDPTR,#0FFBEH
MOVA,#0F0H
MOVX@DPTR,A
MOVXA,@DPTR
CPLA
ANLA,#0F0H
RET
DELAY:
MOVR7,#18H
D1:
MOVR6,#0FFH
D2:
DJNZR6,D2
DJNZR7,D1
RET
END
(五)
原理图:
仿真图:
程序代码:
ORG0
SJMPSTAR
STAR:
MOVP3,#0F0H
MOVP1,#0
MOVDPTR,#0FFDFH
MOVA,#88H
MOVX@DPTR,A
ST:
ACALLSP1
JNZSK1
SJMPST
SK1:
ACALLDELAY
ACALLSP1
JNZSK2
SJMPST
SK2:
MOVR2,#0FEH
MOVR1,#00H
SK3:
MOVDPTR,#0FF9FH
MOVA,R2
MOVX@DPTR,A
MOVXA,@DPTR
JBACC.4,L1
MOVA,#0
SJMPSK
L1:
JBACC.5,L2
MOVA,#4
SJMPSK
L2:
JBACC.6,L3
MOVA,#8
SJMPSK
L3:
JBACC.7,NEXT
MOVA,#0CH
SK:
ADDA,R1
PUSHACC
WT:
ACALLDELAY
ACALLSP1
JNZWT
POPACC
CJNEA,#8,NT
NT:
JNCOPEN
ORLA,#0F0H
MOVP3,A
MOVR5,A
MOVR4,#0FEH
CLRC
SJMPST
OPEN:
CLRA
MOVDPL,R5
MOVDPH,R4
MOVX@DPTR,A
MOVR3,#20H
DJNZR3,$
JNBP3.4,$
MOVXA,@DPTR
MOVP1,A
SJMPST
NEXT:
INCR1
MOVA,R2
JNBACC.3,ST
RLA
MOVR2,A
SJMPSK3
SP1:
MOVDPTR,#0FF9FH
MOVA,#0F0H
MOVX@DPTR,A
MOVXA,@DPTR
CPLA
ANLA,#0F0H
RET
DELAY:
MOVR7,#18H
D1:
MOVR6,#0FFH
D2:
DJNZR6,D2
DJNZR7,D1
RET
END
(六)
原理图:
仿真图:
程序代码:
CTRLEQU0FF03H
PAEQU0FF00H
PBEQU0FF01H
ERRREQUP2.5
ORG0000H
SJMPSTAR
ORG0003H
AJMPINTS
ORG0023H
SJMPINT_1S
ORG00030H
STAR:
ACALLCS_8255
ACALLCS_INT
ACALLCS_T1
MOVSCON,#0C0H
SETBTR1
WAIT:
JNBF0,$
CLRF0
MOVDPTR,#PA
MOVXA,@DPTR
MOVDPTR,#PB
MOVC,P
MOVTB8,C
ACALLDELAY_100US
MOVX@DPTR,A
MOVSBUF,A
SJMPWAIT
INTS:
SETBF0
RETI
INT_1S:
CLRTI
CPLERRR
RETI
;**********8255初始化***********
CS_8255:
MOVDPTR,#CTRL
MOVA,#90H
MOVX@DPTR,A
RET
;**********中断初始化***********
CS_INT:
MOVIE,#95H
SETBIT0
RET
;**********定时器T1初始化***********
CS_T1:
MOVTMOD,#20H
MOVTL1,#0FDH
MOVTH1,#0FDH
RET
;***********100us延时*************
DELAY_100US:
MOVR7,#50
DJNZR7,$
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程 论文