定时消毒碗柜课程设计报告.docx

上传人:b****5 文档编号:6219206 上传时间:2023-01-04 格式:DOCX 页数:43 大小:2.90MB
下载 相关 举报
定时消毒碗柜课程设计报告.docx_第1页
第1页 / 共43页
定时消毒碗柜课程设计报告.docx_第2页
第2页 / 共43页
定时消毒碗柜课程设计报告.docx_第3页
第3页 / 共43页
定时消毒碗柜课程设计报告.docx_第4页
第4页 / 共43页
定时消毒碗柜课程设计报告.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

定时消毒碗柜课程设计报告.docx

《定时消毒碗柜课程设计报告.docx》由会员分享,可在线阅读,更多相关《定时消毒碗柜课程设计报告.docx(43页珍藏版)》请在冰豆网上搜索。

定时消毒碗柜课程设计报告.docx

定时消毒碗柜课程设计报告

一、题目:

用单片机模拟消毒碗柜的工作过程+液晶显示(03)

二、目的与要求:

1.目的:

培养学生综合利用汇编语言进行程序设计的能力。

2.基本要求:

能够模拟消毒碗柜的基本工作过程。

三、设计方法和基本原理:

1.问题描述:

消毒碗柜可以定时对碗筷等进行消毒,当用户放入碗筷,关闭厨门并且按下开始按钮以后,消毒开始,10分钟以后自动结束,目前采用的比较广泛地消毒方式是臭氧消毒,如果中途用户开门,则必须立即停止消毒,防治臭氧泄漏。

2.问题的解决方案:

(1)鉴于实际条件的限制,我们只是从试验板上模拟这个过程,可以利用红绿灯的亮灭来模拟消毒状态,用拨动开关来模拟厨门,用外部中断来模拟开始消毒的按钮。

(2)可以用软件延时的办法,利用内存单元来存储定时中断的数量,配合定时中断实现长时间定时。

四、主要技术问题的描述:

本题内容比较简单,主要技术点有如下几个:

(1)主程序可以采用循环的办法,不断检测厨门的状态,在已经开始消毒的前提下,确定是否应该停止消毒。

(2)在开始消毒的中断中,应该首先检测厨门状态,才确认是否可以启动消毒,如果厨门没有关闭,应该提示用户(可以用一个灯来模拟)并拒绝消毒。

(3)开始消毒的中断中,启动定时中断,定时完成以后应该关闭消毒过程并禁止定时中断本身再次中断。

五、书写设计报告的要求:

设计报告中包含以下几个方面:

1、设计题目

2、总体设计

1)所实现的功能描述

2)设计方案的描述

3、硬件系统设计,包括所需设备,接线方式,以及资源分配。

4、软件系统的设计,包括划分功能模块,写出各个功能模块实现的功能。

画出程序流程图

5、列出程序清单,并加以必要的注释

6、写出调试程序的方法

7、指出所设计问题的不足和改进方案

8、自评分和收获体会

六、课程设计的考核方式及评分方法

1.考核方式

课程设计结束时,在机房当场验收。

1.学生演示,老师检查运行结果是否正确。

2.回答教师提出的问题。

3.学生提交课程设计报告(A4纸打印),并将电子文档和源程序发至知道教师信箱。

2.评分方法

(1)出勤率

(2)课程设计准备工作

(3)课程设计期间纪律

(4)课程设计运行结果

(5)课程设计报告

(6)答辩情况

 

目录:

 

一.题目…………………………………………………………4页

二.问题的提出…………………………………………………4页

三.总体设计……………………………………………………4页

四.详细设计……………………………………………………5页

五.调试程序的方法……………………………………………8页

六.你所设计的程序最终完成的功能…………………………9页

七.对该设计题目有何更完善的方案………………………12页

八.收获及心得体会…………………………………………12页

九.附录:

程序清单…………………………………………13页

河北工业大学计算机硬件技术基础(2010)

课程设计报告

学院

理学院

班级

物理C071

成绩

姓名

梁少锋

学号

073009

同组人

陶磊

学号

073012

一、题目

用单片机模拟消毒碗柜的工作过程+液晶显示(03)

