单片机实验指导书Word格式.docx

上传人:b****5 文档编号:18901311 上传时间:2023-01-02 格式:DOCX 页数:80 大小:259.02KB
下载 相关 举报
单片机实验指导书Word格式.docx_第1页
第1页 / 共80页
单片机实验指导书Word格式.docx_第2页
第2页 / 共80页
单片机实验指导书Word格式.docx_第3页
第3页 / 共80页
单片机实验指导书Word格式.docx_第4页
第4页 / 共80页
单片机实验指导书Word格式.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

单片机实验指导书Word格式.docx

《单片机实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式.docx(80页珍藏版)》请在冰豆网上搜索。

单片机实验指导书Word格式.docx

●数码管跑马显示

●行列按键显示

●中断

●定时/计数器

●串行通信

●串行D/A实验

●串行A/D实验

如果综合利用上述资源,用户可以设计诸如多功能数字钟、波形发生器、数字电压表、音乐盒、频率计、抢答器、计算器、模拟量采样等应用系统,为了用户开发的灵活性,实验板还预留了扩展板,可加焊少量器件。

用户可以通过此电路板组建一些较简单的系统,掌握嵌入式系统设计的初步技巧。

本实验板可作为学生课程设计、毕业设计的硬件平台。

如果读者需要此ISP多功能实验板可向本教材编者咨询,本教材前言中有联系方法。

本指导书对任何实验装置实用。

第二章单片机在系统编程多功能实验板说明

2.1单片机在系统编程多功能实验板的结构图

单片机在系统编程多功能实验板的结构图如图2-1所示。

图2-1ISP单片机综合实验板方框图

注意:

板上的单片机也可以用89C51/52,只是不能在系统编程,必须另用编程器编程。

2.2单片机在系统编程多功能实验板的元件分布

单片机在系统编程多功能实验板的元件分布如图2-2所示。

图2-2单片机在系统编程实验板的元件分布图

2.3多功能实验板的电路图

2.3.1单片机在系统编程多功能实验板的电路原理如图2-3所示。

图2-3单片机在系统编程多功能实验板的电路图

2.3.2实验板的跳线、开关、按钮功能

结合系统电路图和元件布局图,对系统处于运行状态下的跳线、开关、按钮做如下说明。

一、跳线JP1~JP4

用短接块改变跳线的状态来改变电路的连接。

下面对系统中的4组跳线分别进行说明。

●JP1串行A/DTLC0832双通道模数转换器。

通道0与接线端子相连,可以外扩传感器作为通道0的模拟量输入。

通道1的模拟量输入信号源有两个。

通过短接块来选择。

当JP1短接帽插上,JP1两插针短接,串行A/D通道1模拟量输入信号来自滑动变阻器。

我们可以通过调节电位器可调端来改变通道1的模拟量输入的大小;

当此短接块拔掉,外接模拟信号可由555定时器通过JP3中的5、6脚短接引入。

●JP2JP2是1组两路并行的跳线。

它的设置改变带锁按压开关S2产生的脉冲的去向,以决定是外部终端INT0使用脉冲源还是计数器T0使用脉冲源。

当短接块将JP2的1、2脚相连时,脉冲源向外部中断INT0提供中断所需的脉冲,每按两次开关S2,产生一个脉冲,向外部中断INT0提供中断请求信号。

当短接块将JP2的3、4脚相连时,脉冲源向计数器T0提供外部计数脉冲,每按两次开关S2,产生一个计数脉冲。

●JP3JP3是1组三路并行的跳线。

它的设置改变555定时器产生脉冲的去向,以决定是外部终端INT1使用脉冲源,或者是计数器T0使用脉冲源,或者是串行A/D的模拟信号输入。

当短接块将JP3的1、2脚相连时,脉冲源向外部中断INT1提供中断所需的脉冲;

当短接块将JP3的3、4脚相连时,脉冲源向计数器T0提供外部计数脉冲;

当短接块将JP3的5、6脚相连时,脉冲源向串行A/D提供模拟信号输入。

●JP7JP7控制串行口的发送和接收,当短接块将JP7的1、2脚相连时,串行口实现自发自收。

当短接块拔除,则串行口向外发送信号或接收外部信号。

