单片机应用实例课题

单片机应用实例课题
单片机应用实例课题

项目七按钮控制灯课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2,掌握单片机I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

学习单片机I/O口输入、输出的编程方法,要求按下S1~S4中的任意一个键,则对应的发光二极管亮,松开键对应的发光二极管灭。

1.项目(课题)分析

思路分析: S1-S4可接到某一P口上,此时对应P口引脚作为输入端使用。改变开关的开合状态,可以改变对应I/O口的电平,然后将此电平状态去控制发光二极管的亮灭。2.硬件电路

如图4-7-1所示。

图4-7-1

3.软件设计

(1)编写源程序。

;********************************

;文件名:EX7_1.asm,

;功能:按下按扭S1-S4,控制相应发光二极管D3-D6亮

;********************************

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN: MOV P3,#0FFH

LOOP: MOV A,P3

MOV P1,A

LJMP LOOP

END

(2)对源程序进行编译,并使用Debugger8051软件对其功能进行仿真。

4.硬件系统安装

按照电路图安装好实验开发板的相关元件,注意按扭开关的方向。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

按下S1键D1~D4亮,按下S2键D2~D5亮,按下S3键D3~D6亮,按下S4键D4~D7亮。按上述过程,编写源程序,并运行观察结果,完成设计。(源文件名为EX7_2.asm)

项目八定时器控制流水灯课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机内部资源定时器定时功能的使用(用查询方法实现定时)。

3.进一步掌握单片机I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

利用定时器控制发光二极管交替闪亮,每0.2秒钟交替闪亮一次。

1.硬件电路(同上)

2.编写项目程序

;********************************

;文件名:EX8_1.asm,

;功能:用定时器控制延时,实现流水灯效果

;定时器使用查询方式

;********************************

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN: MOV P1,#55H

R_SHOW:LCALL TDELAY

MOV A,P1

RL A

MOV P1,A

SJMP R_SHOW

;********************************

;定时器延时子程序

;********************************

TDELAY: MOV B,#20

MOV TMOD,#01H

MOV TL0,#00H

MOV TH0,#0DCH

SETB TR0

LP1: JBC TF0,SERVE

SJMP LP1

SERVE: MOV TL0,#00H

MOV TH0,#0DCH

DJNZ B, LOOP

CLR TR0

RET

LOOP: SJMP LP1

END

3.编译源程序。

4.软件仿真运行。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

按下S1键,D1~D8实现两灯追逐(即先D1、D2亮0.5秒后D2、D3亮0.5秒以此类推),按下S2键D1~D8实现交替闪亮,每0.5秒钟交替闪亮一次。按上述过程,编写源程序,并运行观察结果,完成设计。(源文件名为EX8_2.asm)

项目九计数器课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机内部资源定时器计数功能的使用(用查询方法实现计数)。

3.进一步掌握单片机基本I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

利用T0对555振荡电路产生的4HZ的脉冲信号进行计数,要求每计十个数单灯向左移动一次。

1.硬件电路

如图图4-9-1所示,S3结点连接到MCU的T0(P3.4)输入端,根据课题要求应将跳线JP1下面的两个端子短接(选择计数脉冲由555提供)。

图4-9-1

2.编写项目程序

;********************************

;文件名:EX9_1.asm,

;功能:计数器项目

;

;********************************

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV TMOD,#06H

MOV TH0,#0F6H

MOV TL0,#0F6H

SETB TR0

MOV A,#0FEH

LOOP: MOV P1,A

JBC TF0,MLOOP

SJMP LOOP

MLOOP:

RL A

SJMP LOOP

END

3.源程序的编译

4.软件仿真运行

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

利用T0对555振荡电路产生的4HZ的脉冲信号进行计数,记录30S内计数的个数,并通过P1口的8位LED(亮表示1,D1对应最低位)表示出其计数值的二进制数值,估算555脉冲信号的频率。(源文件名为EX9_2.asm)

项目十中断方式实现流水灯控制

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机内部资源定时器及中断的使用(用中断方式实现定时)。

3.进一步掌握单片机基本I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

利用定时器控制发光二极管交替闪亮,每1秒钟交替闪亮一次。1.硬件电路

见图2-2。

2.编写项目程序

;********************************

;文件名:EX10_1.asm,

;功能:定时器中断控制流水灯项目

;

;********************************

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP R_SHOW

ORG 0030H

MAIN: MOV P1,#55H

MOV B,#20

MOV TMOD,#01H

MOV TL0,#00H

MOV TH0,#4CH

SETB EA

SETB ET0

SETB TR0

SJMP $

;********************************

;定时器中断程序

;********************************

R_SHOW:MOV TL0,#00H

MOV TH0,#4CH

DJNZ B,LOOP

MOV B,#20

MOV A,P1

RL A

MOV P1,A

LOOP: RETI

END

3.源程序的编译

4.软件仿真运行。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

按下S1键,D1~D8实现两灯追逐(即先D1、D2亮0.5秒后D2、D3亮0.5秒以此类推),按下S2键D1~D8实现交替闪亮,每0.5秒钟交替闪亮一次。按上述过程,编写源程序(要求定时程序采用中断方式),并运行观察结果,完成设计。(源文件名为EX10_2.asm)

项目十一外部中断课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机外部中断的编程应用。

3.进一步掌握单片机基本I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

利用外部中断实现如下控制:当没有外部中断时,单灯按约5HZ的频率自动循环移动,一旦有外部中断,发光二极管熄灭约1秒,退出中断后,单灯继续原来的循环。

1.硬件电路(同课题七)

2.编写项目程序

3.源程序的编译

;********************************

;文件名:EX11_1.asm,

;功能:外部中断

;

;********************************

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP NOOP ;转到实际中断子程序处

ORG 0030H

MAIN:

SETB IT0

SETB EA

SETB EX0

MOV A,#0FEH

LOOP:

MOV P1,A

LCALL DELAY

RL A

SJMP LOOP

;********************************

;以下为延时子程序

;******************************** DELAY:

MOV R7,#10

D1: MOV R6,#50

D2: MOV R5,#200

DJNZ R5,$

DJNZ R6,D2

DJNZ R7,D1

RET

;********************************

;以下为中断子程序

;********************************

NOOP:

PUSH P1

PUSH 05H

PUSH 06H

PUSH 07H

MOV P1,#0FFH

LCALL DELAY

LCALL DELAY

LCALL DELAY

LCALL DELAY

POP 07H

POP 06H

POP 05H

POP P1

RETI

