当前位置:文档之家› 单片机实验新教材

单片机实验新教材

单片机实验新教材
单片机实验新教材

《单片机应用实践I 》

上海大学机械自动化学院

2007年10月

目录

1.仿真器及实验平台的使用 (3)

2.LED点阵扫描实验 (6)

3.七段LED数码管的显示与应用 (10)

4.定时器的应用 (15)

5.计数器的应用 (18)

6. 键盘扫描及显示实验 (23)

7. 数据传送实验 (31)

8. A/D、D/A转换实验 (38)

9. 系统综合扩展实验 (45)

10. 附录--------------------------------------------------------------48

仿真器及实验平台的使用

一.实验目的:

1.了解仿真实验系统的基本构成。

2.了解仿真软件的功能特点及使用方法。

3.通过实验了解MCS51内部寄存器的分布及使用方法

二、实验内容

编写并调试一个程序,验证下列个项。

1.BANK0——BANK3的分布及使用。

2.位寻址区的分布和使用。

3.内部RAM的分布和使用(包括直接及间接寻址)。

4.特殊功能寄存器(SFR)及其地址的对应关系。

三、调试方法

1.开启系统电源,并启动仿真软件Keil51。

2.在编辑状态下输入程序并存盘,

3.编译源程序,若出错则修改后重新编译,直至完全正确。

4.运行程序,(可采用单步(包括跟踪式和通过式)、断点、全速等多种方式)。

5.打开内部数据窗,观察程序执行过程中各对应单元的数据变化。

四、参考程序

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV SP, #80H ;BANK0——BANK3的分布及使用。

MOV A, #0 ;BANK0

ACALL BK

SETB PSW.3

ACALL BK ;BANK1

CLR PSW.3

SETB PSW.4

ACALL BK ;BANK2

SETB PSW.3

ACALL BK ;BANK3

SETB 00H ;位寻址区的分布和使用;

SETB 10H

SETB 20H

SETB 30H

SETB 40H

SETB 50H

SETB 60H

SETB 70H

CLR 00H

CLR 10H

CLR 20H

CLR 30H

CLR 40H

CLR 50H

CLR 60H

CLR 70H

MOV 21H, #55H ; 内部RAM的分布和使用

MOV 27H,, #0AAH

MOV 2BH, #77H

MOV 2FH, #0FFH

MOV 30H, #45H

MOV 37H, #56H

MOV 3DH, #45

MOV 45H, #56

MOV 55H, #55H

MOV 66H, #66H

MOV 77H, #77

MOV R0, #90H ;间接寻址

MOV @R0, #90

MOV A, #66H

MOV R0,#0C0H

MOV @R0, A

MOV R1, #0A0H

MOV @R1, 90H

MOV R1, #0FFH

MOV @R1, #0FFH

MOV TH0, #05H ; 特殊功能寄存器(SFR)及其地址的对应关系

MOV TL0,#90H

MOV P1.#55H

MOV R7, #255 ; 外部RAM 写数据

MOV A, #0

MOV DPTR,#07FFFH

SS1: INC DPTR

INC A

MOVX @DPTR, A

DJNZ R7,SS1

S1: SJMP $

BK: MOV R0, A ;置数子程序

INC A

MOV R1, A

INC A

MOV R2, A INC A

MOV R3, A INC A

MOV R4, A INC A

MOV R5, A INC A MOV R6, A INC A

MOV R7, A RET

END

实验二、LED点阵扫描实验

一、实验目的

1、掌握点阵扫描的基本原理

2、掌握P1口的使用方法

3、掌握查表的使用方法

4、掌握串转并实现扫描的方法

二、实验内容

1、 P1口高四位接拨动开关用作LED显示的输入

2、 P1.0接扫描电路的DIN端

3、 P1.1接扫描电路的CLOCK端

4、编程实现1――F的点阵扫描显示

三、附参考程序清单

;DIN EQU P1.0

;CLOCK EQU P1.1

ORG 0000H

AJMP M AIN

ORG 0030H

MAIN: MOV SP, #80H

MOV 41H, #0

START: MOV A, P1

SWAP A ;半字节交换

ANL A, #0FH ;保留A的低4位

MOV 40H, A

XRL A, 41H;(41H)=00,A的内容不变?

JZ SS1;A=0?

MOV 41H, 40H

MOV A, 40H

RL A

RL A

RL A

MOV 42H, A

SS1: M OV A, 42H

MOV 43H, A

MOV R0, #80H

MOV R2, #08H

SEND1: MOV DPTR, #CTAB

MOVC A, @A+DPTR

MOV DPTR, #0A000H

MOVX @DPTR, A

ACALL SENDP1

MOV A, R0

RR A

MOV R0, A

ACALL DELAY

INC 43H

MOV A, 43H

DJNZ R2, SEND1

ORL P1, #0F0H

AJMP START

SENDP1: ANL P1, #0FDH

MOV R3, #08H

MOV A, R0

CLR C

SENDCY: RLC A

MOV P1.0, C

ORL P1, #02H

ANL P1, #0FDH

DJNZ R3, SENDCY

RET

DELAY: MOV R7, #96

MOV R6, #05

SS2: D JNZ R7, $

DJNZ R6, SS2

RET