二、开关K1~K16

K1~K16拨位开关用作按键输入设备,用于置数或控制,例如用户可以通过此十六位开关选择运行单片机中的各个子程序。

三、四位拨动开关

提供四位开关量输入,通过拨动不同的开关决定每一路的输入状态。

四、带锁按压开关S2

带锁按压开关S2主要用于产生定时/计数器T0所需的外部计数脉冲和外部中断INT0所需的中断请求信号。

每按一次脉冲源电路输出电平变化一次,按两次才会产生一个脉冲。

五、复位按键RST

系统中有1个复位按键,用于单片机复位,每按一下,单片机复位一次。

六、发光二极管

当系统接通电源,处于工作状态时,二极管亮,否则二极管灭。

第三章相关软件的介绍

STC89系列单片机大部分具有在系统可编程(ISP)特性,ISP的好处是:

省去购买编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。

3.1STC-ISP.exe软件的下载

3.1.1如何获得及使用STC提供的ISP下载工具(STC-ISP.exe软件):

1.获得STC提供的ISP下载工具(软件)

登陆www.MCU-M网站,从STC半导体专栏下载PC端的ISP程序,然后将其自解压,再安装即可(执行STC-ISPV391.exe),注意随时更新软件。

下载界面如图3-1所示。

2.使用STC-ISP下载工具(软件),请随时更新。

图3-1STC-ISP.exe软件下载界面

3.已经固化有ISP引导码,并设置为上电复位进入ISP的STC89C51RC/RD+系列单片机出厂时就已完全加密,需要单片机内部的电放光后上电复位(冷启动)才运行系统ISP程序。

4.如果电路板上除了接RS-232转换器外,还接了RS-485等电路,需要将其断开。

系统接了RS-485电路的,推荐在选项中选择下次冷启动时需P1.0/P1.1=1.1才判是否下载程序。

3.1.2STC-ISP.exe软件调试过程

STC-ISP.exe软件运行界面如图3-2所示:

调试步骤如下:

1.选择你所使用的单片机型号,例如,本实验电路板选用的单片机型号为STC89C52RC。

2.打开文件,选择要烧录的实验程序,必须调用实验程序代码,格式为*.bin或*.hex。

(当在仿真软件中编译时自动生成*.hex文件)每烧写一次新程序,要先指定缓冲区起始地址并清缓冲区;

如果重复使用程序,则不能再清缓冲区。

3.选择串行口,使用的电脑串口,如串行口1对应COM1,串行口2对应COM2……有些新式笔记本电脑没有RS-232串行口,可买一条USB-RS232转换器。

我们选择COM1。

根据所选用的晶振来确定选择最高波特率。

4.设置是否双倍速,双倍速选中DoubleSpeed即可。

我们选择单倍速。

5.选择“Download/下载”按钮下载用户的程序进单片机内部,可重复执行步骤5,也可选择“Re-Download/重复下载”按钮。

下载时注意看提示,主要看是否要给单片机上电或复位,下载速度比一般通用编程器快。

一般先选择“Download/下载”按钮(彻底断电),然后再给单片机上电复位,而不要先上电。

新的设置冷启动后才生效。

上电后,文件缓存区如图3-2右侧所示。

图3-2STC-ISP.exe软件运行界面

第四章实验指导书

实验一数码管跑马显示

一、实验目的

1、熟悉51单片机并行口的输入方式,输出方式的编程;

2、熟悉共阴极LED的工作特性及控制方法;

3、学习在系统烧写单片机程序(在系统编程ISP)的方法。

二、实验电路和程序

1、实验电路

一个数码管由8个发光二极管组成,由于是共阴极,所以低电平选通。

如图4-1所示,SN74ALS245A接成直通方式通过P0口驱动数码管。

由74LS138对P1口译码控制SN74ALS245A驱动6个数码管的位选,剩余两路,一路接到发光二极管,另一路控制蜂鸣器。

由程序进行选通控制。

2、程序

(1)汇编程序:

通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管继续闪亮。

通过复位按键进行复位。

图4-1实验电路图

图表1

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVA,#00H

MOVP1,A

MOVR0,#00H

LS:

MOVA,R0