END

4.软件仿真运行。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

利用外部中断实现如下控制:当没有外部中断时,单灯按约1H Z的频率自动循环,一旦按住开关S2,则发光二极管双灯按约1H Z的频率自动循环(如先D1、D2亮,然后D2、D3亮…..),松开S2,单灯继续原来的循环。(源文件名为EX11_2.asm)

项目十二按键使用课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机键盘扫描的编程应用。

3.掌握蜂鸣器发声基本程序的编制方法。

4.进一步掌握单片机基本I/O口的输入、输出基本编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

用S1~S4组成的键盘分别控制三种颜色的发光二极管及蜂鸣器,按S1键红色发光二极管(假定为D1)亮,按S2键黄色发光二极(假定为D2)管亮,按S3键绿色发光二极管(假定为D3)亮,按S4 键亮另外一灯(假定为D4)。要求按键要有防抖动功能。

1.硬件电路

见图2-2。

2.编写项目程序

;********************************

;文件名:EX12_1.asm,

;功能:键盘项目,按下S1-S4,分别亮不同的灯。

;********************************

LJMP MAIN

ORG 0030H

;防抖动程序段

MAIN:

ORL P3,#3CH ;将P3.2-P3.4设为高电平,初始化

MOV A,P3

ANL A,#3CH ;将P3.2-P3.4以外的端设为低电平,排除其它端子影响

MOV 40H,A

CJNE A,#3CH,KEY ;判断是否有键按下,是转向KEY

SJMP MAIN

KEY:

LCALL DELAY ;延时10ms

MOV A,P3

ANL A,#3CH

CJNE A,40H,MAIN ;判断延时前后值,相等为有按键,否则为抖动

;下面为判断键位程序

K_S1:

JB P3.2,K_S2 ;判断P3.2的状态,为1转向K_S2,为0执行对应子程序

LCALL KEY_1

SJMP MAIN

K_S2:

JB P3.3,K_S3

LCALL KEY_2

SJMP MAIN

K_S3:

JB P3.4,K_S4

LCALL KEY_3

SJMP MAIN

K_S4:

JB P3.5,MAIN

LCALL KEY_4

;子程序1,亮D1

KEY_1:

MOV P1,#0FEH

RET

;子程序2,亮D2

KEY_2:

MOV P1,#0FDH

RET

;子程序3,亮D3

KEY_3:

MOV P1,#0FBH

RET

;子程序4,亮D4

KEY_4:

MOV P1,#0F7H

RET

;********************************

;延时10ms程序

;********************************

DELAY:

MOV R3,#100

DEL: MOV R4,#50

DJNZ R4,$

DJNZ R3,DEL

RET

END

3.源程序的编译

4.软件仿真运行。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

用S2~S4组成的键盘分别控制三个音阶,即:按下S1键发“1”音,按下S2键发“2”音,按下S3键发“3”音,按下S4键发“4”音(源文件名为EX12_2.asm)。蜂鸣器连接如图4-12-1所示,SPK连接P2.7。

图4-12-1

提示:首先必须知道“1”,“2”,“3”,“4”,三个音阶的频率。

1.音阶由不同频率的方波产生,音阶与频率的关系如下表所示。

2.方波的频率由定时器控制。定时器计数溢出后,产生中断,将P3.2口取反即得周期方波。每个音阶相应的定时器初值可按如下方法计算。

晶振为11.0592MHZ时,音阶“1”相应的定时器初值为X,则:

1÷(262×2)=(65536-X)×12÷11.0592×10-6

则X=63778=F922H,同样可求出其它。

音阶4

?

5

?

6

?

7

?

12345671?2?3?

175 196 220 247 262 294 330 349 392 440 494 523 587 659

X

F9

22

项目十三 LED接口课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机LED数码管动态显示的编程应用。

3.进一步掌握单片机计数器的编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

秒表:在数码管上循环显示0~59,利用外部555提供的4H Z时钟脉冲作为计数脉冲。每计四个数(即每秒钟),显示缓冲单元的内容加一,并输出显示在数码管上。

1.硬件电路

如图2-2所示,数码管为共阳极型,P2.0-P2.5控制位选(即选中哪一位数码管),P0.0-P0.7输出字段码。

2.编写项目程序

;********************************

;文件名:EX13_1.asm,

;功能:显示接口,0-59计数并显示在数码管上

;********************************

COUNT1 EQU 41H ;定义显示计数单元

LED0 EQU 42H ;定义LED低位单元

LED1 EQU 43H ;定义LED高位单元

ORG 0000H

LJMP BEGIN

ORG 000BH

LJMP COUNT_PRO

ORG 0030H

BEGIN: MOV SP,#30H ;初始化

MOV LED0,#00H

MOV LED1,#00H

MOV COUNT1,#00H

MOV TMOD,#00000110B

MOV TH0,#0FBH

MOV TL0,#0FBH

SETB ET0 ;允许定时中断0

SETB EA ;开中断

SETB TR0

DIS: LCALL DISPLAY

SJMP DIS

COUNT_PRO:

PUSH Acc

INC COUNT1

MOV A,COUNT1

CJNE A,#60,COUN

MOV COUNT1,#00H

MOV A,#00H

COUN:

MOV B,#10

DIV AB

MOV LED1,A

MOV LED0,B

POP ACC

RETI

DISPLAY:

PUSH ACC

MOV A,LED0

LCALL DISP1

CLR P2.0

LCALL DEL1

SETB P2.0

MOV A,LED1

LCALL DISP1

CLR P2.1

LCALL DEL1

SETB P2.1

POP ACC

RET

DISP1: MOV DPTR,#DBB

MOVC A,@A+DPTR

MOV P0,A

RET

DEL1:

MOV R3,#10

DEL: MOV R4,#50

DJNZ R4,$

DJNZ R3,DEL

RET

;数码管字形码

DBB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0-6 DB 82H,0F8H,80H,90H ;7-9

END

3.源程序的编译

4.软件仿真运行。

5.程序烧录并观察实际运行结果

四、按要求编写程序并上机调试,观察实际运行结果

按下S1键数码管上显示01,按下S2键数码管上显示02,按下S3键数码管上显示03,按下S4键数码管上显示04。(源文件名为EX13_2.asm)

*五、选做内容

在EX13_1.asm程序的基础上增加如下功能,构成一个秒表功能。

(源文件名为EX13_3.asm)

1.按一下S1,计数开始,按一下S2,暂停。

2.按一下S4,计数值清零。