二、问题的提出

定时消毒碗柜是现代化生活中不可缺少的电器,给家庭生活带来方便和卫生。

这个学期我们学习了单片机硬件技术技术这门课,从中获益匪浅,希望将所学得以应用。

于是设计了这样一个程序来模拟定时消毒的目的。

(1)培养综合运用所学单片机知识来解决生活中常见问题的能力。

(2)掌握单片机的接口技术及相关外围芯片的外特性和控制方法。

(3)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(4)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。

三、总体设计

1、分析问题的功能

(1)通过软件编程利用8051单片机内部定时器实现对消毒的定时,开关模拟消毒柜的门,外部中断实现消毒开始命令。

(2)设计中加入了液晶的同步显示,可以提示用户消毒的状态,如进行、暂停、结束。

2、系统总体结构设计

(1)硬件设计:

根据问题需要确定单片机、I/O接口、定时器、I/O设备、中断等设备设备的应用;实验平台是DP-51PROC实验箱,用的是TKSMONITOR51仿真器,采用NXP(foundedbyPhilips)的P89C52X2型号单片机,晶振频率为11.0592MHz。

用到的I/O接口有P0.0,P0.1,P0.2,P1,P2.0,P2.1,P2.2,P3.2,P3.5等,用到了外部中断INT0、INT1,内部定时器计数器T/C0、T/C1,锁存器,74LS138译码器,输出设备有:

液晶屏、蜂鸣器、LED灯、输入设备:

1*8按键中的KEY1、KEY2,开关SW1。

(2)软件设计:

主要功能分两大模块,即定时模块,液晶显示模块.

其中定时为主要模块,在定时的过程中根据需要调用液晶显示,并进行蜂鸣提醒。

四、详细设计:

1、硬件详细设计:

1)1液晶显示部分电路图;

 

1)2八段显示和消毒部分电路图:

 

2)进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。

用途介绍:

(1)SDA为总线定义,串行数据存取位;SCL为总线定义,串行时钟位;RST为MCU复位输出信号,低电平复位ZLG7290,用于倒计时的显示。

(2)P1.4与开关相连,控制门的关闭;INT1与按键1相连,控制消毒按钮,P1.2与LED1相连,根据亮灭判断门的开关;P1.3与LED2相连,判断消毒状态的进行;整个相连用于消毒过程。

(3)P0与P2口为外部总线扩展,其中P0口接锁存器后组成地址总线的低八位,低八位中的低三位分别接液晶屏的D/I,R/W,CS1控制端口,P0口不接锁存器直接与液晶屏的数据接口(DB0~DB7)相连。

P2口为地址总线的高八位,用于选择液晶屏的右半屏,其中实验箱内部已将CS1与CS2进行非链接,可以保证同时只会有一块显示屏被选中。

P3.2使用第二功能外部中断0,用来控制屏幕的切换。

P1.0用于控制液晶屏的复位操作。

总体用来静态和动态显示消毒状态,实现了液晶的显示。

下面以表格的形式列出所有的硬件连接:

串行口

器件引脚

P1.0

液晶RST

P1.1

T1

P1.2

LED1

P1.3

LED2

P1.4

SW1

P3.1

BUZZ

P3.2(INT0)

KEY2

P3.3(INT1)

KEY1

P3.4(T0)

不接线

P3.5(T1)

P1.1

A0

D/I

A1

R/W

A2

CS1

Y0

CS

A15

G2A

A14

G2B

A13

G1

A12

C

A11

B

A10

A

2、软件详细设计:

按各功能模块进行程序设计,并说明各功能模块的实现方法。

3、设计中的主要困难及解决方案

在将液晶显示糅合在程序中时,前三张的静态显示可以正常运行,后边的动态显示无法调用,,后来发现是主程序和液晶显示所用的存储单元和地址有冲突,经过调整,程序正常。

五、调试程序的方法

硬件调试方法(确定硬件工作是否正常)

在进行实验之前要对所用到的硬件进行检测,看其是否完好。

再有“图形点阵液晶显示屏驱动"参考程序看液晶显示屏及KYE1是否能正常工作。