MOVDPTR,#TAB0

MOVCA,@A+DPTR

MOVP1,A;

数码管位选跑马

MOVDPTR,#TAB1

MOVP0,A;

数码管数字显示

INCR0

ACALLDELAY

MOVP1,#0E0H

SJMPLS

DELAY:

MOVR5,#08H;

延时

DELAY1:

MOVR6,#0FAH

DELAY2:

MOVR7,#0FAH

DJNZR7,$

DJNZR6,DELAY2

DJNZR5,DELAY1

RET

TAB0:

DB00H,20H,40H,60H,80H,0A0H,00H,20H,40H,60H

DB80H,0A0H,00H,20H,40H,60H,80H,0A0H,00H,20H

TAB1:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH

END

(2)C语言程序:

通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管长亮。

#include<

reg52.h>

stdio.h>

#defineucharunsignedchar

#defineuintunsignedint

uinta[20]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

uintb[20]={0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20,0x40,0x60,

0x80,0xa0,0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20};

voiddelay(uintcount)/*延时子程序*/

{

uinti;

while(count--!

=0)

for(i=0;

i<

72;

i++);

}

main()

uintj;

for(j=0;

j<

20;

j++)

{

P0=a[j];

/*数字显示*/

P1=b[j];

/*数码管跑马*/

delay(1000);

/*延时*/

P1=0xe0;

}

(3)自编程序:

编程并烧写程序,6个数码管依次显示6,5,2,3,0.,9;

然后,6个数码管同时点亮,显示65230.9。

再编一个小程序,在五个数码管上显示“HELLO”。

三、编写程序并在实验板上执行通过

1、数码管跑马显示0~9,0.~9.,测试数码管性能;

2、数码管依次显示6,5,2,3,0.,9,由于数码管位选决定每次只有一个数码管点亮,所以利用视觉误差使6个数码管同时点亮,显示65230.9;

3、自编数码管段代码,用数码管显示英文“HELLO”;

4、复位按键复位,重复执行。

实验二行列按键显示

1、熟悉行列按键的定位方法;

2、进一步学习在系统编程(ISP)的方法。

二、实验电路

图4-2实验电路图

实验电路图如图4-2所示,按键信号由P2口进行识别,通过对按键坐标的判断来定义数码管的显示位和显示内容。

三、实验程序

16个按键按照从左至右,从上至下的顺序排列,操作时分别显示0,1,2,3,4,5,6,7,8,9,0.,1.,2.,3.,4.,8.;

其中后六位分别代表A,B,C,D,E,F,复位键复位。

1、汇编程序:

KEYBUFEQU30H

ORG0000H

LJMPLS0

ORG0030H

LS0:

MOVP2,#0FH;

判断纵坐标

MOVR1,#0FH

AJMPSKH

SKH:

MOVA,P2

ANLA,R1

XRLA,R1

MOVR0,A

CJNEA,#0FH,LS1

ACALLSKH

LS1:

MOVP2,#0F0H;

判断行坐标

MOVR2,#0F0H

AJMPSKL

SKL:

ANLA,R2

XRLA,R2

MOVR6,A

CJNEA,#0F0H,KEY0

ACALLSKL

KEY0:

MOVA,R6;

判断如果是第一个按键操作,则显示偏移量为0

ADDA,R0

CJNEA,#11H,KEY1

MOVKEYBUF,#0

LJMPUK

KEY1:

判断如果是第二个按键操作,则显示偏移量为1

依次类推

CJNEA,#21H,KEY2

MOVKEYBUF,#1

KEY2:

MOVA,R6

CJNEA,#41H,KEY3

MOVKEYBUF,#2

KEY3:

CJNEA,#81H,KEY4

MOVKEYBUF,#3

KEY4:

CJNEA,#12H,KEY5

MOVKEYBUF,#4

KEY5:

CJNEA,#22H,KEY6

MOVKEYBUF,#5

KEY6:

CJNEA,#42H,KEY7

MOVKEYBUF,#6

KEY7:

CJNEA,#82H,KEY8

MOVKEYBUF,#7

KEY8:

CJNEA,#14H,KEY9

MOVKEYBUF,#8

KEY9:

CJNEA,#24H,KEY10

