文档库 最新最全的文档下载
当前位置:文档库 › 单片机投票统计器

单片机投票统计器

※※※※※※※※※

※※

※※

※※

※※※※※※※※※

单片机课程设计报告书

课题名称投票统计器

姓名

学号

院、系、部

专业

指导教师

201日

投票统计器

一、设计目的

通过对通票统计器的设计,实现每人有同意、不同意、弃权三种投票功能,并显示投票的动态结果,并做出实物。

二、设计要求

1. 每个人有同意、不同意、弃权三个按键,单片机分别统计三种键的人数,并用动态显示方式显示投票结果。

2.每人仅能投一次票,再投则无效。

3.可显示同意、不同意、弃权的数量。

4.设有复位键。

5. 要求做出实物。

(本机地址为05H,当接到上位机发的05H时,则回发05H当接到上位机发的AAH时,则将投票结果发出)

三、电路及连线设计

硬件电路图

四、使用说明

本实验设计可以实现3个人投票,每人有同意,不同意,弃权三个选项,分别对应开关1、2、3、4、5、6,甲按下1、2、3号开关中的任意一个键进行投票,乙同样动作按下4、5、6中的一个键,丙也同样动作按下7、8、9中的一个键。3人都按键完毕后实现了投票,三个数码管分别显示统计的同意、不同意、弃权的总票数,每人只能投票一次,多投无效。

五、流程图设计

六、程序设计如下:

ORG 0000H ;初始化

AJMP START

ORG 0030H

START: MOV 30H,#00H

MOV R0,#30H

START0:LCALL KEY ;开始键盘扫描 JMP START0

KEY:MOV P3,#70H

MOV A,P3

CPL A

ANL A,#70H

MOV 50H,A

JZ LED ;KEY

LCALL DY500us

MOV P3,#70H

MOV A,P3

CPL A

ANL A,#70H

CJNE A,50H,LED ;KEY

LCALL XYL ;找出行号列号 LCALL JS ;计算具体键号 LCALL LED

OVER1:RET

LED:MOV R0,#30H

MOV R2,#01111111B ;位码选择

LP0:MOV P1,#0FFH

MOV A,R2

MOV P1,A

SETB P2.1

MOV P1,A

CLR P2.1

MOV A,@R0

SETB P2.0

MOV DPTR,#TAB

MOVC A,@A+DPTR ;查表

MOV P1,A ;送出P1显示 CLR P2.0

INC R0

LCALL DY170us

MOV A,R2

SETB C

RR A

JB ACC.4,LP0

RET

XYL:MOV R2,#0FDH

MOV R3,#01H

LL0:MOV P3,R2

MOV A,P3

L0:JB ACC.4,L1

MOV A,#00H

RET

L1:JB ACC.5,L2

MOV A,#01H

RET

L2:JB ACC.6,NEXT

MOV A,#02H

RET

NEXT:MOV A,R2

JNB ACC.3,START0

SETB C

RLC A

MOV R2,A

INC R3

JMP LL0

JS:RL A

RL A

ADD A,R3

REN1:MOV R5,41H ;第一个人是否投票 CJNE R5,#00H,REN2

TY1:CJNE A,#01H,FD1

INC 30H

MOV 41H,#01H

JMP REN2

FD1:CJNE A,#02H,QQ1

INC 31H

MOV 41H,#01H

JMP REN2

QQ1:CJNE A,#03H,REN2

INC 32H

MOV 41H,#01H

REN2:MOV R5,42H ;第二个人是否投票 CJNE R5,#00H,REN3

TY2:CJNE A,#05H,FD2

INC 30H

MOV 42H,#01H

FD2:CJNE A,#06H,QQ2

INC 31H

MOV 42H,#01H

JMP REN3

QQ2:CJNE A,#07H,REN3

INC 32H

MOV 42H,#01H

REN3:MOV R5,43H ;第三个人是否投票 CJNE R5,#00H,OVER

TY3:CJNE A,#09H,FD3

INC 30H

MOV 43H,#01H

JMP OVER

FD3:CJNE A,#0AH,QQ3

INC 31H

MOV 43H,#01H

JMP OVER

QQ3:CJNE A,#0BH,OVER

INC 32H

MOV 43H,#01H

OVER:RET

DY170us:MOV R1,#5

MOV R5,#17

DL:DJNZ R1,DL

DJNZ R5,DL

RET

DY500us:MOV R6,#50

MOV R7,#50

DLL:DJNZ R6,DLL

DJNZ R7,DLL

RET

TAB:DB 3FH,06H,5BH,4FH,66H ;表

SJMP $

END

七、设计总结:

这是这个学期的最后一次实验,是一个综合实验。开始还以为特别难,后来慢慢也就做下来了,虽然做的不是特别好。通过一个学期的学习发现《单片机》的确是一门很有用的课程,对今后的学习工作有很大的帮助,因为单片机目前在社会中有在和极其广泛的用途,各个地方都离不开它的。但是我觉得就我们在课堂上学到的这点知识还是极其有限的,更多的东西还靠我们自己去课下学习。老师只起到一个引导我们学习的作用,关键还是在于我们自己,这就是所谓的“师傅领进门,修行在个人”吧。冰冻三尺非一日之寒,滴水穿石非一时之功,谨以此自勉!

通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际。

再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。

八、参考文献:

[1] 高峰.单片微型计算机原理与接口技术.科学出版社,2007

[2] 刘守义.单片机技术基础[M].西安电子科技大学出版社,2007

[3]李广弟.单片机基础[M].北京航空航天出版社,2001

相关文档
相关文档 最新文档