项目十四串口通讯课题

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机与PC及单片机之间串行通讯的编程应用。

3.进一步掌握单片机键盘、显示的编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

编程实现MCU与PC机的通信。

在PC机上运行串口调试程序,通过RS232与MCU进行通信。完成以下内容。

●编写MCU发送数据,PC接收,要求数据发送方的按键值(S1=1,S2=2,S3=3,S4=4),结果在串口调试程序中显示出来。(源文件名为EX14_1.asm)。

●编写PC发送数据, MCU接收,结果在实验开发板LED上显示出来。(源文件名为EX14_2.asm)。

1.硬件电路

见图2-2,用串行通讯电缆,连接PC串口与实验板上的串口J3。

2.编写项目程序

;********************************

;文件名:EX14_1.asm,

;功能:MCU双机通信,串口发送程序

;

;********************************

ORG 0000H

LJMP START

ORG 0030H

START: MOV SCON,#40H ;串口初始化,设置工作方式1

MOV PCON,#80H ;波特率加倍

MOV TMOD,#20H ;定时器1工作在方式2

MOV TH1,#0FDH ;设置波特率为9600

SETB TR1

;防抖动程序段

MAIN:

ORL P3,#3CH ;将P3.2-P3.4设为高电平,初始化

MOV A,P3

ANL A,#3CH ;将P3.2-P3.4以外的端设为低电平,排除其它端子影响 MOV 40H,A

CJNE A,#3CH,KEY ;判断是否有键按下,是转向KEY

SJMP MAIN

KEY:

LCALL DELAY ;延时10ms

MOV A,P3

ANL A,#3CH

CJNE A,40H,MAIN ;判断延时前后值,相等为有按键,否则为抖动

;下面为判断键位程序

K_S1: JB P3.2,K_S2;判断P3.2的状态,为1转向K_S2,为0执行对应子程序 LCALL KEY_1

SJMP MAIN

K_S2: JB P3.3,K_S3

LCALL KEY_2

SJMP MAIN

K_S3: JB P3.4,K_S4

LCALL KEY_3

SJMP MAIN

K_S4: JB P3.5,MAIN

LCALL KEY_4

SJMP MAIN

;子程序1,发送01H

KEY_1: MOV P1,#0FEH

MOV SBUF,#01H ;发送01

JNB TI,$ ;查询发送完毕否 CLR TI

RET

;子程序2,发送02H

KEY_2: MOV P1,#0FDH

MOV SBUF,#02H

JNB TI,$

CLR TI

RET

;子程序3,发送03H

KEY_3: MOV P1,#0FBH

MOV SBUF,#03H

JNB TI,$

CLR TI

RET

;子程序4,发送04H

KEY_4: MOV P1,#0F7H

MOV SBUF,#04H

JNB TI,$

CLR TI

RET

;********************************

;延时10ms程序

;********************************

DELAY: MOV R3,#100

DEL: MOV R4,#50

DJNZ R4,$

DJNZ R3,DEL

RET

END

;********************************

;文件名:EX14_2.asm,

;功能:MCU双机通信,串口接收程序

;

;********************************

LED0 EQU 42H ;定义LED低位单元

ORG 0000H

LJMP BEGIN

ORG 0023H

LJMP JSINT ;串口中断入口

ORG 0030H

BEGIN: MOV SP,#30H ;初始化

MOV LED0,#00H

START: MOV SCON,#40H ;串口初始化,设置工作方式1 MOV PCON,#80H ;波特率加倍

MOV TMOD,#20H ;定时器1工作在方式2

MOV TH1,#0FDH ;设置波特率为9600

SETB REN ;接收允许

CLR RI

SETB TR1

SETB ES

SETB EA;开中断

DIS: LCALL DISPLAY

SJMP DIS

DISPLAY:

PUSH ACC

MOV A,LED0

LCALL DISP1

CLR P2.0

POP ACC

RET

DISP1:

MOV DPTR,#DBB

MOVC A,@A+DPTR

MOV P0,A

RET

;数码管字形码

DBB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0-6

DB 82H,0F8H,80H,90H,06H ;7-9\E

;串口接收中断程序

JSINT: PUSH ACC

MOV P1,#0FEH

CLR RI

MOV LED0,SBUF

POP ACC

RETI

END

3.源程序的编译

4.软件仿真运行。

5.程序烧录并观察实际运行结果

(1)使用串口调试软件分别对发送和接收程序进行调试。

(2)将两块实验开发板的串口(J4)用通信数据线连接起来(注意数据线的两端是交叉连接),利用单片机串行口实现两单片机之间的单向串行通讯,数据发送方的按键值(S1=1,S2=2,S3=3,S4=4)通过串口发送给数据接受方并在数据接受方显示,观察结果是否正确。

四、按要求编写程序并上机调试,观察实际运行结果

利用单片机串行口实现两单片机之间的双向串行通讯,要求将对方单片机的按键值(S1=1,S2=2,S3=3,S4=4)通过串口传送给另外一方并在数码管上显示。(源文件名为EX14_3.asm)

五、选做

编程写PC机发送MCU接收的通信程序,实现下面的功能。(源文件名为EX14_4.asm)

在PC机上运行,通过RS232与MCU进行通信。

1.PC上串口调试程序发送数字“1”,实验板上数码管显示“L”, 8位LED产生向左流水效果。

2.PC上串口调试程序发送数字“2”,实验板上数码管显示“P”, 8位LED产生向右流水效果。

3.PC上串口调试程序发送数字“3”,实验板上数码管显示“S”, 8位LED停止流水效果。

4.PC上串口调试程序发送其它字符,实验板上数码管显示“E”, 8位LED流水效果不变。

项目十五单片机音乐演奏

一、项目目的

1.进一步掌握单片机开发的基本过程。

2.掌握单片机发声程序的编程应用。

3.进一步掌握单片机定时器的编程方法。

二、项目设备

微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。

三、项目内容

编写乐曲“八月桂花香”发声程序。

1.硬件电路

蜂鸣器连接如图4-15-1所示。SPK接P2.7,编程使P2.7产生不同频率脉冲信号,即可使用蜂鸣器发出相应的声音。

图4-15-1

2.编写项目程序

;********************************

;文件名:EX15_1.asm,

;功能:音乐程序,八月桂花香

;蜂鸣器接在P2.7上

;********************************

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

嵌入式系统软件测试技术期末报告

期末总结报告 课程名称:嵌入式系统软件测试技术 学院:信息工程与自动化 专业:计算机科学与技术 年级: 2010级 学生姓名: 学生学号: 201010803116 指导教师:江虹 日期: 2013年1月2日