CTAB:DB 00H,18H,24H,24H,24H,24H,18H,00H ;'0' DB 00H,1CH,08H,08H,08H,18H,08H,00H ;'1' DB 00H,3CH,10H,08H,04H,24H,18H,00H ;'2' DB 00H,18H,24H,04H,18H,04H,3CH,00H ;'3' DB 00H,1CH,08H,3CH,28H,18H,08H,00H ;'4' DB 00H,18H,24H,04H,3CH,20H,3CH,00H ;'5' DB 00H,18H,24H,24H,38H,24H,18H,00H ;'6' DB 00H,10H,10H,08H,04H,24H,3CH,00H ;'7' DB 00H,18H,24H,24H,3CH,24H,18H,00H ;'8' DB 00H,38H,04H,1CH,24H,24H,18H,00H ;'9' DB 00H,81H,42H,3CH,24H,18H,08H,00H ;'A' DB 00H,1CH,14H,14H,1CH,10H,10H,00H ;'b' DB 00H,18H,24H,20H,20H,24H,18H,00H ;'C' DB 00H,1CH,24H,24H,1CH,04H,04H,00H ;'d' DB 00H,3CH,20H,38H,20H,20H,3CH,00H ;'E' DB 00H,20H,20H,20H,38H,20H,3CH,00H ;'F' END

//* 实验二点阵LED实验 *//

#include

#include

#define LEDARRAY XBYTE[0xa000]

#define uchar unsigned char

sbit CLK =P1^0;

sbit DINA =P1^1;

uchar code TAB[8]={0x7f,0x60,0x60,0x7e,0x03,0x63,0x3e,0x00}; void DELAY(); //

void sendto(unsigned char dat);

bdata unsigned char kdat;

sbit cc=kdat^0;

void main()

{

uchar i,j;

uchar k=0xff;

while(1)

{

j=0x80;

for(i=0;i<8;i++)

{

LEDARRAY=TAB[i];

sendto(j);

j=j>>1;

DELAY();

DELAY();

}

}

}

void sendto(unsigned char dat)

{

unsigned char i;

CLK=0;

kdat=dat;

for(i=0;i<8;i++)

{

DINA=cc;

CLK=1;

CLK=0;

kdat=kdat>>1;

}

}

void DELAY(void)

{

uchar i=220; while(i--);

}

实验三、七段LED数码管的显示与应用

一、实验目的

1、了解七段LED数码管显示的基本原理

2、读懂硬件原理图

3、掌握8155编程实现动态扫描显示的控制方法

二、实验内容

1、通过跳线并利用拨动开关设置,完成数码管各位的静态显示。

2、通过对8155编程实现对七段LED数码管的动态扫描显示。

三、参考例程

OUTBIT equ 0e101h ; 8155 A口,LED位控制口

LED164 equ 0e102h ; 8155 B口,LED段控制口

LEDBuf equ 30h ; 显示段码缓存首址

Num equ 38h ; 显示数据缓存首址

Din equ 8155pb0 ;

Clock equ 8155pb1

DelayT equ 75h

org 0000h

ljmp main

org 0030h

main: mov sp,#80h

mov dptr,#0e100h ;

mov a,#03h ;8155初始化

movx @dptr,a

mov a,#0

ss0: mov r1,#num

mov r2,#6

ss1: anl a,#0fh

mov @r1,a

inc r1

inc a

djnz r2,s0

mov r4,#5

mov DelayT,#1

DispAgain:

call Disp ; 显示

djnz DelayT,DispAgain

djnz R4,DispAgain

sjmp ss0

;******************************************************* Disp: MOV R0, #LEDBUF ; 显示数据转换为段码

MOV R3, #06H

MOV R1, #NUM

TY11: MOV A, @R1

MOV DPTR,#LEDMAP

MOVC A, @A+DPTR

MOV @R0, A

INC R0

INC R1

DJNZ R3,TY11

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管

mov r2, #00000001b ; 从右边开始显示

Loop:

mov dptr, #OUTBIT ; 位控口地址

mov a, #00h

movx @dptr, a ; 关所有八段管

mov a, @r0 ; 取LED显示缓冲区段码

mov B, #8 ; 送74LS164

DLP:

rlc a

mov r3, a

mov acc.0, c ;形成164一位数据

ANL A, #0FDH

mov dptr, #LED164

movx @dptr, a

orl a, #02h ;产生164时钟脉冲

movx @dptr, a

anl a, #0fDh

movx @dptr, a

mov a, r3

djnz B, DLP

mov dptr, #OUTBIT

mov a, r2

movx @dptr, a ; 显示一位八段管

mov r6,#1

acall delay

rl a ; 显示下一位

mov r2, a

inc r0

djnz r1, Loop

mov dptr, #OUTBIT

mov a, #0

movx @dptr, a ; 关所有八段管

ret

delay: mov r7,#155

delayloop:djnz r7,delayloop

djnz r6,delayloop

ret

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h

END

//* 实验三八段数码管显示 *//

#include

#define LEDLen 6

#define mode 0x03;

#define CAddr XBYTE[0xe100] /* 8155 控制字地址 */

#define OUTBIT XBYTE[0xe101] /* 8155PA——位控制口 */

#define CLK164 XBYTE[0xe102] /* 8155PB——段控制口(PB.1接164时钟位) */ #define DAT164 XBYTE[0xe102] /* 8155PB---段控制口(PB.0接164数据位) */ #define IN XBYTE[0xe103] /* 键盘读入口 */