MOVKEYBUF,#9

KEY10:

CJNEA,#44H,KEY11

MOVKEYBUF,#10

KEY11:

CJNEA,#84H,KEY12

MOVKEYBUF,#11

KEY12:

CJNEA,#18H,KEY13

MOVKEYBUF,#12

KEY13:

CJNEA,#28H,KEY14

MOVKEYBUF,#13

KEY14:

CJNEA,#48H,KEY15

MOVKEYBUF,#14

KEY15:

CJNEA,#88H,KEY16

MOVKEYBUF,#15

KEY16:

LJMPLS0

UK:

MOVA,KEYBUF;

数码显示模块

LCALLDELAY

MOVA,KEYBUF

MOVP0,A

LCALLDL10MS

MOVR2,#0FEH

DJNZR2,DELAY1

DL10MS:

MOVR3,#14H

DL10MS1:

DJNZR3,DL10MS1

RET

DB00H,20H,40H,60H,80H,0A0H,00H,20H

DB40H,60H,80H,0A0H,00H,20H,40H,60H

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,0BFH,86H,0DBH,0CFH,0E6H,0FFH

2、C语言程序:

uchara[4][4]={{0x00,0x20,0x40,0x60},{0x80,0xa0,0x00,0x20},

{0x40,0x60,0x80,0xa0},{0x00,0x20,0x40,0x60}};

ucharb[4][4]={{0x3f,0x06,0x5b,0x4f},{0x66,0x6d,0x7d,0x07},

{0x7f,0x6f,0xbf,0x86},{0xdb,0xcf,0xe6,0xff}};

ucharrnum,lnum;

voiddelay(uintcount)/*延时*/

uchart;

for(t=0;

t<

t++);

ucharkeysacn(void)

{

P2=0x0f;

/*确定按键列*/

if((P2&

0x0f)!

=0x0f)

{

delay(5);

if((P2&

if(P2==0x0e)

rnum=1;

if(P2==0x0d)

rnum=2;

if(P2==0x0b)

rnum=3;

if(P2==0x07)

rnum=4;

}

P2=0xf0;

/*确定按键行*/

0xf0)!

=0xf0)

if(P2==0xe0)

lnum=1;

if(P2==0xd0)

lnum=2;

if(P2==0xb0)

lnum=3;

if(P2==0x70)

lnum=4;

P0=b[rnum-1][lnum-1];

P1=a[rnum-1][lnum-1];

while

(1)

keysacn();

3、自编程序

编程并烧写程序,按键1按下,数码管显示65230.9,数码管2按下显示“HELLO”。

四、编写程序并在实验板上执行通过

1、调试已有程序,实现按键操作与数码管显示的对应;

2、按键1操作,显示6523.9;

按键2操作,显示“HELLO”;

3、复位,重复操作。

实验三中断

了解中断的产生及影响过程,掌握中断程序的编制。

二、实验连线

用短接块将JP2的3、4脚相连(即连向INT0方向),RS触发器(消抖电路)向单片机的外部中断INT0引脚提供中断所需的脉冲,每按两次开关S2,电平变反一次,产生一个跳变沿,作为外部中断INT0的中断请求信号。

实验电路如图4-3所示。

图4-3实验电路图

记录并显示INT0的中断次数,在数码管中显示出来,即每产生一次中断,显示加一。

中断次数不超过16次

1、汇编程序

AJMPNT

ORG0003H

AJMPINT0R

NT:

MOVIE,#81H;

允许INT0中断,置EA=1

SETBIT0;

边沿触发中断

MOVR0,#00H;

计数初值为0

BIO:

MOVP1,#0A0H;

第6个数码管显示终端次数

MOVDPTR,#TAB0;

字形码表送至DPTR

MOVCA,@A+DPTR;

查表

显示

SJMP$;

等待中断

INT0R:

CJNER0,#10H,RET0;

中断是否满15次

循环

RET0:

POPDPH

POPDPL

MOVDPTR,#BIO

PUSHDPL;

修改终端返回值

PUSHDPH

RETI

DB7FH,6FH,0BFH,0DBH,0CFH,0E6H,0EDH,0F

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

当前位置:首页 > 求职职场 > 简历

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

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