一、嵌入式软件测试的特点及步骤 嵌入式软件测试作为一种特殊的软件测试,它的目的和原则同普通的软件测试氏相同的,同样是为了验证或达到可靠性要求而对软件进行的测试。 但是和一般的应用软件测试的可靠性测试相比,嵌入式软件测试有自身的特点:(特别是对于没有操作系统的嵌入式应用软件而言) 1)嵌入式软件测试是在特定的硬件环境下才能运行的软件。因此,嵌入式软件测试最重要的目的就是保证嵌入式软件能在此特定的环境下更可靠地运行。 2)嵌入式软件测试除了要保证嵌入式软件在特定环境中运行的高可靠性,还要保证嵌入式软件的实时性。比如在工业控制中,如果某些特定环境下的嵌入式软件不具备实时响应的能力,就可能造成巨大的损失。 3)嵌入式软件产品为了满足高可靠性的要求,不允许内存在运行时有泄漏等情况发生,因此嵌入式软件测试除了对软件进行性能测试、GUI测试、覆盖分析测试是同普通软件测试一样都不可或缺之外,还需要对内存进行测试。 4)嵌入式产品不同于一般的软件产品,在嵌入式软件和硬件集成测试完成之后,并不代表测试全部完成,在第一件嵌入式产品生产出来之后,还需要对其进行产品测试。嵌入式软件测试的最终目的是使嵌入式产品能够在满足所有功能的同时安全可靠地运行。 因此,嵌入式软件测试除了要遵循普通软件测试的原则之外,还应该遵循以下几个原则; 1)嵌入式软件测试对软件在硬件平台的测试氏必不可少的。 2)嵌入式软件测试需要在特定环境下对嵌入式软件进行测试,比如,对某些软件在工业强磁场的干扰下测试,这也是为保证嵌入式软件可靠性所必须进行的测试。 3)必要的可靠性负载测试,比如,测试某些嵌入式系统能否连续1000个小时不断电工作。 4)除了要对嵌入式软件的功能进行测试之外,还需要对实时性进行测试。 在判断系统是否失效方面,除了看它的输出结构是否正确,还应考虑其是

51单片机实例程100讲全集

目录 目录 (1) 函数的使用和熟悉 (4) 实例3:用单片机控制第一个灯亮 (4) 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4) 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (5) 实例6:使用P3口流水点亮8位LED (5) 实例7:通过对P3口地址的操作流水点亮8位LED (6) 实例8:用不同数据类型控制灯闪烁时间 (7) 实例9:用P0口、P1 口分别显示加法和减法运算结果 (8) 实例10:用P0、P1口显示乘法运算结果 (9) 实例11:用P1、P0口显示除法运算结果 (9) 实例12:用自增运算控制P0口8位LED流水花样 (10) 实例13:用P0口显示逻辑"与"运算结果 (10) 实例14:用P0口显示条件运算结果 (11) 实例15:用P0口显示按位"异或"运算结果 (11) 实例16:用P0显示左移运算结果 (11) 实例17:"万能逻辑电路"实验 (11) 实例18:用右移运算流水点亮P1口8位LED (12) 实例19:用if语句控制P0口8位LED的流水方向 (13) 实例20:用swtich语句的控制P0口8位LED的点亮状态 (13) 实例21:用for语句控制蜂鸣器鸣笛次数 (14) 实例22:用while语句控制LED (15) 实例23:用do-while语句控制P0口8位LED流水点亮 (16) 实例24:用字符型数组控制P0口8位LED流水点亮 (17) 实例25:用P0口显示字符串常量 (18) 实例26:用P0 口显示指针运算结果 (19) 实例27:用指针数组控制P0口8位LED流水点亮 (19) 实例28:用数组的指针控制P0 口8 位LED流水点亮 (20) 实例29:用P0 、P1口显示整型函数返回值 (21) 实例30:用有参函数控制P0口8位LED流水速度 (22) 实例31:用数组作函数参数控制流水花样 (22) 实例32:用指针作函数参数控制P0口8位LED流水点亮 (23) 实例33:用函数型指针控制P1口灯花样 (25) 实例34:用指针数组作为函数的参数显示多个字符串 (26) 实例35:字符函数ctype.h应用举例 (27) 实例36:内部函数intrins.h应用举例 (27) 实例37:标准函数stdlib.h应用举例 (28) 实例38:字符串函数string.h应用举例 (29) 实例39:宏定义应用举例2 (29) 实例40:宏定义应用举例2 (29) 实例41:宏定义应用举例3 (30)

嵌入式软件测试报告(内部)

软件(内部)测试报告 XXX系统 测试分析报告评审 V1.0 编写人: 编写日期: 审核人: 审核日期:

修订页

目录 目录 (1) 软件测试报告(内部) (2) 安装及使用测试 (3) 运行环境 (3) 安装易用性 (3) XXX测试 (4) 安装、使用问题及建议 (4) 功能单元测试 (5) 串口指令响应功能测试 (5) 1.测试方法及工具 (5) 2.功能测试 (5) 3.性能测试 (6) 4.稳定及安全性测试 (6) 5.BUG及建议 (6) xxx功能测试 (7) 整机测试 (8) 长时间工作稳定性整机测试 (8) 1.测试方法及工具 (8) 2.测试步骤及结果 (8) xxx整机测试 (8) 整机测试问题及建议 (8) 安装及使用测试附件 (10) 功能单元测试附件 (11) 整机测试附件 (12)

软件测试报告(内部) CRABXLAB-0628-15 TA/0001 软件测试报告编写:首先做对产品的安装及使用测试,如从运行环境、软件安装、故障指示、用户可操作性、界面友好性等方面来检测是否合理可靠;其次从功能完整性上测试,并对每个功能单元进行功能测试、性能测试、安全及稳定性测试,保证每个功能单元都稳定可靠;最后做整机测试,整机测试主要从长时间工作稳定性、异常处理(如网络、电量异常)合理可靠性等方面检查整机稳定可靠性。

安装及使用测试 开发出来的软件要基于对客户或者量生产上考虑产品的使用及安装环境的易用、安全、可操作性、友好性等。 运行环境 安装易用性

XXX测试 章节同安装及使用测试范例,由开发人员完善其他需要的测试项安装、使用问题及建议

单片机测试实验报告