unsigned char LEDBuf[LEDLen]; /* 显示缓冲 */

code unsigned char LEDMAP[] = { /* 八段管显示码 */

0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,

0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71

};

void Delay(unsigned char CNT)

{

unsigned char i;

while (CNT-- !=0)

for (i=100; i !=0; i--);

}

void DisplayLED()

{

unsigned char i, j;

unsigned char Pos;

unsigned char LED;

Pos = 0x20; /* 从左边开始显示 */

for (i = 0; i < LEDLen; i++) {

OUTBIT = 0; /* 关所有八段管 */

LED = LEDBuf[i];

for (j = 0; j < 8; j++) { /*送164*/

if (LED & 0x80)

DAT164 = 1;

else

DAT164 = 0;

CLK164 = CLK164|0x02;

CLK164 = CLK164&0xfd;

LED <<= 1;

}

OUTBIT = Pos; /* 显示一位八段管 */

Delay(1);

Pos >>= 1; /* 显示下一位 */

}

OUTBIT = 0; /* 关所有八段管 */

}

void main()

{

unsigned char i = 0;

unsigned char j;

CAddr = mode;

while(1) {

LEDBuf[0] = LEDMAP[ i & 0x0f];

LEDBuf[1] = LEDMAP[(i+1) & 0x0f];

LEDBuf[2] = LEDMAP[(i+2) & 0x0f];

LEDBuf[3] = LEDMAP[(i+3) & 0x0f];

LEDBuf[4] = LEDMAP[(i+4) & 0x0f];

LEDBuf[5] = LEDMAP[(i+5) & 0x0f];

i++;

for(j=0; j<30; j++)

DisplayLED(); /* 延时 */ }

}

实验四、定时器的应用

一、实验目的

1、掌握定时器的基本工作原理

2、掌握定时器参数选择、设置的方法

3、掌握中断的基本原理及使用方法

二、实验内容

编写并调试一个程序,用定时器T0的定时中断方式控制软件计数,使计数器从零开始,以每秒一次的速度计数,并将计数结果以十进制方式实时显示在七段数码管上。

三、参考程序清单

OUTBIT equ 0e101h ; 8155 A口,LED位控制口

LED164 equ 0e102h ; 8155 B口,LED段控制口

LEDBuf equ 30h ; 显示缓冲

Num equ 38h ; 显示的数据

Din equ 8155pb0 ;

Clock equ 8155pb1

ORG 0000h

AJMP MAIN

ORG 0BH

AJMP PTF00

ORG 0030h

MAIN: mov sp,#80h

mov dptr,#0e100h ;

mov a,#03h ;8155初始化

movx @dptr,a

MOV R0,#Num ;清数据缓冲区

MOV R7,#06H

ML1: MOV @R0,#00H

INC R0

DJNZ R7,ML1

MOV TMOD,#01H ;T0初始化

MOV TL0,#00H

MOV TH0,#00H

SETB TR0

MOV IE,#82H

MOV 40H,#08H

DispAgain:

Acall Disp ; 调显示子程序

Sjmp DispAgain

Disp: MOV R0, #LEDBUF ; 显示数据转换为段码 MOV R3, #06H

MOV R1, #NUM

TY11: MOV A, @R1

MOV DPTR,#LEDMAP

MOVC A, @A+DPTR

MOV @R0, A

INC R0

INC R1

DJNZ R3,TY11

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管

mov r2, #00000001b ; 从右边开始显示Loop:

mov dptr, #OUTBIT ; 位控口地址

mov a, #00h

movx @dptr, a ; 关所有八段管

mov a, @r0 ; 取LED显示缓冲区段码 mov B, #8 ; 送74LS164

DLP:

rlc a

mov r3, a

mov acc.0, c ;形成164一位数据

ANL A, #0FDH

mov dptr, #LED164

movx @dptr, a

orl a, #02h ;产生164时钟脉冲

movx @dptr, a

anl a, #0fDh

movx @dptr, a

mov a, r3

djnz B, DLP

mov dptr, #OUTBIT

mov a, r2

movx @dptr, a ; 显示一位八段管

rl a ; 显示下一位

mov r2, a

inc r0

djnz r1, Loop

mov dptr, #OUTBIT

mov a, #0

movx @dptr, a ; 关所有八段管

ret

PTF00: PUSH PSW

PUSH ACC

SETB PSW.3

MOV TL0,#0

MOV TH0,#0

MOV A,40H

DEC A

MOV 40H,A

JNZ PTFY

MOV 40H,#08H

MOV R0,#Num

MOV R7,#6

PTFX: MOV A,@R0

INC A

MOV @R0,A

CJNE A,#0AH,$+3

JC PTFY

MOV @R0,#0

INC R0

DJNZ R7,PTFX

PTFY: POP ACC

POP PSW

RETI

Delay: ; 延时子程序

;mov r6, #1

DelayLoop:

djnz r7, DelayLoop

djnz r6, DelayLoop

ret

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h

END

实验五、计数器的使用

一、实验目的

1、掌握计数器工作的基本原理

2、了解计数器对外部输入信号的要求

3、掌握计数值到显示的转换过程

二、实验内容

