2单片机设计案例.docx

上传人:b****6 文档编号:6050055 上传时间:2023-01-03 格式:DOCX 页数:19 大小:57.65KB
下载 相关 举报
2单片机设计案例.docx_第1页
第1页 / 共19页
2单片机设计案例.docx_第2页
第2页 / 共19页
2单片机设计案例.docx_第3页
第3页 / 共19页
2单片机设计案例.docx_第4页
第4页 / 共19页
2单片机设计案例.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

2单片机设计案例.docx

《2单片机设计案例.docx》由会员分享,可在线阅读,更多相关《2单片机设计案例.docx(19页珍藏版)》请在冰豆网上搜索。

2单片机设计案例.docx

2单片机设计案例

项目二智能收费系统设计

一、设计内容与要求

智能收费系统要求以89S52单片机为最小系统,外围要有蜂鸣器电路、显示电路、按键键盘控制电路、读卡器等硬件电路,以非接触的射频卡为介质实现消费管理,透支报警,也可以发挥增加其它功能,完成智能收费系统的设计。

二、硬件电路框图

1.硬件电路框图图2-1IC卡硬件电路框图

2.I/O口的分配:

P1.0

串联显示CP

P1.1

——

P1.2

音响

P1.3

——

P1.4

串联显示数据

P1.5

键CP

P1.6

键复位

P1.7

键盘状态

P3.0

RXD(读卡器)

三、软件设计

1.流程图:

如下图所示

 

2.程序的内存地址分配:

40H

显示窗口号

41H

卡号的低8位

42H

卡号的高8位

43H

现卡内余额的低8位

44H

现卡内余额的高8位

45H

显示本次用款的低8位

46H

显示本次用款的高8位

47H

本次结余的低8位

48H

本次结余的高8位

10H-17H

代码

3.部分参考程序

ORG0000H

LJMPMAIN

ORG0023H

LJMPZD

ORG0300H

MAIN:

MOVSP,#60H

ACALLZHISHU;卡原存

M0:

MOVSP,#60H

LCALLSIC;串口中断始化

M1:

MOV0FH,#00H

ACALLLBB;清10-1F

MOVA,#02H;窗口号

MOV40H,A;40H存窗口号

MOV10H,40H;

MOV11H,#00H;窗口号送10H和11H

ACALLLAAA;显示窗口号

L003:

MOVA,0FH;判卡标志

CJNEA,#33H,L003

ACALLDUKA;卡处理

MOVA,41H;取卡低位乘以2

CLRC

RLCA

MOV82H,A;A内容送DPTR

JCB1;C=1转

MOV83H,#0E0H;A内容送DPH

AJMPB2

B1:

MOV83H,#0E1H;

B2:

MOV4AH,82H

MOV4BH,83H

MOV18H,#0AH

MOVXA,@DPTR;送原存即取余款

MOV43H,A;43和44单元放余款

MOV20H,A;20和21单元为显示

INCDPTR;

MOVXA,@DPTR;

MOV44H,A;

MOV21H,A;

ACALLYASO;压缩16进制数变成压缩10进制数

ACALLL11;压缩--非压缩

ACALLLAAA;10H代码变换后送显示

K1:

ACALLJIAN

JNCK1

LDD8:

MOV30H,A

ACALLLBB

MOVA,30H

SJMPLDD9

LDD4:

ACALLJIAN;扫键

JNCLDD4

LDD9:

ACALLJ3;键译

JCLEE4;功能键

ACALLLCA

MOV10H,A

ACALLLAAA

AJMPLDD4

LEE4:

CJNEA,#0EH,LEEE5;E为取消

LJMPM0

LEEE5:

CJNEA,#0FH,LDD4;F为确认减钱

LJMPFF

HUAN:

MOV09H,A;清显示缓冲区子程序

ACALLLBB

MOVA,09H

CLRF0

RET

LCA:

MOV14H,13H

MOV13H,12H

MOV12H,11H

MOV11H,10H

RET

JIAN:

MOV18H,#0BH

SETBP1.6;扫键子程序

ACALLLAAA5

CLRP1.6

ACALLLAAA5

CLRA

J1:

JNBP1.7,J2

INCA

CLRP1.5

ACALLLAAA5

SETBP1.5

ACALLLAAA5

CJNEA,#10H,J1

CLRC

RET

J2:

ACALLLAAA5

JNBP1.7,J4

SJMPJ1

J4:

JNBP1.7,J4

SETBC

RET

J3:

MOVDPTR,#03C3H;键译