AVR学习板测试实验报告 姓名:冯进福班级:09机械1班学号:0915020064 一、测试程序目录 (1)跑马灯1 (2)跑马灯2 (3)跑马灯3 (4)蜂鸣器(Buzz.hex) (5)定时器数码管显示 (6)数码管显示 (7)数模DAC7512单片电压输出(DAC7512.hex) (8)1602液晶显示 (9)12864液晶实验显示 (10)AD模数转换实验 (11)DS18B20温度数码管显示 (12)EEPROM开机记忆存储实验 (13)I2C-24C01 (14)I2C-PCF8563 (15)PCF8563T串口接收 (16)PCF8563T蜂鸣报警 (17)PCF8563T数码管显示 (18)SPI接口实验 (19)按键实验LED显示 (20)串口接收-24C01.hex (21)串口收发 (22)看门狗实验 (23)按键实验 二、使用的单片机简介 1)、CPU核心板mega128,AVR单片机主芯片,内包含有:128K Flash、4K SRAM、4KByte EEPROM,芯片可与AT mega64互换。 2)、AT24C02,I2C总线器件,EEPROM数据存储器,256Byte EEPROM。 3)、74HC595,SPI总线器件,SPI总线并口扩展器件,8位移位寄存器(串行输入,3S并行锁存输出)。 4)、PCF8563T,时钟芯片。 5)、RS232,RS232接口芯片,两组接口(和下面485接口共用CPU两组UART接口)。 6)、MAX487,485网络驱动芯片,产品组网中最常用最方便的一种方式,大部分室外控制网络采用485通信。 7)、8个输入按键、1个复位按键。 8)、4位动态扫描LED数码管、8位LED发光二极管。 9)、1个无源蜂鸣器。 10)、2路A/D输入可调电位器。 11)、1个三线扩展接口,可用来扩展热敏电阻、DS18B20数字温度计等实验。

51单片机实用汇编程序库(word)

51 单片机实用程序库 4.1 流水灯 程序介绍:利用P1 口通过一定延时轮流产生低电平 输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。 程序实例(LAMP.ASM) ORG 0000H AJMP MAIN ORG 0030H MAIN: 9 MOV A,#00H MOV P1,A ;灭所有的灯 MOV A,#11111110B MAIN1: MOV P1,A ;开最左边的灯 ACALL DELAY ;延时 RL A ;将开的灯向右边移 AJMP MAIN ;循环 DELAY: MOV 30H,#0FFH D1: MOV 31H,#0FFH D2: DJNZ 31H,D2 DJNZ 30H,D1 RET END 4.2 方波输出 程序介绍:P1.0 口输出高电平,延时后再输出低电 平,循环输出产生方波。实际应用中例如:波形发生器。 程序实例(FAN.ASM): ORG 0000H MAIN: ;直接利用P1.0 口产生高低电平地形成方波////////////// ACALL DELAY SETB P1.0 ACALL DELAY 10 CLR P1.0 AJMP MAIN ;////////////////////////////////////////////////// DELAY: MOV R1,#0FFH DJNZ R1,$ RET

五、定时器功能实例 5.1 定时1 秒报警 程序介绍:定时器1 每隔1 秒钟将p1.o 的输出状态改变1 次,以达到定时报警的目的。实际应用例如:定时报警器。程序实例(DIN1.ASM): ORG 0000H AJMP MAIN ORG 000BH AJMP DIN0 ;定时器0 入口 MAIN: TFLA G EQU 34H ;时间秒标志,判是否到50 个 0.2 秒,即50*0.2=1 秒 MOV TMOD,#00000001B;定时器0 工作于方式 1 MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 11 SETB EA ;开总中断 SETB ET0 ;开定时器0 中断允许 SETB TR0 ;开定时0 运行 SETB P1.0 LOOP: AJMP LOOP DIN0: ;是否到一秒//////////////////////////////////////// INCC: INC TFLAG MOV A,TFLAG CJNE A,#20,RE MOV TFLAG,#00H CPL P1.0 ;////////////////////////////////////////////////// RE: MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 RETI END 5.2 频率输出公式 介绍:f=1/t s51 使用12M 晶振,一个周期是1 微秒使用定时器1 工作于方式0,最大值为65535,以产生200HZ 的频率为例: 200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电

单片机应用实例课题

项目七按钮控制灯课题 一、项目目的 1.进一步掌握单片机开发的基本过程。 2,掌握单片机I/O口的输入、输出基本编程方法。 二、项目设备 微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。 三、项目内容 学习单片机I/O口输入、输出的编程方法,要求按下S1~S4中的任意一个键,则对应的发光二极管亮,松开键对应的发光二极管灭。 1.项目(课题)分析 思路分析: S1-S4可接到某一P口上,此时对应P口引脚作为输入端使用。改变开关的开合状态,可以改变对应I/O口的电平,然后将此电平状态去控制发光二极管的亮灭。2.硬件电路 如图4-7-1所示。 图4-7-1 3.软件设计 (1)编写源程序。 ;******************************** ;文件名:EX7_1.asm, ;功能:按下按扭S1-S4,控制相应发光二极管D3-D6亮 ;********************************

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P3,#0FFH LOOP: MOV A,P3 MOV P1,A LJMP LOOP END (2)对源程序进行编译,并使用Debugger8051软件对其功能进行仿真。 4.硬件系统安装 按照电路图安装好实验开发板的相关元件,注意按扭开关的方向。 5.程序烧录并观察实际运行结果 四、按要求编写程序并上机调试,观察实际运行结果 按下S1键D1~D4亮,按下S2键D2~D5亮,按下S3键D3~D6亮,按下S4键D4~D7亮。按上述过程,编写源程序,并运行观察结果,完成设计。(源文件名为EX7_2.asm) 项目八定时器控制流水灯课题 一、项目目的 1.进一步掌握单片机开发的基本过程。 2.掌握单片机内部资源定时器定时功能的使用(用查询方法实现定时)。 3.进一步掌握单片机I/O口的输入、输出基本编程方法。 二、项目设备 微机一台(WIN98/WIN2000系统、安装好Debugger8051等相关软件),编程器一台/下载线一条,单片机实验开发板一块。 三、项目内容 利用定时器控制发光二极管交替闪亮,每0.2秒钟交替闪亮一次。 1.硬件电路(同上) 2.编写项目程序 ;******************************** ;文件名:EX8_1.asm, ;功能:用定时器控制延时,实现流水灯效果 ;定时器使用查询方式 ;********************************

基于单片机的超声波测距系统实验报告

基于单片机的超声波测距系统实验报告