1、对定时器0外部输入的脉冲信号进行计数且显示

2、改变外部输入的脉冲信号的频率,观察显示结果的变化并解释之。

3、讨论并理解数值转换的算法及编程实现的方法

三、参考例程

OUTBIT equ 0e101h

CLK164 equ 0e102h ; 段控制口(接164时钟位)

DAT164 equ 0e102h ; 段控制口(接164数据位)

LEDBuf equ 40h

IN equ 0e103h

ORG 0000h

MOV SP,#80H

MOV DPTR,#0e100H ;8155初始化

MOV A,#03H

MOVX @DPTR,A

MOV TMOD,#05H ;定时器初始化,T0为计数器,方式1

MOV TH0,#00H

MOV TL0,#00H

SETB TR0

LOOP0: MOV R2,TH0 ;读计数器

MOV R3,TL0

LCALL LOOP1 ;将计数值转换为十进制

MOV R0,#40H ;将转换结果解压缩至45H--40H

MOV A,R6

LCALL PTDS

MOV A,R5

LCALL PTDS

MOV A,R4

LCALL PTDS

LCALL DISPLAY ;显示计数结果

SJMP LOOP0

LOOP1: CLR A ;二转十子程序

MOV R4,A

MOV R5,A

MOV R6,A

MOV R7,#10H

LOOP2: CLR C

MOV A,R3

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R6

ADDC A,R6

DA A

MOV R6,A

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ R7,LOOP2

RET

PTDS: MOV R1,A ;拆字子程序ACALL PTDS1

MOV A,R1

SWAP A

PTDS1: ANL A,#0FH

MOV @R0,A

INC R0

RET

Delay:

mov r7, #0 ; 延时子程序

DelayLoop:

djnz r7, DelayLoop

djnz r6, DelayLoop

ret

DISPLAY:setb 0d3h

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管

mov r2, #00000001b ; 从右边开始显示Loop:

mov dptr, #OUTBIT

mov a, #00h

movx @dptr, a ; 关所有八段管

mov a, @r0

mov dptr,#LEDmap

movc a,@a+dptr

mov B, #8 ; 送164

DLP:

rlc a

mov r3, a

mov acc.0, c

anl a,#0fdh

mov dptr, #DAT164

movx @dptr, a

mov dptr, #CLK164

orl a,#02h

movx @dptr, a

anl a,#0fDh

movx @dptr, a

mov a, r3

djnz B, DLP

mov dptr, #OUTBIT

mov a, r2

movx @dptr, a ; 显示一位八段管

mov r6, #1

call Delay

mov a, r2 ; 显示下一位

rl a

mov r2, a

inc r0

djnz r1, Loop

mov dptr, #OUTBIT

mov a, #0

movx @dptr, a ; 关所有八段管

clr 0d3h

ret

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h END

单片机课程设计报告实验报告

课程设计报告 学号: 1328403028 姓名:张帅华 班级: 13电子信息工程指导老师:邓晶 苏州大学电子信息学院 2016年4月

摘要 随着时代的进步和发展,单片机技术已经成为一种比较成熟的技术,普及到我们生活、工作、科研等各个领域。本次课程设计包含四个基于STC89C52单片机的设计,分别是:基于单总线数字式温度传感器DS18b20的数字温度计的设计;基于2K位串行CMOS 的EEPROM AT24C02的数字密码锁的设计;基于SPI接口实时时钟芯片DS1302的电子日历的设计以及基于无线收发芯片nrf24L01的简单无线通讯系统的设计。 关键词:单片机 DS18B20 AT24C02 DS1302 NRF24L01

目录 摘要 (1) 目录 (2) 第1章基于DS18B20的数字温度计设计 (3) 1.1 设计要求 (3) 1.2 系统组成 (3) 1.3 系统设计 (3) 1.3.1 硬件设计 (3) 1.3.2软件设计 (4) 1.4 设计结果 (6) 第2章基于AT24C02的电子密码锁设计 (7) 2.1 设计要求 (7) 2.2 系统组成 (7) 2.3 系统设计 (8) 2.3.1 硬件设计 (8) 2.3.2 软件设计 (9) 2.4 设计结果 (9) 第3章基于DS1302的电子日历的设计 (11) 3.1 系统功能 (11) 3.2 系统组成 (11) 3.3 系统设计 (11) 3.3.1 硬件设计 (11) 3.3.2 软件设计 (13) 3.4 设计结果 (14) 第4章基于NRF24L01的无线通信系统的设计 (15) 4.1 系统功能 (15) 4.2 系统组成 (15) 4.3 系统设计 (15) 4.3.1 硬件设计 (15) 4.3.2 软件设计 (16) 4.4 设计结果 (16) 总结 (17)

单片机开发板指导

STC89C52单片机 开发板实验指导书 目录 一、熟悉编程软件的使用 (1) 二、熟悉下载环境 (7) 三、最小系统模块 (12) 四、流水灯 (13) 五、独立按键 (14) 六、矩阵键盘扫描与数码管显示 (15) 七、串口通信实验 (17) 八、电源指示部分和蜂鸣器 (17) 附录一元器件的极性识别 (19) 附录二焊接要求与注意事项 (20)

