单片机工程实践

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计目的:

通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有七段LED 显示、键盘、蜂鸣器等接口电路的单片机应用系统的设计思想和方法。

学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。提高工程实践能力和素质。

一、 设计任务:

设计内容:模拟全自动洗衣机的功能: (1)用显示器表示工作进程和电机正反转 (2)工作过程与全自动洗衣机相同

任务分工:①蜂鸣器自检(李二冬主编) ②键盘自检 (郑晓军主编) ③LED 自检 (董振主编) ④洗衣机:

a 框图编写(董振)

b 启动、进水(郑晓军)

c 洗涤、排水(董振)

d 甩干(李二冬)

e 汇总(董振、李二冬、郑晓军)

f 打字,制作实践报告书(董振)

三、框图(包括自检和任务的框图):

1、 硬件编程框图及相关说明(图1)

2、

主程序框图、子程序框图及相关说明(图2,图3,图4,图5,图6,图7)

硬 件 框 图

图1

机89C 51

74LS245

K1——K4 拨盘

P2.5 P2.6 P2.7

P1

P2 74LS138 LED 位选

P0 ULN2803

LED 段选

主程序框图

开始

反转

延时,显示

正转

置正反转总循环次数

注水

延时,显示

启动?

水满?

Y Y

N

N

检测K2

洗涤

检测K1

图2

置正转次数

放水

正转

次数减1后为0?

水空?

次数减1后为

0?

N

Y

N

N

Y Y

甩干

检测K3

图3

开始

查表1

查表3

正转显示

查表次数减1后为0?

Y

N

倒计时显示

查表2

反转显示

查表次数减1后为0?

查表3

倒计时显示

循环次数减1为0?

循环次数减1

置循环总数

N

Y

N

图4

键盘自检程序框图

图5

开始 是否有键按下?

蜂鸣器响子程序 Y

N

开始

置循环次数

查表

依次选位后并显示段

减为0?

循环次数减一

指针加一

N

Y

子程序框图

图6

蜂鸣器子程序开始

关闭蜂鸣器

延时delay N 打开蜂鸣器

减一后为0?

结束

Y

N

蜂鸣器自检程序框图(两个声音)

图7

开 始

R1=20H

喇 叭 响

延 时1

喇叭停

延 时1

R1—1等于0?

R1=20H

喇 叭 响

延 时2

喇叭停

延 时2

R1-1等于0?

N

Y N

Y

四、程序清单

(一)模拟全自动洗衣机程序

MOV P0,#0H ;关显示

START1: LCALL SEL8 ;打开245

MOV P1,#0FFH ;P1口输入

MOV A,P1 ;采集key1的状态

LCALL SEL7 ;关闭245

CJNE A,#0FEH,START1 ;判key1是否按下

CLR P2.3 ;蜂鸣

LCALL DELAY ;延时

SETB P2.3

START2: LCALL SEL8 ;打开245

MOV P1,#0FFH ;P1口输入

MOV A,P1 ;采集key1的状态

LCALL SEL7 ;关闭245

CJNE A,#0FDH,START2 ;判key2是否按下

MOV P0,#0FFH ;p0口输入

MOV P0,#9EH ;字型3送p0口

ACALL QWE4 ;选位

ACALL DELAY ;延时

MOV P0,#7EH ;字型0送p0口

ACALL QWE5 ;延时

ACALL DELAY ;选位

XIDI: MOV R0,#0H ;赋初值

MOV R1,#06H ;置正(反)传次数

MOV R2,#0H ;赋初值

MOV R3,#014H ;置正反转总循环次数

MOV P0,#0FFH ;p0口输入

LOOP: MOV A,R0 ;正传

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P0,A

ACALL QWE2

ACALL DELAY

INC R0

DJNZ R1,LOOP

MOV R0,#0H

MOV R1,#06H

ACALL STOP1

LOOP1: MOV A,R0 ;反转MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV P0,A

ACALL QWE3

ACALL DELAY

INC R0

DJNZ R1,LOOP1

MOV R0,#0H

MOV R1,#06H

ACALL STOP2

STOP1: MOV A,R2 ;倒计时显示MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV P0,A

ACALL QWE4

ACALL DELAY

INC R2

DJNZ R3,LOOP1

STOP2: MOV A,R2 ;倒计时显示MOV DPTR,#TAB3

MOVC A,@A+DPTR

MOV P0,A

ACALL QWE5

相关文档
最新文档