一、实验目的 1.了解超声波测距原理; 2.根据超声波测距原理,设计超声波测距器的硬件结构电路; 3.对设计的电路进行分析能够产生超声波,实现超声波的发送与接收,从而实现利用 超声波方法测量物体间的距离; 4.以数字的形式显示所测量的距离; 5.用蜂鸣器和发光二极管实现报警功能。 二、实验容 1.认真研究有关理论知识并大量查阅相关资料,确定系统的总体设计方案,设计出系 统框图; 2.决定各项参数所需要的硬件设施,完成电路的理论分析和电路模型构造。 3.对各单元模块进行调试与验证; 4.对单元模块进行整合,整体调试; 5.完成原理图设计和硬件制作; 6.编写程序和整体调试电路; 7.写出实验报告并交于老师验收。 三、实验原理 超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距S=Ct/2,式中的C为超声波波速。由于超声波也是一种声波,其声速C与温度有关。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理,单片机(AT89C51)发出短暂的40kHz信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,得出时间t,再由系统软件对其进行计算、判别后,相应的计算结果被送至LED显示电路进行显示。 (一)超声波模块原理: 超声波模块采用现成的HC-SR04超声波模块,该模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。实物如下图1。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。

单片机设计实例

应用程序设计实例 浙江海洋学院楼然苗6.1 闪烁LED小灯的设计 6.2 六位数码管时钟电路的设计 6.3 LED广告显示电路的设计 6.4 8路输入模拟信号的数值显示电路 6.5 单键学习型遥控器的设计 6.6 十六路遥控电路的设计 6.7 遥控码的仿真应用设计 6.8 自行车里程\速度计的设计 6.9 自动往返行驶小汽车的设计 6.10 遥控小汽车的设计 6.11 汽车行驶信息的发送与接收

;************; ;亮灯控制程序; ;************; ; ;************; ;中断入口程序; ;************; ; ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ; ;************; ; 初始化程序 ; ;************; ; CLEAR: RET ; ;************; ; 主程序 ; ;************; ;

START:ACALL CLEAR STAR1:MOV P3,#0FFH JNB P3.0,FUN0 JNB P3.1,FUN1 JNB P3.2,FUN2 JNB P3.3,FUN3 ;关闭按纽 JNB F0,STAR1 ;曾经有键按下F0置1 RET ; FUN0:LCALL DL10MS ;消岸抖动 JB P3.0,STAR1 WAITL0:JNB P3.0,WAITL0 ;等待键释放 SETB F0 FUN01:LCALL FUN00 LCALL STAR1 LJMP FUN01 ; FUN1:LCALL DL10MS ;消岸抖动 JB P3.1,STAR1 WAITL1:JNB P3.1,WAITL1 ;等待键释放 SETB F0 FUN10:LCALL FUN11 LCALL STAR1 LJMP FUN10 ; FUN2:LCALL DL10MS ;消岸抖动 JB P3.2,STAR1 WAITL2:JNB P3.2,WAITL2 ;等待键释放 SETB F0 FUN20:LCALL FUN22 LCALL STAR1 LJMP FUN20 ; FUN3:LCALL DL10MS ;消岸抖动 JB P3.3,STAR1 WAITL3:JNB P3.3,WAITL3 ;等待键释放 CLR F0 MOV P1,#0FFH ;关显示 LJMP STAR1 ; FUN00:MOV A,#0FEH FUN000:MOV P1,A LCALL DL05S JNB ACC.7,OUT

嵌入式系统压力测试阶段报告

嵌入式系统压力测试阶段报告 从10月下旬到12月20号,将近2个月的时间,对嵌入式收费系统进行大数据量测试。现将问题说明一下: 一、最初测试一直是在nfs文件系统上运行,经常出错,各种现象都有。后来想到可能是nfs 传输同步的速度跟不上我们生产数据的速度,所以将测试移到tf卡上进行。 二、测试到过车数量4千多的时候出现异常,可能是我们软件的问题(QByteArray double free),修改后没有再发生。 三、进一步测试发现程序经常在sqlite保存数据时出错,所以将保存数据入库去掉,直接存 成文件。 四、随后的测试经常出现tf卡变成只读。还有Qt本身的组件报错(qtgui,qtcore)。 现在问题大概有以下几个方面: 一、存储介质 目前我们使用的是TF卡。西达提供给我们两批开发板,这两批对于tf卡的挂载效果是不一样的。 第一批,能正确挂载tf卡上的多个分区(fat32,ext2,swap),经过压力测试,数据写入出错的时候,系统还是可以继续运行的。 /dev/mmcblk0p1 on /mnt/yyext type ext2 (rw,relatime,errors=continue)这是挂载状态。errors = continue 决定 第二批,无论是fat32,ext2都挂载成vfat(这批板子都有问题) /dev/mmcblk0p1 on /mnt/yy type vfat (rw,relatime,errors=remount -o ro)这是挂载状态remount -o ro 决定了tf卡变成只读,系统这时会死掉。 二、程序经常报double free 问题。类似下面: *** glibc detected *** ./lanetestmp: corrupted double-linked list: 0x002e9030 *** ======= Backtrace: ========= /lib/libc.so.6(+0x70188)[0x41101188] /lib/libc.so.6(+0x743b4)[0x411053b4] /lib/libc.so.6(realloc+0xfc)[0x41106e54] /opt/qt/qt-4.7.2/lib/libQtGui.so.4(+0x17cf68)[0x40334f68] /opt/qt/qt-4.7.2/lib/libQtGui.so.4(+0x2e5f44)[0x4049df44]

单片机最小系统(详解)设计报告

摘要 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本次课程设计包括STC89C51单片机最小系统(包括复位和时钟电路)还有蜂鸣器电路、LED电路和RS232串口电路以及用于扩展功能的四排与I/O端口相连的插孔。利用Protel电路设计软件进行原理图设计,PCB布线,借此巩固单片机应用、模拟电路、数字电路课程及学会工程软件protel的使用。 关键词:最小系统,I/O端口,STC89C51, PCB

Abstract Recent years, with the penetration of computers in the social sphere, SCM applications are constantly deepening, while driving traditional control detects the rapidly growing updated. In the real-time detection and automatic control of microcomputer application system, the microcontroller is often used as a core component, only the microcontroller knowledge is not enough, should be based on the specific hardware architecture, as well as application-specific software features object combine to make perfect . The curriculum includes the SCM STC89C51 minimum system (including reset and clock circuit) and the buzzer circuit, eight digital tube display circuit, RS232 serial port circuitry, and used to extend the functionality of the four rows with the I / O ports are connected jack. Protel circuit design software for the use of schematic design, PCB layout, thereby consolidating microcontroller applications, analog circuits, digital circuits courses and learn to use engineering software Protel. Keyword:minimum system,I/O Port, STC89C51, PCB