一熟悉编程软件的使用 一、目的 掌握KEIL编程软件的安装及使用方法,熟悉KEIL编程环境。 二、步骤 (一)、先安装下载软件: 1.在单片机开发板的开发工具文件夹中找到KEIL文件夹,然后双击“C51V900修正版1.1.exe”,按照提示安装即可。安装完成后会在桌面上出现一 个KEIL uVision4的图标。 2.对KEIL软件进行在线注册,首先打开uVision4,在菜单栏中找到File选项,然后再File栏中选择License Management选项,如图1所示,在打开的License Management窗口,复制右上角的CID。 图1 在KEIL文件夹中找到“Keil_lic-v3.2.exe”,然后双击。打开注册机,在CID 窗口里填上刚刚复制的CID,其它设置不变,点击Generate生成许可号,复制许 可号,如图2所示。将许可号复制到License Management窗口下部的New License ID Code,点击右侧的Add LIC。若上方的Product显示的是PK51 Prof。Developers

Kit即注册成功,Support Period为有效期,一般可以到30年左右,若有效期较短,可多次生成许可号重新注册。如图3所示。 图2 图3 (二)、此时,KEIL软件我们就注册成功了。我们打开μVision4软件,点击Project 菜单,点击NEW,选择μVision Project建立新工程,如图4所示。在文件名窗口中输入我们要建立的工程的名字,然后在保存在窗口中选择我们的工程存储位置。然后点击保存。会出现图5所示,我们在这个窗口中选择我们板子的单片机类型,我们单片机开发板的单片机是STC公司的STC89C52RC,选择好后点击

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始

不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对

单片机实验指导书

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实 例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 .专业DOC.

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接 ]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下:

(完整版)创新实验室建设规划

创新实验室建设规划 1.指导思想 创新实验室的建设,旨在促进探索创新性人才培养的新模式,促进探索并建立以问题和课题为核心的教学模式,倡导以学生为主体的本科人才培养和研究性学习教学改革,调动学生学习的主动性、积极性和创造性,激发学生的创新思维和创新意识,同时在项目实践中逐渐掌握思考问题、解决问题的方法,提高学生创新实践的能力。 通过创新实验室计划得实施,带动广大的学生在本科阶段得到科学研究与发明创造的初步训练,增强人才培养过程中实践教学环节的比重,增强学生的动手能力,推广研究性学习和个性化培养,形成创新教育的氛围,建设创新文化,进一步推动教育教学改革,提高教学质量。 1.1 突出能力培养,全面实施素质教育 为全面贯彻落实学院“高级实用型人才”的培养目标,力行“以培养能力为中心,全面提高教学质量”;全面实施素质教育,通过项目实践启发学生学习兴趣,引导学生自学、思考和探究; 在理论与实践、知识和能力、专业和技术相结合的过程中进行人才的培养。具体地说,就是有效地实施我院推行的“一体二翼”人才培养模式,为形成“以计算机技术和电子信息技术综合应用能力培养为中心”的高级实用型人才提供平台和实践环境。 1.2扎实推进教育教学改革 以培养兴趣、鼓励创新、突出重点和注重过程逐步全面实施教育教学全过程,按照“自主选题、自主设计、自主实验”的要求,以项目为研究载体,在指导老师的指导下,注重学生自主实验和过程训练,使学生的实践能力和创新精神得到不断增强,人才培养质量得到不断提高。 1.3 突出特色,营造品牌 通过提供电子制作、课题设计、项目开发和科学研究的条件,从而使学生尽早进入专业科研领域,培养学生的研究兴趣和科学态度,训练实践能力、独立工作能力、团队合作能力,加强师生联系与交流,促进产学研紧密结合。进而形成我系鲜明特色的——软硬件一体化开发设计能力和项目开发和管理能力,创设品牌。 1.4 抓住机遇,进行师资队伍全面建设 计算机系有一支具有计算机应用软硬件技术和应用信息电子方向技术基础的老,中,青年技术骨干教师。加强实践性教学环节,培养复合型人才,逐步形成独具特使实践教学新体系,通过计划的实施,教改推进和项目的开展,全面提升整个师资队伍的水平。 2.现有基础 2.1 初步建立了供学生实践应用的“创新实验室”。 创建了开放式创新实验室。开放式实验室为学生创造进行计算机软件与电路电子设计的有利条件,是在校学生课内、课外进行作品设计开发,开展实验活动的主要场所。在专业教师的指导下,学生应用自带的计算机,电子部件及各类工具在该实验室进行单片机应用技术,嵌入式ARM7,ARM9等芯片应用技术进行各类智能化应用实验系统可进行各种应用性实践实验,培养同学们的实际工作能力。

单片机课程设计51实验报告DOC

福建工程学院软件学院 题目:51开发洗衣机 班级:物联网工程1202 成员: 座号:04 28 指导老师: 日期:年月日课设报告