在检验个部分都能工作后再由此硬件进行设计实验。

特别应注意的是在进行硬件连线一定得在断电的情况下进行,否则容易烧坏仪器。

软件调试方法(如何调试程序的方法)

在程序无法正常运行的时候,采用单步运行,查看每一步程序时是否正常,发现不能执行的地方就是问题的所在;在某个功能不能运行的时候,采用执行到光标处指令,如不能正常跳转,应是循环出现问题或子程序有错误。

比如,在开始调用液晶静态图行的时候,调用完,不能继续执行后边的程序,经研究发现是液晶显示子程序中有死循环,不能跳出,修改后便正常了。

六、你所设计的程序最终完成的功能

(1)我们所编制的定时消毒碗柜+液晶显示程序,首先可以实现对放入其中的碗筷进行定时消毒,并在柜门被中途打开时停止消毒,防止臭氧的扩散,同时可以用液晶显示同步提示用户现在消毒所处的状态,最后消毒完成时会有蜂鸣提示。

准备的测试数据,将以图解说明。

七、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

程序在基本要求的基础上,进行了全面的创新,包含了基本的单片机知识点,融会贯通。

将中断控制消毒以及中断级联延时等各个方面融到一起,液晶动态显示融入其中,达到了较高的单片机应用与创新水平。

对本次课程设计,我们倾注了很大的心血,使任务书中所要求的功能圆满的实现,并在此的基础上,加入了创新功能,如液晶同步显示及蜂鸣器的提示音等,使消毒碗柜更加贴近生活,贴近实际应用。

此外这个设计还可以应用到其他需要计时及显示的用具中,大大增加其使用价值。

2、对课题提出更完善的方案。

定时消毒碗柜基本程序简单,却运用的知识广泛,在此基础上可以将其它的课题和此课题合二为一,运用中断的嵌套等解决问题。

八、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

对单片机的基本理论有了更深刻的理解和掌握,通过查阅资料和文件,扩大了自己又一个领域的知识面,掌握了一门新的技能。

在编程的过程中,逻辑思维能力及实践能力,创新能力,合作能力以及学习能力都得到了全面的提高。

2、收获和心得体会。

首先,谢谢赵老师在这半年来对我们的谆谆教导,不仅仅是在学习方面,更重要的是老师让我们学会了创新,学会了自己思维,动手的能力,并且在人生观、价值观给予了很多很多耐人寻味的道理。

通过这门课程的学习,我懂得了要努力去争取,努力去创造,正直加奋斗才等于成功。

最后希望老师身体健康、万事如意!

日期:

2010年月日

 

程序清单:

LCD_WR_CMD1XDATA2004H

;THECONSTANTSOFTHECOMMAND,THE1REPRESENTTHELEFT

LCD_WR_DATA1XDATA2005H

;SCREEN,ANDTHE2REPRESENTTHERIGHTSCREEN

LCD_WR_CMD2XDATA2000H

LCD_WR_DATA2XDATA2001H

LCD_IS_BUSY1XDATA2006H

LCD_IS_BUSY2XDATA2002H

LCD_RSTBITP1.0

LCD_DISP_ONEQU3FH

;THEEQUISTHECONSTANTSANDTHEDATAISTHEVARIABLES

LCD_DISP_CLREQU00H

LCD_ADDZ_ZEROEQU0C0H

;THEFIRSTDISPLAYLINE

LCD_ADDX_ZEROEQU0B8H

LCD_ADDX_ENDEQU0C0H

LCD_ADDY_ZEROEQU40H

LCD_DISP_BUFDATA0EH

LCD_DATA_BUFDATA02H

LCD_CMD_BUFDATA02H

LCD_XDATA08H

;THELEFT-UPLOCATION'SINTHEX-COORDINATE

LCD_YDATA09H

SIZE_XDATA0AH

;SIZE_X*8ISTHEDISPLAYEDAREA'SSIZEINTHEROWDIRECTION

SIZE_YDATA0BH

;THEDISPLAYEDAREA'SSIZEINTHECOLMUNDIRECTION

START_XDATA0CH

