单片机实验指导书Word格式.docx
- 文档编号:18901311
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:80
- 大小:259.02KB
单片机实验指导书Word格式.docx
《单片机实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式.docx(80页珍藏版)》请在冰豆网上搜索。
●数码管跑马显示
●行列按键显示
●中断
●定时/计数器
●串行通信
●串行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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书