目录 1摘要 (1) 2.设计需求 (1) 2.1功能需求 (1) 2.1.1 基本功能 (1) 2.1.2扩展功能 (1) 2.2 设计要求 (2) 2.2.1 单片机芯片部件功能 (2) 2.2.2 LCD数码显示管部件功能 (2) 2.2.3 按键部件功能 (2) 2.2.4 蜂鸣器部件功能 (2) 3硬件设计及描述 (2) 3.1总体描述 (2) 3.2系统总体框图 (3) 3.3Proteus电路图 (3) 3.4各部分硬件介绍 (4) 3.4.1晶振Protues仿真 (4) 3.4.2LCDProtues仿真 (5) 3.4.3 按键Protues仿真 (5) 3.4.4上拉电阻Protues仿真 (6) 3.4.5C51芯片Protues仿真 (6) 3.4.6上电复位电路Protues仿真 (8) 3.4.7蜂鸣器Protues仿真 (9) 4 软件设计流程及描述 (10) 4.1程序流程图 (10) 4.2函数模块及功能 (10) 5功能实现 (11) 5.1程序烧入上电调试 (11) 5.2时间递增跳变 (12) 5.3比分更变 (13) 5.4比赛得分复位 (14) 5.5比赛时间复位 (14) 6 心得体会 (15) 7源程序代码: (16)

1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起

dickus单片机实验

数据传送实验 实验项目类型:设计型 实验时间:2012.10.15 一、实验目的 1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉Keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 二、设计要求 1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。 三、实验程序流程框图和程序清单。

流程图 程序一程序二 程序三程序四程序五 程序清单 ORG 0000H MAIN: MOV R0, #30H MOV A, #00H

T1: MOV @R0, A INC R0 INC A CJNE A, #10H, T1 MOV R0, #3FH MOV R2, #10H MOV R1, #4FH T2: MOV A, @R0 MOV @R1, A DEC R0 DEC R1 DJNZ R2, T2 MOV R2, #10H MOV R1, #4FH MOV DPTR, #480FH T3: MOV A, @R1 MOVX @DPTR, A DEC R1 DEC A MOV DPL, A DJNZ R2, T3 MOV DPL, #00H MOV R2, #10H T4: MOV DPH, #48H MOVX A, @DPTR MOV DPH, #58H MOVX @DPTR, A INC DPTR DJNZ R2, T4 MOV R0, #50H MOV DPTR, #5800H MOV R2, #10H T5: MOVX A, @DPTR MOV @R0, A INC R0 INC A MOV DPL, A

2014版51单片机实验开发板焊接和调试资料

2014版51单片机实验开发板焊接调试指南 一、焊接指南: 1、先矮后高(先焊接低矮的器件如飞线、卧式电阻等,再焊比较高的器件)。 2、先小后大(先焊接体积比较小巧的器件,再焊体积比较大的器件)。 3、注意有极性元器件的安装和焊接(普通二极管、发光二极管、三极管、电解电容的极性,以及接插件的缺口方向、芯片插座方向等)。 4、建议不要一次性的把很多元件都放好才焊,应该是先放几个,焊好后剪掉元件引脚线,再接着放和焊。元件插入电路板后,为了防止电路板翻转焊接时掉落,可以适当把元件脚掰过两边,但是千万不要把元件脚全部掰平到电路板上! 5、建议一个类型一个类型地焊接,比如先统一把所有电阻焊完,再统一焊接二极管,然后再统一焊电容,等等。这样就不会搞漏。 6、所有元器件,包括电容、发光二极管等,都应该尽可能压低到电路板表面后再在反面焊接,不要让元件歪歪扭扭的“站”在电路板上。 7、注意发光二极管、排针、排座芯片插座不要长久焊接,防止这些塑料件被烫坏而报废! 8、芯片插座,尤其是单片机插座,要认真检查所有针脚从电路板洞中全部露出来后再焊接,否则贸然焊接后才发现有脚没过来时,整个芯片插座可能得拆出来才能解决问题,不仅费工而且极可能使芯片插座报废! 二、调试指南: 把元件清单后半部分的元器件焊接完毕后,绝对不可以马上把清单的前部分器件如芯片等插入电路板通电测试,这样做会因为焊接等原因导致元器件大面积损坏!应按以下步骤一步步按顺序进行调试: 1、不要插入任何芯片、液晶显示模块、电池,先用万用表测量单片机芯片插座的第20脚(地线脚)和第40脚之间(电源脚)是否短路。如有一定要先排除,否则可能会导致电脑USB口和下载线的损坏!重点检查电路板的电源线有否与地线之间有毛刺粘连,尤其是左下角可调电阻的一个脚所在电源线与地线之间是否粘连。 2、板子正确接好下载线,然后插到电脑USB口,反复按动板子上的电源开关,这时左上角的电源指示灯应该可以亮灭。如果灯不亮,断电检查开关是否可以通断,电源指示灯是否焊反或烫坏。 3、接着用一根杜邦线一头接在地线上,一头顺序接通P2.0、P2.1……P2.7的引出脚,以及右边的十个LED灯的引出脚,此时对应的灯应该点亮,不亮的不是烫坏了就是焊反了。揭开蜂鸣器上的盖纸,地线接P2.0时,除灯亮外,应可听到蜂鸣器发出响声,不响的,检查所接三极管和蜂鸣器是不是接反。地线接P2.1时,应可听到继电器“滴答”的吸合声。 4、上述步骤检查通过的,则说明板子基本没问题了,可以进行下一步调试。没通过的绝对不可以继续下去! 5、断电,插上51单片机,注意芯片方向。运行下载软件,看看是否可以进行正常下载!注意最好使用STC的V481下载软件,并确保下载线驱动装好、串口号设对。如果电脑端无问题但还是不能下载的,重点检查下载线的收发两根线是否正确接到单片机收发口上(收发接反、收发线相互粘连或与别的线粘连)。能正常下载,说明板子基本可以正常使用了。 6、强烈建议,板子使用中,用到什么芯片再插入相应的芯片,不要一股脑儿全插上,避免不知不觉中未用到的芯片误连接或操作而损坏。尤其是纽扣电池,没用到时钟的坚决不能放到板上,它造成的DS1302芯片损坏率和板子不正常的几率奇高(芯片出厂或编程时没有进入电池不充电保护状态)!