;INTHEACTIVEDISPALY,IT'STHEFIRSTAREA'SLCD_X

START_YDATA0DH

ORG8000H

LJMPMAIN

ORG8003H

SETBF0

RETI

ORG8013H;外部中断1入口地址

LJMPTOP1

ORG800BH;定时器0入口地址

LJMPTOP3

ORG801BH;定时器1入口地址

LJMPTOP5

ORG8100H

;-------主程序如下:

MAIN:

MOVSP,#70H;堆栈区从70H开始

SETBEA

SETBEX0

SETBIT0

CLRF0

ACALLLCD_INIT

LCALLFIRST_SCREEN

LCALLSECOND_SCREEN

LCALLTHIRD_SCREEN

MOVTMOD,#51H;1为计数0为定时

MOVTH1,#0FFH;计数100个

MOVTL1,#9CH

MOVTH0,#3CH;延时50ms

MOVTL0,#0B0H

MOVIE,#10001111B;申请中断

CLRRS0

SETBRS1

SETBIT1;采用边缘触发外部中断1下降眼厨房

SETBP1.2;门显示灯(灭)

SETBP1.3;消毒指示灯

CLRP1.1;100ms的脉冲(CLR清0)

WELL:

JBP1.0,WELL1;不断判断门的状态等待中断判断P1.0是1,如果是1就条到WELL1,如果是0就顺序执行

SETBP1.2

SJMPWELL

WELL1:

CLRP1.2

AJMPWELL

TOP1:

JNBP1.0,TOP2;门中断触发判断触发方式(JNB0的时候转到TOP21的时候就一直执行)

CLRP1.2

LJMPNEXT

TOP2:

SETBP1.2;关门启动定时器0

SETBTR0;kaizhongduan1weikaitiaodao

CLRP1.3

SETBTR1

LCALLFIVE_SCREEN

NEXT:

RETI;恢复到中断处

TOP3:

CLRP1.3;消毒指示灯打开

JBP1.0,TOP4

CPLP1.1;每50ms取反一次weilegeip1.1yigemaichong

MOVTH0,#3CH;重新赋值

MOVTL0,#0B0H

LJMPNEXT1

TOP4:

CLRTR0;判断门转移

CLRTR1

SETBP1.3

CLRP1.2

NEXT1:

RETI

TOP5:

CLRTR0;定时器1中断

CLRTR1

SETBP1.3

CLRP1.2

MOVTH1,#0FFH;计数100个

MOVTL1,#9CH

MOVTH0,#3CH;延时50ms

MOVTL0,#0B0H

LCALLSIX-SCREEN

delay2:

MOV7BH,0FFH

LCALLDELAY1

LCALLDELAY1

djnz7BH,DELAY2

LCALLFOUTH_SCREEN

mov35h,#05h

DELAY1:

MOV34H,#05H

DJNZ34H,$

DJNZ35H,DELAY1

RET

RETI

DELAY4:

MOVR5,#00H

DELAY4_L1:

MOVR4,#00H

DJNZR4,$

DJNZR5,DELAY4_L1

RET

DELAY10:

MOVR3,#01H

DL1:

MOVR4,#01H

DL2:

MOVR5,#0FH

DJNZR5,$

DJNZR4,DL2

DJNZR3,DL1

RET

DELAY50:

MOVR3,#04H

DL11:

MOVR4,#0FH

DL22:

MOVR5,#0AFH

DJNZR5,$

DJNZR4,DL22

DJNZR3,DL11

RET

DELAY100:

MOVR3,#06H

DL111:

MOVR4,#0FFH

DL222:

MOVR5,#0FFH

DJNZR5,$

DJNZR4,DL222

DJNZR3,DL111

RET

IS_BUSY1:

;NOPARAMETER

PUSHDPH

PUSHDPL

MOVDPTR,#LCD_IS_BUSY1

MOVXA,@DPTR

JBACC.7,IS_BUSY1

POPDPL

POPDPH

RET

IS_BUSY2:

PUSHDPH

PUSHDPL

MOVDPTR,#LCD_IS_BUSY2

MOVXA,@DPTR