基于51单片机压力检测课程设计报告书

单片机原理与接口技术课程设计 成绩评定表 设计课题基于89c51的自身断电保护系统设计 学院名称:电气工程学院 专业班级:自动1002 学生:秦凯新 学号: 7

指导教师:王黎臧海河周刚 设计地点:31-505 设计时间:2012-12-17~2012-12-28

单片机原理与接口技术课程设计 课程设计名称:基于89c52的压力监测系统设计 专业班级:自动1002 学生姓名:秦凯新 学号: 7 指导教师:王黎臧海河周刚 课程设计地点:31-505 课程设计时间:2012-12-17~2012-12-28

单片机原理与接口技术课程设计任务书

目录 1 引言 (6) 2 总体方案设计 (6) 2.1硬件组成 (6) 2.2 方案论证 (6) 2.3 总体方案 (7) 3 硬件电路设计 (9) 3.1 时钟电路 (9) 3.2复位电路 (10) 3.3 AD简介与原理分析 (10) 3.4 声光报警接口电路 (15) 3.5 显示及键盘接口电路 (15) 3.7 电源电路 (2) 4 系统软件设计 (3) 4.1 主程序设计 (3) 4.3 部分主要子程序的设计 (6) 5 系统调试与总结 (6) 5.1 系统功能测试 (6) 5.2 技术指标测试 (6) 6心得体会 (7) 6.1 为何不采用8255了? (7) 6.2为何不采用A/D0809? (7) 6.3在帮助同学的过程中我学到了什么? (7) 6.4在单片机领域我的规划? 7 参考文献 (8) 附录A 系统原理图 (9) 附录B 源程序 (10)

1 引言 压力监测普遍用于工业领域,并对国家的发展产生了深厚的影响,小到体重计,大到工业中反应炉的气压声电报警。甚至航空航天,智能仪表。以及机器人。本设计就是工业中最普遍的气压监测报警系统。所以,这个系统采用自动检测反应炉中的压力大小,通过传感器,并实时进行在液晶1602上进行显示,还有在液晶上进行参考上限电压值的设置和参考下限电压值的的设置。并通过在单片机部进行比较计算,来实现整个压力监测系统的声光电报警。 本系统的设计基于A/D0804芯片和AT89C52单片机,并采用液晶1602作为显示输出,系统虽小却包含了工业要求的各个方面,作为声电报警模块,主要用到蜂鸣器和发光二极管。当监测压力低于下限值和高于上限值就会进行声光报警。此次系统设计就是针对工业的反应炉的压力监测,甚至可做体重计到最小的方面。 本设计纯为个人设计。程序也在开发板验证成功,如有任何疑问,都可通过实验调试验证。 2 总体方案设计 2.1硬件组成 1.控制器。控制器是系统的核心部分,可以用工业计算机 PLC、或者单片机。 2. A /D转换器。A/D转换器可以把测得的模拟量转换成数 字量输出,可以直接读取。 3.继电器。继电器在电路中起到断电保护作用,是系统的 安全保障。其种类很多,有电流继电器、电压及电器、速度继电器 等等。 4.键盘。通过键盘可以设置限制电流大小。 5.液晶显显示。液晶可以显示设置电流以及实时电流值大 小。 2.2 方案论证

几个单片机应用实例

例一:一个液晶显示的数字式电脑温度计 液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。 段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息, 如汉字、图形、图表等。这里我们介绍一种八段式四位LCD显示器,该显 示器内置驱动器,串行数据传送,使用非常方便。原理图如下图: 下图是长沙太阳人科技开发有限公司生产的4位带串行接口的液晶显示模块SMS0403 的外部引线简图:

有关该模块的具体参数,请查看该公司网站。此例中使用的温度传感器为美国DALLAS公司生产的单总线式数字温度传感器。该传感器本站有其详细的资料可供下载。此例稍加改动,即可做成温控器。 下载驱动该模块的源程序LCD.PLM 例2: LED显示电脑电子钟 本例介绍一种用LED制作的电脑电子钟(电脑万年历)。 原理图如下图所示:

上图中,CPU选用的是AT89C2051,时钟芯片选用的是Dallas公司的DS1302, 温度传感器选用的是Dallas公司的数字温度传感器DS1820,显示驱动芯片 选用的是德州仪器公司的TPIC6B595,也可选用与其兼容的芯片NC595或 国产的AMT9595。整个电子钟用两个键来调节时间和日期。一个是位选 键,一个是数字调节键。按一下位选键,头两位数字开始闪动,进入设 定调节状态,此时按数字调节键,当前闪动位的数字就可改变。全部参 数调节完后,五秒钟内没有任何键按下,则数字停止闪动,退出设定调 节状态。源程序清单如下(无温度显示程序): start:do; $include(reg51.dcl) declare (sclk,io,rst) bit at (0b3h) register; /* p33,p34,p35 */ declare (command,data,n,temp1,num) byte; declare a(9) byte; declare ab(6) byte; declare aco(11) byte constant (0fdh,60h,0dah,0f2h,66h,0b6h,0beh, 0e0h,0feh,0f6h,00h); declare week(11) byte constant (0edh,028h,0dch,7ch,39h,75h,0f5h, 2ch,0fdh,7dh,00h); declare da literally 'p15',clk literally 'p16',ale literally 'p17', mk literally 'p11',sk literally 'p12'; clear:procedure; sclk=0;io=0;rst=0; end clear; send1302:procedure(comm);

单片机系统测试报告

单片机系统测试报告 题目:单片机控制LED数码管显示数字 姓名: 学号: 指导老师: 专业:电子信息工程 院系:计算机与信息工程学院 2015年6月

目录 第一章设计任务及要求 (3) 1.1 设计任务 (3) 1.2 设计要求 (3) 第二章芯片引脚功能图及源程序设计 (3) 2.1 各芯片引脚图 (3) 2.2在Keil软件设计C语言源程序 (4) 第三章 Protues绘制电路原理图及仿真 (6) 3.1 绘制电路原理图 (6) 3.2 Protues仿真 (7) 第四章电路板的焊接与硬件调试 (7) 4.1 电路板的焊接 (7) 4.2 硬件调试 (7) 第五章心得体会 (8)

