单片机课程设计报告投票统计器.docx
- 文档编号:6971362
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:15
- 大小:65.68KB
单片机课程设计报告投票统计器.docx
《单片机课程设计报告投票统计器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告投票统计器.docx(15页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告投票统计器
单片机课程设计报告
——投票统计器
专业:
电气工程及其自动化
班级:
学号:
姓名:
日期:
2011-7-2
一、设计目的
综合运用单片机的主要性能,完成一个实用电路的设计和制作,利用MSC-51单片机为控制核心,设计拥有投票统计功能的从机,用于表决活动,并将统计结果实时上传主机并将器片机应用系统设计》北京航空航天大学出版社。
通过简易投票系统实现数据的统计与远程传送。
二、实验器材
计算机一台,
Proteus仿真软件
wave6000编程软件
三、设计要求
1.有五个人参与投票,每个人有同意、不同意、弃权三个按键,单片机分别统计三种键的人数,并用动态显示方式显示投票结果。
2.保证每人仅能投一次票,再投则无效。
3.六个数码管可以显示同意、不同意、弃权的数量。
4.主从机分别设有复位键,按下键时两个单片机重新启动。
5.主机向从机发送的05H时,从机则回发给主机05H,而主机通过八个发光二极管显示接收到05H(以二进制形式显示)。
当主机发的不是AAH时,从机能独立运行,统计同意、不同意、放弃的数量,并用数码管显示投票结果;当主机向从机发送AAH时,从机向主机发送当前投票结果,此后,主从机同步显示投票结果。
(设从机地址为05H)。
四、
硬件原理图
AT89C51接口图
单片机为AT89C51,其中U1为主机,U2为从机,通过XTAL1和XTAL2引入时钟信号。
主机通过P0口输出段码,P1口控制七段数码管的位选信号,P2口用于显示接收的05H。
从机的P0口的0、1、2、3、4用于键盘的行线,5、6、7用于键盘的列线,CPU通过扫描行列线得知哪个键被按下;P1口控制七段数码管的位选信号,P2口用于输出段码。
主从机分别通过复位键控制;P0口用于输出时需加上拉电阻。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
系统流程图
主机:
从机:
五、软件源程序
1.主机:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVTMOD,#20H
MOVTL1,#0FAH
MOVTH1,#0FAH
MOVSCON,#50H
MOV40H,#00H
MOV41H,#00H
MOV42H,#00H
MOVPCON,#00H
CLRTI
CLRRI
SETBTR1
MOVSBUF,#05H
SS1:
JNBTI,SS1
CLRTI
SS2:
JNBRI,SS2
CLRRI
MOVA,SBUF
MOVP2,A
MOVA,#0AAH
;MOVA,#12H
MOVSBUF
LOP2:
JNBRI,LOP2
CLRRI
MOVA,SBUF
MOV40H,A
LOP3:
JNBRI,LOP3
CLRRI
MOVA,SBUF
MOV41H,A
LOP4:
JNBRI,LOP4
CLRRI
MOVA,SBUF
MOV42H,A
ACALLHBCD
ACALLFONT
ACALLDISP
AJMPLOP2
HBCD:
MOVA,40H
MOVB,#10
DIVAB
MOV31H,B
MOV30H,A
MOVA,41H
MOVB,#10
DIVAB
MOV33H,B
MOV32H,A
MOVA,42H
MOVB,#10
DIVAB
MOV35H,B
MOV34H,A
RET
FONT:
MOVR2,#6
MOVR0,#30H
FT:
MOVA,@R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV@R0,A
INCR0
DJNZR2,FT
RET
TAB:
DB3FH,06H,5BH,4FH
DB66H,6DH,7DH,07H
DB7FH,6FH
DISP:
MOVR1,#6
MOVA,#0FEH
MOVR0,#30H
LOOP2:
MOVP1,A
MOVP0,@R0
MOVR6,#0ffH
S0:
DJNZR6,S0
INCR0
RLA
DJNZR1,LOOP2
RET
2.从机
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVP2,#0
MOVTMOD,#20H
MOVTL1,#0FAH
MOVTH1,#0FAH
MOV20H,#00H
MOV21H,#00H
MOV40H,#00H
MOV41H,#00H
MOV42H,#00H
MOVPCON,#00H
CLRTI
CLRRI
MOVSCON,#50H
SETBTR1
DLOP0:
JNBRI,DLOP0
CLRRI
MOVA,SBUF
CJNEA,#05H,DLOP0
MOVSBUF,A
DLOP1:
JNBTI,DLOP1
CLRTI
DLOP2:
JNBRI,DLOP2
CLRRI
DLP2:
LCALLKEY
LCALLHBCD
LCALLFONT
LCALLDISP
MOVA,SBUF
CJNEA,#0AAH,DLP2
LOOP:
LCALLKEY
LCALLFA
LCALLHBCD
LCALLFONT
LCALLDISP
AJMPLOOP
FA:
MOVA,40H
MOVSBUF,A
DLOP3:
JNBTI,DLOP3
CLRTI
MOVA,41H
MOVSBUF,A
DLOP4:
JNBTI,DLOP4
CLRTI
MOVA,42H
MOVSBUF,A
DLOP5:
JNBTI,DLOP5
CLRTI
RET
HBCD:
MOVA,40H
MOVB,#10
DIVAB
MOV31H,B
MOV30H,A
MOVA,41H
MOVB,#10
DIVAB
MOV33H,B
MOV32H,A
MOVA,42H
MOVB,#10
DIVAB
MOV35H,B
MOV34H,A
RET
KEY:
MOVP0,#1FH
CLRP0.5
SETBP0.6
SETBP0.7
JNBP0.0,LOOP0
L1:
JNBP0.1,LOOP1
L2:
JNBP0.2,LOOP2
L3:
JNBP0.3,LOOP3
L4:
JNBP0.4,LOOP4
AJMPNEXT0
LOOP0:
JB00H,L1
JB05H,L1
JB10H,L1
INC40H
SETB00H
AJMPL1
LOOP1:
JB01H,L2
JB06H,L2
JB11H,L2
INC40H
SETB01H
AJMPL2
LOOP2:
JB02H,L3
JB07H,L3
JB12H,L3
INC40H
SETB02H
AJMPL3
LOOP3:
JB03H,L4
JB08H,L4
JB13H,L4
INC40H
SETB03H
AJMPL4
LOOP4:
JB04H,NEXT0
JB09H,NEXT0
JB14H,NEXT0
INC40H
SETB04H
NEXT0:
MOVP0,#1FH
CLRP0.6
SETBP0.5
SETBP0.7
JNBP0.0,LOP0
LL1:
JNBP0.1,LOP1
LL2:
JNBP0.2,LOP2
LL3:
JNBP0.3,LOP3
LL4:
JNBP0.4,LOP4
AJMPNEXT1
LOP0:
JB00H,LL1
JB05H,LL1
JB10H,LL1
SETB05H
INC41H
AJMPLL1
LOP1:
JB01H,LL2
JB06H,LL2
JB11H,LL2
SETB06H
INC41H
AJMPLL2
LOP2:
JB02H,LL3
JB07H,LL3
JB12H,LL3
SETB07H
INC41H
AJMPLL3
LOP3:
JB03H,LL4
JB08H,LL4
JB13H,LL4
SETB08H
INC41H
AJMPLL4
LOP4:
JB04H,NEXT1
JB09H,NEXT1
JB14H,NEXT1
SETB09H
INC41H
NEXT1:
MOVP0,#1FH
CLRP0.7
SETBP0.5
SETBP0.6
JNBP0.0,LP0
LLL1:
JNBP0.1,LP1
LLL2:
JNBP0.2,LP2
LLL3:
JNBP0.3,LP3
LLL4:
JNBP0.4,LP4
AJMPNEXT2
LP0:
JB00H,LLL1
JB05H,LLL1
JB10H,LLL1
SETB10H
INC42H
AJMPLLL1
LP1:
JB01H,LLL2
JB06H,LLL2
JB11H,LLL2
INC42H
SETB11H
AJMPLLL2
LP2:
JB02H,LLL3
JB07H,LLL3
JB12H,LLL3
INC42H
SETB12H
AJMPLLL3
LP3:
JB03H,LLL4
JB08H,LLL4
MOVCA,@A+DPTR
MOV@R0,A
INCR0
DJNZR2,FT
RET
TAB:
DB3FH,06H,5BH,4JB13H,LLL4
INC42H
SETB13H
AJMPLLL4
LP4:
JB04H,NEXT2
JB09H,NEXT2
JB14H,NEXT2
INC42H
SETB14H
NEXT2:
RET
FONT:
MOVR2,#6
MOVR0,#30H
FT:
MOVA,@R0
MOVDPTR,#TAB
FH
DB66H,6DH,7DH,07H
DB7FH,6FH
DISP:
MOVR1,#6
MOVA,#0FEH
MOVR0,#30H
DLOOP2:
MOVP1,A
MOVP2,@R0
MOVR6,#0ffH
S0:
DJNZR6,S0
INCR0
RLA
DJNZR1,DLOOP2
RET
六、实习心得
通过本次单片机课程设计的学习,我学习并熟悉了怎样用单片机实现简易的投票统计器的制作。
此外,在这近一周的学习里,使我加深了对单片机的汇编指令的了解和应用,并且对小学期有了更深入的体会。
从对proteus初步了解到熟练运用,从对键盘程序的茫然到熟练编程,既有心酸也有喜悦,不过终归完成了实习目的。
在完成一个工程时,细节决定成功,在我连调试时发现好多意想不到的错误,都是因为在程序设计时考虑不周到所造成的。
例如:
在我们由于在显示时所设计的延时参数不等,因此数码管显示总是闪烁不定,通过合理的设计端点和认真阅读分析程序才找出原因。
在程序编写时一定要考虑在整体中自己程序的功能,并且要考虑整体的实现方式与自己编写的相吻合。
分组完成一个项目,每个人都是其中的一员都是整体的一部分,因此时刻要考虑的不仅是自己完成的功能,还要考虑以什么样的形式放到整体中。
在该次课程设计中,重点和难点是主从机总体编程以实现双机通信。
不过当遇到不懂的问题时,也会与别人一起讨论对策,经过商讨往往能找到解决办法。
唯一的不足是人数太少,只有五人15个键,没有达到十人30个键的目标,我会继续努力,争取逐步提高自己在单片机应用方面的能力,进一步完善投票器的功能。
八、参考文献
1.高峰.2007《单片微型计算机原理与接口技术》.科学出版社
2.包亚萍.2003《数字逻辑设计与数字电路实验技术》中国水利出版社
3.何立民.1990《MCS-51系列单片机应用系统设计》北京航空航天大学出版社
4.《集成电路速查手册》
5.上网查阅资料
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 投票 统计