MOVCA,@A+DPTR

CJNEA,#09H,J5

CLRC

RET

J5:

JNCJ6

CLRC

RET

J6:

SETBC

RET

DB00H,01H,02H,03H,04H,07H,0BH,0CH

DB0AH,0DH,0EH,05H,06H,08H,09H,0FH

LAAA5:

MOVR0,#20H

J8:

DJNZR0,J8

RET

FF:

MOVA,11H;处理功能键,非压10进制变压送20H

ANLA,#0FH

SWAPA

MOV20H,A

MOVA,10H

ANLA,#0FH

ADDA,20H

MOV20H,A;低2位在20H

MOVA,13H

ANLA,#0FH

SWAPA

MOV21H,A

MOVA,12H

ANLA,#0FH

ADDA,21H

MOV21H,A;高2位在21H

MOVR0,#21H;调BCD码变16进制子程序入口地址;先放高

MOVR1,#45H

MOVR7,#02H

ACALLLD4;调BCD码变16进制子程序

CLRC

MOVA,43H;(43H)-(45H)=(47H)

SUBBA,45H

MOV47H,A

MOVA,44H;(44H)-(46H)=(48H)

SUBBA,46H

MOV48H,A

JCER0;为负转移

MOV82H,4AH;把结果暂存

MOV83H,4BH

MOVA,47H

MOVX@DPTR,A

INCDPTR

MOVA,48H

MOVX@DPTR,A

MOV20H,47H;显余额

MOV21H,48H

ACALLYASO

ACALLL11

MOV18H,#0CH

ACALLLAAA

CLRP1.2;音响

ACALLDEL2

SETBP1.2

ACALLDEL

AJMPM0

ER0:

MOVA,#11H;-的代码

MOV14H,A

MOV13H,A

MOV12H,A

MOV11H,A

MOV10H,A

ACALLLAAA

CLRP1.2;音响

ACALLDEL

SETBP1.2

ACALLDEL

AJMPM0

RET

DUKA:

ACALLLEE;ASC码变16进制数

ACALLLB;非压16进制变压缩16进制数

MOV20H,34H

MOV21H,33H

MOV41H,34H

MOV42H,33H

ACALLYASO;压缩16进制数变成压缩10进制数

ACALLL11;压缩--非压缩

ACALLDAIM;代码--段码

ACALLXIAN;显示

RET

LBB:

MOVA,#10H;清显示

MOVR0,#10H

MOVR2,#09H

LB1:

MOV@R0,A

INCR0

DJNZR2,LB1

RET

XIAOSH:

MOVA,22H;小数点程序

ORLA,#80H

MOV22H,A

MOVA,27H

ORLA,#00H

MOV27H,A

MOVR0,#24H

ACALLLBB5

MOVR0,#28H

ACALLLBB5

RET

LBB5:

MOVR2,#02H

LB5:

MOVA,@R0

CJNEA,#3FH,LB6

CLRA

MOV@R0,A

DECR0

LB6:

DJNZR2,LB5

RET

LAAA:

MOV15H,#10H

ACALLDAIM

ACALLXIAOSH

ACALLXIAN

RET

SIC:

ANLTMOD,#0FH;中断始化

ORLTMOD,#20H

MOVTH1,#0FDH

MOVTL1,#0FDH

SETBTR1

MOVIE,#90H

MOVSCON,#50H

RET

ZD:

PUSHACC;中断程序

PUSH00H

PUSH02H

MOVR0,#30H

MOVR2,#0BH

LL1:

ACALLLL2

JBF0,LL3

NOP

NOP

MOV@R0,A

INCR0

DJNZR2,LL1

POP02H

POP00H

POPACC

NOP

MOV0FH,#33H

RETI

LL2:

MOV04H,#28H

LL4:

JNBRI,LL6

CLRRI

MOVA,SBUF

CLRF0

RET

LL6:

MOV05H,#0AH

LL5:

DJNZR5,LL5

DJNZR4,LL4

SETBF0

RET

LL3:

POP02H

POP00H

POPACC

RETI

LEE:

MOVR0,#30H;ACS码变16进制数

MOVR2,#0AH

LEE5:

MOVA,@R0

ACALLLE7

MOV@R0,A

INCR0

DJNZR2,LEE5

RET

LE7:

CJNEA,#40H,L13

SJMPLEE7

L13:

JCLEE6

ADDA,#09H

LEE6:

ANLA,#0FH

CLRC

RET

LEE7:

SETBC

RET

LB:

MOVA,30H;非压16进制变压缩16进制数

