单片机课程设计书.docx
《单片机课程设计书.docx》由会员分享,可在线阅读,更多相关《单片机课程设计书.docx(17页珍藏版)》请在冰豆网上搜索。
![单片机课程设计书.docx](https://file1.bdocx.com/fileroot1/2022-12/11/9b95a8b0-68c2-406e-bb80-5b717b4877a2/9b95a8b0-68c2-406e-bb80-5b717b4877a21.gif)
单片机课程设计书
镇江高等专科学校
单片机课程设计任务书
设计题目:
基于单片机的纯水机控制电路板设计
系部:
电子信息系
专业:
应用电子技术
学生姓名:
学号:
起迄日期:
年月日~年月日
指导教师:
教研室主任:
单片机课程设计任务书
一.设计目的
(1)理解以单片机AT89C2051为核心的纯水机控制电路
(2)学会用汇编语言编写单片机与AT89C2051的接口程序
(3)掌握PROTEUS的设计电路,编写汇编语言程序汇编,仿真和仿真调试等技术。
二.设计功能
(1)制纯净水。
(2)制水已满后自动停止制水,在图一中用按下‘制水已满’开关表示。
制水电动机、冲洗电动机不运行,数码管显示‘8’。
(3)自来水断水警报,在图一中用按下‘断水报警’开关表示。
制水电动机、冲洗电动机不运行,数码管闪烁显示‘0’,并发出警报声。
(4)定期冲洗纯水机净水装置(按‘定期冲洗’开关)。
制水电动机、冲洗电动机运行,数码管闪烁显示‘F’。
冲洗40S左右后,自动回到冲洗前的状态。
三.设计所用到的元器件(中英文对照)
7SEG-COM-AN-GRN(带公共端共阳极七段绿色数码管)DIODE(二极管)
10WATT68R(10瓦68欧电阻)G5CLE-14-DC24(继电器)
7805(稳压管)LED-GREEN(绿色发光二极管)
AT89C2051(89C2051单片机)MOTOR(直流电机模型)
BRIDGE(整流桥)RES(电阻)
BUZZER(蜂鸣器)RX8(排阻)
BUTTON(按钮)SW-SPDT(带锁单刀按钮)
CAP(电容)TIPP112(达林顿三极管)
CAP-ELEC(电解电容)ZTX550(中功率三极管)
四.电路设计及电路图
1.电路设计
如图一所示是以单片机AT89C2051为核心的纯水机控制板电路原理图
(1)两电动机的驱动与控制电路
(2)24V和5V的电源电路
(3)其余部分为单片机89C2051控制电路
2.电路图(图一)
五.程序
LOWPBITP3.0
HIGHPBITP3.1
QBRUSHBITP3.2
INWFBITP3.3
BRUSHBITP3.4
LABABITP3.7
T01EQU32H
T02EQU33H
T03EQU34H
T011EQU35H
ORG00H
AJMPMAIN
ORG0BH
RETI
ORG1BH
AJMPT1F
ORG0030H
D1S:
MOVR1,#5
SJMPD501
D50MS:
MOVR1,#1
D501:
MOVR2,#200
MOVR7,#0
D50MS1:
DJNZR7,$
MOVTL0,#0
MOVTH0,#0
DJNZR2,D50MS1
DJNZR1,D501
RET
BRUSHF:
MOVP1,#1DH
CLR21H
ACALLD1S
JNBLOWP,BSH0
ACALLD1S
JNBLOWP,BSH0
ACALLD1S
JNBLOWP,BSH0
LJMPBAOJIN
BSH0:
SETBBRUSH
SETBINWF
SETBLABA
MOVR6,#60
MOVR5,#10
MOVTL1,#LOW(15536)
MOVTH1,#HIGH(15536)
SETBTR1
SETB22H
CLR23H
BSH1:
MOVTL0,#0
MOVTH0,#0
SETBLOWP
JNBLOWP,BSH2
ACALLD1S
JNBLOWP,BSH2
ACALLD1S;
JNBLOWP,BSH2
LJMPBAOJIN
BSH2:
JNB23H,BSH1
CJNER6,#0,BSH1
BSH3:
MOVR4,#0
MOVP3,#8FH
CLR22H
CLR23H
RET
MAIN:
MOVP3,#87H
SETBTR0
CLRTR1
MOVP1,#1DH
ACALLD1S
ACALLD1S
ACALLD1S
MOVA,P3
MOV36H,A
ACALLD1S
MOVA,P3
CJNEA,36H,MAIN
ACALLD1S
ACALLD1S
MOVA,P3
CJNEA,36H,MAIN
ACALLD1S
ACALLD1S
MOVA,P3
CJNEA,36H,MAIN
ACALLD1S
ACALLD1S
MOVA,P3
CJNEA,36H,MAIN
MOV24H,#0
MOVSP,#7
SETBEA
SETBET0
SETBET1
MOVT01,#0
MOVT02,#0
MOVT03,#0
MOVT011,#0
MOVTMOD,#11H
STAR:
ACALLD50MS
MOV24H,#0
SETB24H
ST1:
MOV37H,#3
ST21:
SETBLOWP
JNBLOWP,ST10
ACALLD1S
DJNZ37H,ST21
CLR24H
AJMPBAOJIN
ST10:
SETBQBRUSH
JBQBRUSH,ST12;
ACALLBRUSHF
ST12:
MOV37H,#3
ACALLD50MS
JNBHIGHP,ST2
ST11:
SETBHIGHP
JNBHIGHP,ST12
ACALLD1S
DJNZ37H,ST11
AJMPWFULL
ST2:
ACALLD1S
JBHIGHP,ST12
DJNZ37H,ST2
MAKEW:
CLR24H
CLRBRUSH
SETBTR1
SETBINWF
MOVR3,#0
MOVR4,#0
MOVTL1,#LOW(15536)
MOVTH1,#HIGH(15536)
ACALLD50MS
MKW:
MOVTL0,#0
MOVTH0,#0
SETBINWF
CLRBRUSH
SETBQBRUSH
NOP
NOP
CLR20H
JBQBRUSH,MKW1
ACALLBRUSHF
SETBTR1
SETBINWF
MKW1:
NOP
MOV37H,#3
MKW10:
SETBLOWP
JNBLOWP,MKW11
ACALLD1S
DJNZ37H,MKW10
AJMPSTAR
MKW11:
MOV37H,#3
MKW12:
SETBHIGHP
JNBHIGHP,MK1
ACALLD1S
DJNZ37H,MKW12
AJMPWFULL
MK1:
NOP
MOVA,T011
CJNEA,#144,MK2
MK2:
NOP
JNCMK4
MOVA,T03
CJNEA,#24,MK3
MK3:
NOP
JCMKW
ACALLBRUSHF
SETBTR1
SETBINWF
MOVT03,#0
AJMPMKW
MK4:
CLRLABA
CLRTR0
CLRTR1
CLRP3.3
CLRP3.4
MK5:
MOVP1,#5
ACALLD1S
XRLP1,#0FAH
NOP
NOP
CPLP3.7
ACALLD1S
SJMPMK5
WFULL:
SETB20H
ACALLD50MS
SETBTR1
SETBLABA
MOVP1,#0
WF1:
CLRBRUSH
CLRINWF
ACALLD50MS
JBQBRUSH,WF2
ACALLBRUSHF
CLRINWF
SETBTR1
SETB20H
MOVP1,#0
WF2:
JNBHIGHP,WF3
MOVA,T03
CJNEA,#24,WF20
WF20:
NOP
JCWF1
ACALLBRUSHF
CLRINWF
SETBTR1
MOVP1,#0
MOVT03,#0
AJMPWF1
WF3:
MOV37H,#3
WF31:
SETBHIGHP
JBHIGHP,WF1
ACALLD1S
DJNZ37H,WF31
WF40:
CLR20H
MOVT011,#0
MOVR3,#5
CLRTR1
WF4:
ACALLD1S
DJNZR3,WF4
AJMPSTAR
BAOJIN:
CLRTR1
CLRTR0
CLR21H
CLR22H
CLR23H
CLR24H
MOVP1,#40H
BJ0:
MOVP3,#87H
JBLOWP,BJ00
MOV37H,#3
BJ1:
SETBLOWP
JBLOWP,BJ00
ACALLD1S
DJNZ37H,BJ1
AJMPMAIN
BJ00:
CLRTR1
MOVP1,#40H
CPLP3.7
ACALLD1S
XRLP1,#0BFH
CPLP3.7
ACALLD1S
SJMPBJ0
TAB:
DB0FDH,0F9H,0F1H,0E1H,0C1H,41H,1
AJMPMAIN
T1F:
PUSHACC
PUSHPSW
MOVTL1,#LOW(15536)
MOVTH1,#HIGH(15536)
JB22H,BRSHT
JNB24H,T1F0
LJMPT1F2
T1F0:
INCR3
CJNER3,#10,WTD2
MOVR3,#0
JB20H,WTD2
MOVA,R4
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP1,A
INCR4
CJNER4,#7,WTD2
MOVR4,#0
WTD2:
INCT01
MOVA,T01
JNZT1F1
INCT02
T1F1:
MOVA,T02
CJNEA,#HIGH(11970),T1F2
MOVA,T01;
CJNEA,#LOW(11970),T1F2
MOVT01,#0
MOVT02,#0
INCT03
INCT011
T1F2:
POPPSW
POPACC
RETI
BRSHT:
DJNZR5,T1F2
MOVR5,#10
CPL21H
JNB21H,T0F1
MOVP1,#0FFH
SJMPT0F2
T0F1:
MOVP1,#1DH
T0F2:
DJNZR6,T1F2
SETB23H
CLR22H
SJMPT1F2
AJMPMAIN
AJMPMAIN
AJMPMAIN
AJMPMAIN
AJMPMAIN
AJMPMAIN
LJMP7FDH
ORG7FDH
LJMPMAIN
END
单片机课程设计任务书
六.调试与仿真
1.PROTEUS电路设计
根据图一所示的原理图及元器件列表,在PROTEUSISIS中进行电路设计。
完成后的结果如图二所示,以文件名Z1253-1.DSN存盘。
PROTEUSISIS电路仿真中,复位电路、外接振动或外振动源电路都不可设计。
这是因为仿真按钮已有上电复位功能,由外接振动元件或外振动决定的时钟频率可通过单片机属性设置来设定。
当然也可以设计上,特别是在运行过程中要求按键复位时,则一定要设计按键复位电路。
当要通过PROTEUS进行PCB设计时一定都要设计上。
2.PROTEUS程序设计
PROTEUS程序设计包括程序编程、汇编、下载。
按3.4节的叙述和12.5.2节的汇编语言程序,在PROTEUSISIS中单击菜单选项‘source’,进行添加程序文件、编写程序、汇编程序生成目标代码等操作。
程序名为Z1253-1.ASM,汇编生成目标代码文件Z1253-1.HEX.
PROTEUS高版本汇编后自动将最后的目标代码文件下载到单片机中。
也可通过单片机属性设置,将其下载到单片机中。
打开单片机属性设置对话框,在‘clockfrequency’栏中设定时钟频率,本例为24MHz。
3.PROTEUS仿真
上述各步骤正确完成后,则可单击仿真工具按钮中的按键‘开始’进行全速仿真。
仿真片段如图二所示。
操作制水已满选择开关、断水报警选择开关和定期冲洗按钮,便可看到期望的仿真效果。
图二
七.技术要点
本控制板的基础硬件和软件设计均不算复杂,但实际操作时回碰到不少问题,特别是电磁干扰问题。
因电动机、电磁阀、继电器等启动、运行、停运时都可产生较大的电磁干扰,致使控制板不能正确、稳定、长时间工作。
为此,必须采取抗干扰措施。
一般可采用硬件抗干扰措施和软件可干扰措施。
1.硬件抗电磁干扰措施
电磁屏蔽电动机、电源去耦、合理布置器件(如使继电器远离垫片及振荡电路)、合理布线等。
2.软件抗电磁干扰措施
1)延时且多次判定电平的抗电磁干扰技术
纯水机有多个电磁阀:
判断有无自来水的进水电磁阀,判断所制纯进水是否满的电磁阀等。
它们工作时会传输给单片机I/O口高电平信号、低电平信号或阶跃电信号。
单片机工作时不断检查相关I/O口的电平状态,以便做出响应。
显然,要响应正确,电磁阀传输给单片机I/O口上的电信号应该正确。
但是,电磁阀无论在电平稳定或电平改变状态时,都受到自身或其他电磁器件(如电动机、继电器等)的电磁干扰。
为了抗电磁干扰,本控制板软件设计中采用了延时且多次判断电平的技术。
当单片机检查到相关I/O口上电平变化是并不立即响应,而是延时一段时间(具体延时时间由设计者决定)再检查电平,反复几次(次数有设计者决定),当几次都获得相同结果时,单片机才确认并做出相应的响应,否则认为是电磁干扰信号而忽略。
这以技术明显地提高了控制板的抗电磁干扰性能,使纯水机能正确、沉稳、长时间工作。
2)指令冗余技术
对重要的指令(如SJMP、JB、CJNC、LCALL等)重复写多个,他们之间可插入几个NOP指令,即使某个指令被电磁干扰跑飞,还可以执行接下来的正确的指令挽回跑飞的程序。
本控制板软件设计中多次运用了该技术,以抗电磁干扰。
3)软件陷阱技术
对于冗余技术解决不了的问题,可采取软件陷阱技术。
软件陷阱技术的本质是一段拦截程序,当失控的程序运行至此后,可以将其迅速引向一个指定的有效位置,在此有专门的错误处理代码,使程序能够回到正确的程序段。
本控制板软件设计中多次运用了该技术,以抗电磁干扰。
八.实验心得:
通过本次实验我更加了解51单片机的内部结构。
设计之前必须的了解51单片机的内部结构。
由于上学期51单片机的了解不够深,致使实验走了好多弯路。
通过上学期的学习,我们了解到编写一个题目的程序有很多种方法,所以,我们要充分利用我们所学的知识在编程时尽量鲜明简洁,易读性强,可行性高等。
在这次实验给我好多启发:
1、态度决定一切。
不管做什么事,态度是很重要的。
从做事的态度可以看到一个人的性格。
如果没有将自己态度调整好,没有认真对待,就算很简单的小事情也不会做好的,在良好的态度下工作时,可以提高自己的做事效率。
循序渐进,相信自己一定会得到令自己满意的答案。
2、要学会计划。
没有一个完美的计划,做起事情来就像是无头苍蝇,不知该从哪里下手。
当我们将要做的事情计划好,那些先做那些事最后做,这样就会很有条理性,做起事来也会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。
这样才能提高成功率。
3、细节决定成败。
往往因为一个细节导致了最后的失败,这是我们常犯的错误。
所以我们要注意细节,不能因一个小的细节,而使我们所编写的程序无法运行。
通过这次课题,我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解。
能够更好的将所学的知识运用到实际生活中。
电子领域发展迅速,现有的知识储备总是落后于科技的发展脚步,我们只有不断学习新知识,才能立足于电子领域。
4.课程设计工作进度计划:
序号
起迄日期
工作内容
主指导教师
亲笔签名
日期:
年月日