单片机实验报告

实验报告 专业:计算机科学与技术班级:C093 姓名:孙丽君 学号:098677

实验一:数据传送实验 1.实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—A FH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV@R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H

MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 3.实验结果: 4. CPU 对8031内部RAM存储器有哪些寻址方式? 答:直接寻址,寄存器寻址,寄存器间接寻址,位寻址。

5. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH内容:A0~AF 内部RAM 50H~5FH内容:A0~AF 实验二多字节十进制加法实验 1.实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG0000H RESET: AJMP MAIN ORG0100H MAIN: MOV SP, #60H MOV R0, #31H MOV@R0, #22H DEC R0 MOV@R0, #33H

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支

持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

基于51单片机的开发板

江西工业学院 课程设计报告书 题目:基于STC89C52RD单片机实验板的制作 与程序设计 系别: 专业: 姓名:学号: 指导老师: 2016 年12 月

目录 第1节引言 (3) 1.2 基于89C51单片机系统实验板概述 (3) 1.2.1stc89C51单片机开发板硬件配置情况 (4) 1.2.2、stc89C51单片机实验板配套实验 (4) 第2节系统主要硬件电路设计 (5) 2.1 STC89C51单片机简介 (5) 2.2电源转换芯片MAX232 (6) 2.3 四位一体共阳LED数显 (7) 2.4 LED 灯电路 (8) 2.5 按键电路 (9) 2.6蜂鸣器 (9) 2.7 8*8点阵 (9) 第3节实验系统软件设计 (10) 3.1 花样流水灯程序设计: (10) 3.2.简易时钟程序设计: (11) 3.3 8*8点阵屏显示程序设计 (13) 第4节结束语 (14) 参考文献 (14) 附录 (14) 课程设计指导教师评语 (17)

基于STC89C52RD单片机系统实验板的制作与程序设计 第1节引言 单片微型计算机简称单片机,又称微控制器(MCU),它的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。本次课设采用的STC89C51单片机是51系列单片机的一种代表,目前51系列单片机是国内目前应用最广泛的一种单片机之一。单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计的基础课。 1.1本设计任务和主要内容 本设计以单片机STC89C52RD为控制核心,由八路LED模块、八路按钮模块、四位一体共阳数显模块、语音模块等部分组成。可实现花样流水灯、简易电子琴、外部中断控制、时间显示等功能。要求在将硬件电路准确无误地安装后进行软件调试,至少完成以下三个程序设计及调试任务 1 .1.1花样流水灯:程序循环输出到单片机P1口,从左到右依次点亮,每次增加一个,直至全亮;从左到右依次暗灭,每次减少一个,直至全灭;从右向左依次点亮,每次亮一个;从左到右依次点亮,每次亮一个;8个发光二极管闪烁三次;两个二极管前后追逐循环三次;两个按键控制,K1按下停止循环,K2按下继续循环。 1.1.2.简易时钟电路:采用动态扫描技术,四位数显实现数字时钟,要求显示时、分,K0调时、K1调分;整点报时。 1.1.3 8*8点阵屏显示程序设计:动态轮流显示数字0-9,字母A-Z 1.2基于89C51单片机系统实验板概述 本次课设所使用的单片机最小系统板包括以下器件:电源端子(DC +5V),可以USB供电,也可独立电源供电。通用异步串口,采用MAX232做电平转换。STC89C51单片机。各种颜色的LED发光二极管共9个,其中8个接于P1口做LED显示,还有一个做电源灯显示。四位一体共阳数码管可以实现时钟电路及动态扫描显示。还有其他电阻电容若干,系统板一个,大按键开关两个,用于中断控制和通信开关。

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

单片机实验指导书

单片机实验指导书 适用专业:计算机控制、网络、物联网等 学时:12 编写人:孔庆臣 2016-5-12

实验一 IO口输入输出实验 1. 实验内容 (1) P2口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2) P1口做输入口,接八个扭子开关,P2口接八只发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。 2. 实验目的 学习keil仿真软件的使用方法 学习IO口的使用方法。 学习延时子程序的编写和使用。 stc-isp软件的使用 3.有关说明 P1口为准双向口,P1的每一位都能独立地定义为输入或输出线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。单片机IO口在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。 可以用第二个实验做一下实验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。 再来看一下延时程序的实现。通常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为11.0592MHZ,则一个时钟周期为0.0904us。现要写一个延时0.1s的程序,可大致写出如下: void Delay100ms() //@11.0592MHz { unsigned char i, j, k; i = 5; j = 52; k = 195; do { do { while (--k); } while (--j); } while (--i); } 5.实验电路设计 (1)分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。 (2)画出本次实验独立的原理图 5、实验要求 (1)完成实验电路设计 (2)完成实验程序设计 (3)实现要求的实验结果