SWAPA

ADDA,31H

MOV30H,A

MOVA,32H

SWAPA

ADDA,33H

MOV31H,A

NOP

NOP

MOVA,34H

SWAPA

ADDA,35H

MOV32H,A

MOVA,36H

SWAPA

ADDA,37H

MOV33H,A

NOP

NOP

MOVA,38H

SWAPA

ADDA,39H

MOV34H,A

RET

YASO:

MOVR0,#20H;压缩16进制数变成压缩10进制数

MOVR7,#02H

MOVR1,#28H

LCALLLY1

RET

LY1:

MOVA,R0

MOVR5,A

MOVA,R1

MOVR6,A

MOVA,R7

INCA

MOVR3,A

CLRA

LY2:

MOV@R1,A

INCR1

DJNZR3,LY2

MOVA,R7

MOVB,#08H

MULAB

MOVR3,A

LY3:

MOVA,R5

MOVR0,A

MOVA,R7

MOVR2,A

CLRC

LY5:

MOVA,@R0

RLCA

MOV@R0,A

INCR0

DJNZR2,LY5

MOVA,R6

MOVR1,A

MOVA,R7

MOVR2,A

INCR2

LY4:

MOVA,@R1

ADDCA,@R1

DAA

MOV@R1,A

INCR1

DJNZR2,LY4

DJNZR3,LY3

RET

L11:

MOVR1,#10H;压缩10进制数变成非压缩十进制数

MOVR2,#03H

MOVR0,#28H

L12:

MOVA,@R0

ANLA,#0FH

MOV@R1,A

INCR1

MOVA,@R0

SWAPA

ANLA,#0FH

MOV@R1,A

INCR0

INCR1

DJNZR2,L12

RET

DAIM:

MOVR2,#09H;代码变短码

MOVR0,#10H

MOVR1,#20H

L12F:

MOVA,@R0

ADDA,#06H

MOVCA,@A+PC

MOV@R1,A

INCR0

INCR1

DJNZR2,L12F

RET

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DB00H,40H,73H,03H,18H,23H,1CH,3DH,76H,0FH,1EH,38H

XIAN:

MOVR0,#20H;显示

MOVR2,#09H

LP1:

MOVR1,#08H

MOVA,@R0

LP2:

RLCA

MOVP1.4,C

CLRP1.0

SETBP1.0

DJNZR1,LP2

INCR0

DJNZR2,LP1

RET

DEL:

MOVR5,#14H

Y3:

MOVR6,#0FFH

Y2:

MOVR7,#0FFH

Y1:

DJNZR7,Y1

DJNZR6,Y2

DJNZR5,Y3

RET

DEL2:

MOVR5,#02H

Y33:

MOVR6,#0FFH

Y22:

MOVR7,#0FFH

Y11:

DJNZR7,Y11

DJNZR6,Y22

DJNZR5,Y33

RET

LD4:

MOVA,R1;压十变压16进制

MOVR6,A

MOVA,R7

MOVR3,A

CLRA

LD9H:

MOV@R1,A

INCR1

DJNZR3,LD9H

MOVA,R7

MOVR3,A

LDFH:

ACALLLD6H

MOVA,@R0

ANLA,#0F0H

SWAPA

ACALLLD7H

ACALLLD6H

MOVA,@R0

ANLA,#0FH

ACALLLD7H

DECR0

DJNZR3,LDFH

RET

LD6H:

MOVA,R7

MOVR4,A

MOVA,R6

MOVR1,A

CLRC

MOVR2,#00H

LDAH:

MOVA,@R1

MOVB,#0AH

PUSHPSW

MULAB

POPPSW

ADDCA,R2

MOV@R1,A

MOVR2,B

INCR1

DJNZR4,LDAH

RET

LD7H:

MOVR5,A

MOVA,R6

MOVR1,A

MOVA,R7

MOVR4,A

MOVA,R5

ADDA,@R1

MOV@R1,A

INCR1

DECR4

MOVA,R4

JNZLDBH

AJMPLDCH

LDBH:

MOVA,@R1

ADDCA,#00H

MOV@R1,A

INCR1

DJNZR4,LDBH

LDCH:

RET

ZHISHU:

MOVDPTR,#0E004H;制卡数卡号6264地址

MOVR2,#0FFH

LOOP:

MOVA,#10H;金额低位

MOVX@DPTR,A

INCDPTR

MOVA,#27H;金额高位

MOVX@DPTR,A

INCDPTR

DJNZR2,LOOP

RET

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1