《单片机原理及应用》实验指导书C语言Word下载.docx
- 文档编号:8603632
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:14
- 大小:28.03KB
《单片机原理及应用》实验指导书C语言Word下载.docx
《《单片机原理及应用》实验指导书C语言Word下载.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验指导书C语言Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
三、实验内容及步骤启动PC机,安装好KeilC51软件以及烧录软件,用串口线连接计算机与实验板(USB线提供电源)。
打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着建立源程序,编译无误后,全速运行程序。
可把源程序编译成可执行文件,用烧录器烧录到89芯片中。
四、Keilc软件使用说明1、打开程序
双击程序2、新建工程Project→NewProject→保存工程→选择CPU(一般选ATMEL公司的AT89S51)-17-3、设置工程:
右击→Optionsfor‘Target1’→→选择CreateHEX(输出HEX文件)。
-18-4、新建源文件选File→New→输入、编辑源程序→保存(汇编源程序文件名.asm;
C源程序文件名.c)5、为工程添加源文件在Project出口File页上单击文件组,选择AddFilestoGroup‘SourceGroup1’选项,选择你的源文件和文件类型,然后点击ADD,再点击close。
-19-6、编译点击,或右击Target1→BuildTargetF7,就可对源程序进行编译。
当程序有语法错误时,会在输出窗口(OutputWindows)中显示错误信息和警告信息,修改编译成功后会生成HEX文件。
7、下载、调试
编译成功后,用在线烧录程序将.HEX文件下载到单片机内部ROM中运行,在运行过程中若发现错误要重新修改程序,并编译后再下载运行。
五、烧录软件的使用1、打开在线烧录程序2、选择MCU类型(STC89C51RC)1、点击,打开工程目录下的hex文件2、选择端口(一般是COM1)3、点击Download烧录程序4、打开实验板上的电源(如果烧录的时候出现问题,点击stop)注意
5、6两步骤的顺序不能颠倒!
即在点击Download之前要先关掉实验板上的电源。
实验二单片机控制LED灯点亮一、实验目的进一步熟悉编程和程序调试学习P1口的使用方法学习延时子程序的编写和使用二、实验说明
(1)输出控制。
如图1所示,当P1.端口输出高电平,即P=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;
当P1.端口输出低电平,即P1.=时,发光二极管L1亮;
我们可以使用SETBP指令使P端口输出高电平,使用CLRP指令使P1.端口输出低电平。
(2)延时子程序的设计方法作为单片机的指令的执行时间是很短的,数量达微秒级,因此,如果我们要求的闪烁时间间隔为.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?
下面具体介绍其原理
石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒MOVR6,#22个机器周期 2D1:
MOVR7,#2482个机器周期 2×
2 DJNZR7,$2个机器周期 2×
248×
2 DJNZR6,D12个机器周期 2×
2=4 12因此,上面的延时程序时间为1.2ms。
由以上可知,当R6=1、R7=248时,延时5ms,R6=2、R7=248时,延时1ms,以此为基本的计时单位。
如要求.2秒=2ms,1ms×
R5=2ms,则R5=2,汇编延时子程序如下
DELAY:
MOVR5,#2D1:
MOVR6,#2D2:
MOVR7,#248DJNZR7,$DJNZR6,D2DJNZR5,D1RETC语言延时子程序如下
voiddelay2s(void)//延时.2秒子程序{unsignedchari,j,k;
for(i=2;
i>
;
i--)for(j=2;
j>
j--)for(k=248;
k>
k--);
}三、实验步骤及参考例子实验步骤说明
本实验需要用到单片机最小应用系统。
用P1口做输出口,程序功能使发光二极管点亮。
用串行数据通信线连接计算机与实验板,用USB给实验板提供电源打开KeiluVision2仿真软件,首先建立本实验的项目文件,输入源程序(参考程序1),进行编译,直到编译无误。
生成hex文件。
通过STC-ISP下载软件,将hex文件下载到实验板内,观察发光二极管显示情况。
参考例子
(1)点亮板子上的第一个灯D
(2)让第一个灯闪烁四、参考程序
(一)适用于mini8E实验板1)#include<
reg5h>
voidmain(){P1=xfe;
}2)#include<
#defineuintunsignedint#defineucharunsignedchardelay();
voidmain(){while
(1){P1=xfe;
delay();
P1=xff;
}}voiddelay(){uintx,y;
for(x=1;
x>
x--)for(y=6;
y>
y--);
}
(二)适用于自制最小系统实验板
(1)#include<
voidmain(void){P2=x;
P2=x1;
P=xfe;
}
(2)#include<
voiddelay(void);
while
(1){P2=x1;
//P2=x;
P=xff;
}}voiddelay(void){intx,y;
for(x=6;
x--)for(y=1;
y--);
}六、实验内容请在keil环境下编写以下程序
1)点亮最后一个LED(或者任意一个LED,或者任意几个LED)2)让点亮的LED闪烁3)点亮板子上的D、D2、D4、D6灯,与D1、D3、D5、D7灯交替闪烁4)设计出流水灯程序,从D7—D或从D-D7实验三模拟开关灯1.实验目的进一步熟悉编程和程序调试学习独立按键的使用方法2.实验说明如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态,又称独立式键盘接口电路。
检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的按键处理。
编写单片机的键盘检测程序时,一般在检测按下时加入去抖延时,检测松手时就不用加了。
3、参考例子1)通过四个按键来控制LED灯的显示情况
S1D点亮S2D1点亮S3D2点亮S4D3点亮4、参考程序
(一)适用于自制实验板#include<
REG5H>
#defineuintunsignedint#defineucharunsignedcharucharflag;
ucharkey_down;
sbitLED2=P^;
sbitLED3=P^1;
sbitLED4=P^2;
sbitLED5=P^3;
voiddelay(uintk){uintdatai,j;
for(i=;
i<
k;
i++){for(j=;
j<
121;
j++){;
}}}ucharscan_key(void){uchartemp;
temp=P3;
returntemp;
}voidmain(void){key_down=;
P3=xf7;
while
(1){P3=xf7;
if((P3!
=xf7)&
&
(key_down==)){delay
(2);
(key_down==)){flag=scan_key();
key_down=1;
switch(flag){casexe7:
LED2=~LED2;
break;
casexd7:
LED3=~LED3;
casexb7:
LED4=~LED4;
casex77:
LED5=~LED5;
default:
break;
}}}if(P3==xf7){key_down=;
}}}
(二)适用与mini8E板#include<
}voidmain(void){while
(1){P3=xff;
if(P3!
=xff){delay
(2);
=xff)flag=scan_key();
}elseflag=;
switch(flag){casexfe:
P1=xfe;
casexfd:
P1=xfd;
casexfb:
P1=xfb;
casexf7:
P1=xf7;
P1=xff;
}}}或者include<
sbitLED2=P1^;
sbitLED3=P1^1;
sbitLED4=P1^2;
sbitLED5=P1^3;
P3=xff;
while
(1){P3=xff;
=xff)&
}}}if(P3==xff){key_down=;
}}}5、实验内容1)8个按键分别对应8盏led灯的亮灭(针对自制教学板)2)通过四个按键来控制LED灯的显示情况
S1D-D3点亮S2D2点亮S3D-D7点亮S4D-D5点亮实验四单片机控制数码管实验一、实验目的掌握数码管是如何显示出字符进一步掌握延时子程序的使用二、实验原理数码管两种接法共阴极数码管编码§
x3f,x6,x5b,x4f,x66,x6d,§
12345§
x7d,x7,x7f,x6f,x77,x7c,§
6789AB§
x39,x5e,x79,x71,x§
CDEF无显示请思考共阳极数码管的编码。
三、参考例子1)让第一个数码管显示一个8字A)对于MINI8E实验板(共阴极),数码管的选通是通过P2口控制三八译码器得到的,要让第一个数码管显示8字,那么别的数码管的位选就要关闭,即只打开第一个数码管的位选。
控制位选的P2口要输出的数据位xf7(二进制为1111111)。
位选确定后,在确定段选,要显示的是8,那么只有dp段为,其余段为1,所以P口要输出x7f(二进制1111111)。
B)对于自制实验板(共阳极),数码管的选通是通过P2口控制的。
要让第一个数码管显示8字,那么别的数码管的位选就要关闭,即只打开第一个数码管的位选。
控制位选的P2口要输出的数据位x8(二进制为1)。
位选确定后,在确定段选,要显示的是8,那么只有dp段为1,其余段为,所以P口要输出x8(二进制1)。
2)在四个数码管上显示1,2,3,4位选接P2口左边四个数码管DS3DS2DS1DS对应的P2口
xf3xf2xf1xf右边四个数码管DS3DS2DS1DS对应的P2口
xf7xf6xf5xf4段选接P口四、参考程序
(一)mini8e实验板1)#include<
voidmain(void){while
(1){P2=xf7;
P=x7f;
}}2)#include<
#defineuintunsignedint#defineucharunsignedcharvoiddelay();
P=x66;
P2=xf6;
P=x4f;
P2=xf5;
P=x5b;
P2=xf4;
P=x6;
}}voiddelay()//延时程序1{uintx,y;
for(x=2;
x--)for(y=112;
}
(二)自制教学实验板(共阳极数码管)
(1)#include<
voidmain(void){while
(1){P2=x8;
P=x8;
P=x99;
P2=x4;
P=xb;
P2=x2;
P=xa4;
P=xf9;
}五、原理图六、实验内容1)用一位数码管循环显示-9;
2)用数码管显示字母A-F;
3)交替点亮4个数码管。
(例如开始时在数码显示器的最右边一位上显示1个“”字,以后每隔.5秒将“”字左移1位,直到最左边一位后则停止显示。
)4)结合实验3,实现按键与数字的一一对应。
实验五中断系统应用实验一、实验目的掌握外部中断技术的基本使用方法掌握中断处理程序的编写方法二、实验说明外部中断的初始化设置共有三项内容中断总允许即EA=1,外部中断允许即EXi=1(i=或1),中断触发方式设置。
中断触发方式设置一般有两种方式电平触发方式和脉冲(边沿)触发方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。
因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT(P2)和INT1(P3)引入,本实验由INT(P2)引入。
中断控制原理
中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个TCON、IE、SCON及IP。
中断响应的过程
首先中断采样然后中断查询最后中断响应。
采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE或IE1置“1”;
否则继续为“”。
所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。
中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。
851的中断系统851的中断系统包括5个中断源,并提供两个优先级,允许用户对中断源进行独立控制和中断优先级设置.851支持的5个中断源分别为外部中断、定时器溢出中断、外部中断1、定时器1溢出中断和串口中断。
对应的中断号为、1、2、3、4;
寄存器有4个工作组可以切换,为-3;
C51中,中断服务程序是以中断函数的方式来时实现的。
中断函数格式如下
void函数名()interrupt中断号using工作组{中断服务程序内容;
}三、参考例子1)右边的三个数码管从“”开始进行加法计数。
按动按键时计数暂停,再按继续计数。
四、参考程序
(一)适用于自制教学实验板#include<
#defineucharunsignedchar#defineuintunsignedintsbitP37=P3^7;
ucharcodetable[1]={xc,xf9,xa4,xb,x99,x92,x82,xf8,x8,x9};
ucharcodewei[4]={x8,x4,x2,x1};
uintcnt;
bitflag;
voidinit(void){bitflag=;
//设置标志EA=1;
//开中断EX=1;
//外部中断开中断IT=1;
//外部中断的触发方式}voiddelay(uintk){uintdatai,j;
i++){for(j=;
j++){;
}}}voidmain(void){uchari;
P37=;
init();
while
(1){if(flag)cnt++;
if(cnt>
999)cnt=;
1;
i++){P=table[cnt/1];
P2=wei[2];
delay
(1);
P=table[(cnt%1)/1];
P2=wei[1];
P=table[cnt%1];
P2=wei[];
}}}voidextern_int(void)interruptusing{flag=!
flag;
}
(二)适用于MINI8E实验板#include<
ucharcodetable[1]={x3f,x6,x5b,x4f,x66,x6d,x7d,x7,x7f,x6f};
ucharcodewei[4]={xf7,xf6,xf5,xf4};
}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 单片机 原理 应用 实验 指导书 语言