第一章设计任务及要求 1.1设计任务 利用51单片机、74HC573芯片、2片位4位数码管等器件,设计一个单片机输入显示系统。巩固Proteus软件和Keil软件的使用方法,学习端口输入输出的高级应用。 1.2 设计要求 要求八个数码管按顺序依次显示1~8 第二章芯片引脚功能图及源程序设计 2.1 各芯片引脚图 图2.1-1 AT89C52引脚图图2.1-2 74HC573引脚图

图2.1-3 四位一体数码管引脚图2.2在Keil软件设计C语言源程序 #include #include #define uchar unsigned char #define uint unsigned int sbit wela=P2^1; sbit dula=P2^2; unsigned char leddata[]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B"

基于51单片机的光照强度检测报告

课程设计报告 课程名称:智能仪器课程设计 题目:基于51单片机的光照强度

摘要 光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度的强弱。人们可以通过看此装置的显示了解现在的光照状态,做合理的光照调节。该设计可分为三部分:即光照检测部分、信号处理部分、光强显示部分。还可加上照明部分。对于光照检测部分可利用光敏电阻传感器作为检测元件,它可以完成从光强到电阻值的信号转换,再把电阻值转换为电信号就可以作为系统的输入信号。对输入信号处理后,就可以用来显示了。对于显示部分可利用数码管来显示,不同的光强对应于不同的数值,就能简单的显示出不同的光强了。本设计就是由单片机STC89C52RC芯片,AD采集模块,运算放大,和1602液晶为核心,辅以必要的电路,构成了一个单片机光照强度检测系统。该光照强度检测系统可以通过检测光照强度,使得光照在低于一定强度的时候让照明灯亮,是一种常用的测试仪器,它可以用在需要照明的各个地方,根据灯光的强弱,自动控制照明灯的开关,有力地节约了电力资源。 关键词:51单片机,,LM358,ADC0809,1602液晶,光敏电阻

目录 一、设计任务、要求 (3) 1.1 设计任务: (3) 1.2 设计要求: (3) 二、方案总体设计 (4) 2.1 方案一: (4) 2.2 方案二: (4) 2.3系统采用方案 (4) 三、硬件设计 (6) 3.1 单片机最小系统 (6) 3.2 液晶显示模块 (6) 3.3 系统电源 (7) 3.4 整体电路 (8) 四、软件设计 (10) 4.1 keil软件介绍 (10) 4.2程序流程图 (10) 五、仿真与实现 (12) 5.1 proteus软件介绍 (12) 5.2 仿真过程 (12) 5.3 实物制作与调试 (14) 5.4 使用说明 (16) 六、总结 (17) 6.1设计总结: (17) 6.2经验总结: (18) 七、参考文献 (19)

51单片机50个实例代码

51单片机50个例程代码程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/129116581.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit LED=P1^0;// 用sbit 关键字定义LED到P1.0端口, //LED是自己任意定义且容易记忆的符号 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 LED=1; //将P1.0口赋值1,对外输出高电平 LED=0; //将P1.0口赋值0,对外输出低电平 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 2-IO输出-点亮1个LED灯方法2 /*-----------------------------------------------

名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/129116581.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用1个字节对单个端口赋值 P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉, //ff换算成二进制是1111 1111 P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 //0xfe是16进制,0x开头表示16进制数, //fe换算成二进制是1111 1110 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 3-IO输出-点亮多个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/129116581.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯

单片机应用实例报告

单片机应用实例报告 零.序 这个学期一开始便接触了《单片微型计算机原理与接口技术》,听说是《微型计算机控制技术实用教程》的基础,对于工科的我来说学以致用无非是一切的一切,虽然还是个该领域的菜鸟,但是单片机之于自动化的意义不言而喻,对于这篇论文,以下开始展开,不足之处谅解。 一.概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 关于80C51:该系列单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和 6 时钟操作P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM 定时器,串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复的。 二.应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、

TS8900-M128单片机测试报告(广州大学)

TS8900-M128单片机测试报告机械113班丘雄锋1107200084 肖文杰1107200094 潘振昇1107200104 一、目录: 1、跑马灯1; 2、跑马灯2; 3、跑马灯3; 4、看门狗; 5、DS18B20温度数码管显示; 6、定时器数码管显示; 7、按键实验LED显示; 8、1602液晶; 9、蜂鸣器; 10、PCF8563T数码管显示。 二、单片机简介 AVR mega128学习板专为AVR单片机初学者设计,简单实用、价格合理是AVR 学习板的最大特点。电路板精心布局,模块划分清晰位置放置合理,符合正常使用习惯。电路简单,学习板上安排了最常用最实用的功能电路,电路接口设计上合理配置尽量不复用,降低学习难度,把方便留给大家 硬件资源介绍(如下图):

1. CPU核心板mega128,A VR单片机主芯片,内包含有:128K Flash、4K SRAM、4KByte EEPROM,芯片可与AT mega64互换。 2. AT24C02,I2C总线器件,EEPROM数据存储器,256Byte EEPROM。 3. 74HC595,SPI总线器件,SPI总线并口扩展器件,8位移位寄存器(串行输入,3S并 行锁存输出)。 4. PCF8563T,时钟芯片。 5. RS232,RS232接口芯片,两组接口(和下面485接口共用CPU两组UART接口)。 6. MAX487,485网络驱动芯片,产品组网中最常用最方便的一种方式,大部分室外控制 网络采用485通信。 7. 8个输入按键、1个复位按键。 8. 4位动态扫描LED数码管、8位LED发光二极管。 9. 1个无源蜂鸣器。 10. 2路A/D输入可调电位器。 11. 1个三线扩展接口,可用来扩展热敏电阻、DS18B20数字温度计等实验。 12. LCD接口,液晶显示屏接口,可接LCD1602和LCD12864两种液晶屏. 13. A VR JTAG仿真接口,A VR ISP下载接口。 14. 所有IO口全部引出,方便扩展实验及测试。 15. CPU采用独立mega128核心板,方便升级及更换芯片。 16. 在1路RS232外提供了1路RS485网络驱动芯片,实用的多点远程通信网络。 三、测试环境简介 1、硬件 (1)、电脑 (2)、TS8900-M128开发板 (3)、数据线 2、软件 (1)、A VR JTAG 驱动 (2)、ICCAVR (3)、A VR STUDIO (4)、程序 四、各个程序功能以及测试结果 附跑马灯测试效果图:

相关文档
最新文档