单片机实验室建设方案

单片机实验室建设方案 血糖测量的电生物化学原理是当施加一定电压于经酶反应后的血液产生的电流会随着血液中的血糖浓度的增加而增加。通过精确测量出这些微弱电流,并根据电流值和血糖浓度的关系,反算出相应的浓度。所以,确定这个关系是问题的核心。但其关系复杂,受多方面因素影响。电压强度、所使用的试条以及检测的血液量都会对其产生影响。理论上需要在所有浓度点上大量实验才能确定最终的关系。在实际操作中,只需在选择若干重要浓度点做大量实验,然后采用曲线拟合或插值等数据处理方式来确定其与电流值之间的关系。 血糖测量通常采用电化学分析中的三电极体系。三电极体系是相对于传统的两电极体系而言,包括,工作电极(WE),参比电极(RE)和对电极(CE)。参比电极用来定点位零点,电流流经工作电极和对电极工作电极和参比电极构成一个不通或基本少通电的体系,利用参比电极电位的稳定性来测量工作电极的电极电势。工作电极和辅助电极构成一个通电的体系,用来测量工作电极通过的电流。利用三电极测量体系,来同时研究工作电极的点位和电流的关系。如图1所示。

图1 三电极工作原理 方案描述 该血糖仪提供多种操作模式以适应不同场合的应用,另外提供了mmol/L,mg/dl,g/l 三种常见测量单位的自由切换并自动转换。该三个单位之间的转换关系如下:1mmol/L=18 mg/dL 1mmol/L=0.18 g/L 1 mg/dL=0.01 g/L 针对不同国家地区的不同要求,血糖仪可以采用以上任意一种单位来显示测量结果,转换的方式采取使用特殊的代码校正条来实现。 (1)单片机及内部硬件资源的充分利用。Silicon labs C8051F410单片机内部集成了丰富的外围模拟设备,使用户可以充分利用其丰富的硬件资源。C8051F410单片机的逻辑功能图如图2所示。利用其中12位的A/D转换器用来做小信号测量,小信号电流经过电流采样电路最终转换为电压由该A/D采样,然后以既定的转换程序计算出浓度显示在液晶

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机开发板的制作方法

单片机开发板的制作方法 单片机技术自发展以来已走过了近20年的发展路程。单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。小到遥控电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生单片机实验板普遍称为单片机开发板、也有单片机学习板的称呼。比较有名的例如电子人DZR-01A单片机开发板。 单片机开发板是用于学习51、STC、AVR型号的单片机实验设备。根据单片机使用的型号又有51单片机开发板、STC单片机开发板、AVR单片机开发板。常见配套有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。例如电子人单片机开发板,针对部分学者需要特别配套有VB上位机软件开发,游戏开发等教程学习资料。开发此类单片机开发板的公司一般提供完善的售后服务与技术支持。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。 而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux 操作系统。 常见配套资源如下: 1、硬件实验板及其配件如:连接线、CPU芯片、流水灯、点阵显示、ds18b20温度检测、彩色TFT液晶屏,SD卡,游戏开发(推箱子游戏)、收音机、mp3解码等。 2、实验程序源码,包含汇编源程序、C语言源程序。 3、电路原理图、PCB电路图。 4、实验手册、使用手册。 5、针对单片机开发板的详细讲解视频。 6、附加PCB设计制作、VB软件开发等计算机学习资料

单片机实验报告

单片机实验报告 【实验一】 一、实验名称 KEIL基本汇编语言测试 二、实验内容 1.建立KEIL工程。添加汇编程序 2.实现将R0的内容送R6,R0的初值设置为38H。

3.实现R1里的数据52H,和R3里的数据1DH相加功能。

上面结果相加后存储到A中,值为6FH 4.数据传送程序编写,把片内RAM的40H-4FH的16个字节的内容传送到片外RAM的 2000H单元开始的位置处。40H-4FH的内容在RAM里随机手动设置(我这里设置的是07,09) 5.发挥题,将上题40H-4FH的内容程序设置为100-115,并实现传输功能。

三、实验总结 1.初步实现了keil软件的应用,从程序的建立到编译再调试,从中领悟到了许多的困惑, 但后来自己也慢慢理解了 2.在第二题中,是将两个数相加,在这个过程中必须要借助累加器,不能直接相加,最 后的结果存放在A存储器中 3.在第三道题中,分别自己手动设置值存放在以2000H开始的16个字节单元中,在学 习过程中要认真的思考和观察,memory的变化 在循环体LOOP中,首先是将最开始40H放入R0中的值再传送到A中,然后又传送到指针指向的位置,传送数据的部分就是这样;然后又用INC R0和INC DPTR 分别将地址向后移一个,为下一个地址的传送做准; DJNZ R2,LOOP 计数减少循环,直至结束; SJMP $ 跳转到循环体LOPP的开始位置,再次循环。 【实验二】 一、实验名称 中断应用C51程序设计 二、实验内容 1.设计一个脉冲计数器,脉冲信号通过开关产生,能对脉冲的个数准确计数,数码管译 码代码参考程序已给出。(掌握外部中断计数器相关寄存器的设置应用!) 程序运行初态为100开始,按下计数就加1,按下清零则恢复为0

相关主题
文本预览
相关文档 最新文档