JBACC.7,IS_BUSY2

POPDPL

POPDPH

RET

WR_CMD1:

;THEINPUTPARAMETERISLCD_CMD_BUF

PUSHDPH

PUSHDPL

ACALLIS_BUSY1

MOVDPTR,#LCD_WR_CMD1

MOVA,LCD_CMD_BUF

MOVX@DPTR,A

POPDPL

POPDPH

RET

WR_CMD2:

PUSHDPH

PUSHDPL

ACALLIS_BUSY2

MOVDPTR,#LCD_WR_CMD2

MOVA,LCD_CMD_BUF

MOVX@DPTR,A

POPDPL

POPDPH

RET

WR_DATA1:

;THEINPUTPARAMETERISTHELCD_CMD_BUF

PUSHDPH

PUSHDPL

ACALLIS_BUSY1

MOVDPTR,#LCD_WR_DATA1

MOVA,LCD_DATA_BUF

MOVX@DPTR,A

POPDPL

POPDPH

RET

WR_DATA2:

PUSHDPH

PUSHDPL

ACALLIS_BUSY2

MOVDPTR,#LCD_WR_DATA2

MOVA,LCD_DATA_BUF

MOVX@DPTR,A

POPDPL

POPDPH

RET

DISP_ALL1:

;THEINPUTPARAMETERISLCD_DISP_BUF

MOVLCD_CMD_BUF,#LCD_ADDZ_ZERO

ACALLWR_CMD1

MOVLCD_CMD_BUF,#LCD_ADDX_ZERO

REP_X1:

ACALLWR_CMD1

PUSHLCD_CMD_BUF

MOVLCD_CMD_BUF,#LCD_ADDY_ZERO

ACALLWR_CMD1

MOVR3,#40H;EACHSCREENHAVE64COLMUNS

REP_Y1:

MOVLCD_DATA_BUF,LCD_DISP_BUF

ACALLWR_DATA1

DJNZR3,REP_Y1

POPLCD_CMD_BUF

INCLCD_CMD_BUF

MOVA,LCD_CMD_BUF

CJNEA,#LCD_ADDX_END,REP_X1

RET

DISP_ALL2:

MOVLCD_CMD_BUF,#LCD_ADDZ_ZERO

ACALLWR_CMD2

MOVLCD_CMD_BUF,#LCD_ADDX_ZERO

REP_X2:

ACALLWR_CMD2

PUSHLCD_CMD_BUF

MOVLCD_CMD_BUF,#LCD_ADDY_ZERO

ACALLWR_CMD2

MOVR3,#40H

REP_Y2:

MOVLCD_DATA_BUF,LCD_DISP_BUF

ACALLWR_DATA2

DJNZR3,REP_Y2

POPLCD_CMD_BUF

INCLCD_CMD_BUF

MOVA,LCD_CMD_BUF

CJNEA,#LCD_ADDX_END,REP_X2

RET

LCD_INIT:

;NOPARAMETER

CLRLCD_RST

ACALLDELAY50

ACALLDELAY50

ACALLDELAY50

ACALLDELAY50

SETBLCD_RST

MOVLCD_CMD_BUF,#LCD_DISP_ON

ACALLWR_CMD1

ACALLWR_CMD2

MOVLCD_CMD_BUF,#LCD_ADDZ_ZERO

ACALLWR_CMD1

ACALLWR_CMD2

MOVLCD_DISP_BUF,#LCD_DISP_CLR

ACALLDISP_ALL1

ACALLDISP_ALL2

RET

PRINTE:

;THEINPUTPARAMETERSARELCD_X,LCD_Y,DPTR,SIZE_X,SIZE_Y

MOVLCD_CMD_BUF,#LCD_ADDZ_ZERO

ACALLWR_CMD1

ACALLWR_CMD2

MOVR4,SIZE_X

REP_X:

MOVA,LCD_X

ADDA,#LCD_ADDX_ZERO

MOVLCD_CMD_BUF,A

ACALLWR_CMD1

ACALLWR_CMD2

MOVR3,SIZE_Y

PUSHLCD_Y

REP_Y:

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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