《单片机应用》实验指导书Word文件下载.docx

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

《单片机应用》实验指导书Word文件下载.docx

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

《单片机应用》实验指导书Word文件下载.docx

(3)C语言源程序

#include<

AT89X51.H>

sbitL1=P1^0;

voiddelay02s(void)//延时0.2秒子程序

{

unsignedchari,j,k;

for(i=20;

i>

0;

i--)

for(j=20;

j>

j--)

for(k=248;

k>

k--);

}

voidmain(void)

while

(1)

L1=0;

delay02s();

L1=1;

广告灯的左移右移

进一步熟悉软件的操作和使用方法;

(1)做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

(2)比较程序的特点,了解语言程序设计的基本思路和指令应用。

(1)输入程序1并检查无误,对程序进行调试

(2)按照实验连线要求连接,运行程序观察二极管的是否是不停的亮灭。

(3)输入程序、调试和装载;

(4)运行程序,观察8个二极管的亮灭情况是否为顺序点亮

七、实验电路图及程序流程图

每次送出的数据是不同,具体的数据如下表1所示:

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

说明

L8

L7

L6

L5

L4

L3

L2

L1

 

1

L1亮

L2亮

L3亮

L4亮

L5亮

L6亮

L7亮

L8亮

表1

程序框图

 

unsignedchari;

unsignedchartemp;

unsignedchara,b;

voiddelay(void)

unsignedcharm,n,s;

for(m=20;

m>

m--)

for(n=20;

n>

n--)

for(s=248;

s>

s--);

temp=0xfe;

P1=temp;

delay();

for(i=1;

i<

8;

i++)

a=temp<

<

i;

b=temp>

>

(8-i);

P1=a|b;

a=temp>

b=temp<

外部中断实验

(1)掌握中断程序设计思想。

(2)学习中断服务程序的编写

开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。

(1)输入程序1并检查无误,对程序进行汇编、调试,将程序装载到仿真开发系统。

(2)连接电路,按下按键,观察二极管是否发光。

(3.系统板上硬件连线

(1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;

(2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;

要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。

4.程序设计方法

(1.设计思想由来

在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;

那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。

(2.设计方法

从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控制,我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时,ID=0;

当L2在闪烁时,ID=1;

当L3在闪烁时,ID=2;

当L4在闪烁时,ID=3;

很显然,只要每次按下开关K1时,分别给出不同的ID号我们就能够完成上面的任务了。

下面给出有关程序设计的框图。

5.程序框图

 C语言源程序

unsignedcharID;

voiddelay10ms(void)

unsignedchari,j;

for(j=248;

j--);

voiddelay02s(void)

{delay10ms();

{while

(1)

{if(P3_7==0)

if(P3_7==0)

ID++;

if(ID==4)

ID=0;

while(P3_7==0);

switch(ID)

{case0:

P1_0=~P1_0;

break;

case1:

P1_1=~P1_1;

case2:

P1_2=~P1_2;

case3:

P1_3=~P1_3;

}

实验5定时器实验

(1)掌握定时器设计思想;

(2)学习程序设计的方法,特别是定时器相关的中断服务程序的编写

用AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。

0.2秒的闪烁速率也由定时/计数器T0来完成。

设系统的晶振频率为12MHz。

六、操作步骤及工作要点

(1)输入程序1并检查无误,对程序进行调试,将程序装载到仿真开发系统。

(2)连接电路,观察二极管发光情况。

(略)T0中断服务程序框图

主程序框图

C语言源程序

unsignedchartcount2s;

unsignedchartcount02s;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

while

(1);

voidt0(void)interrupt1using0

tcount2s++;

if(tcount2s==40)

tcount2s=0;

tcount02s++;

if(tcount02s==4)

tcount02s=0;

case0:

实验6单片机与PC通信实验

(1)掌握单片机与PC通信程序的设计方法;

利用MAX232芯片和DB9接插件,将单片机系统和PC机通过RS232协议相联。

实现计算机和单片机相互通信。

(1)利用软件给单片机发一串数据,再读会这段数据。

(2)观察结果

(略)

reg51.h>

string.h>

/*初始化串口,使用中断*/

voidinit_serialcomm(void)

SCON=0x50;

//SCON:

serailmode1,8-bitUART,

TMOD|=0x20;

//TMOD:

timer1,mode2,8-bitreload(TH=TL=初始值)定时器T1工作于方式2

PCON|=0x80;

//SMOD=1;

//TH1=0xF4;

//Baud:

4800fosc=11.0592MHz

TH1=0xFA;

9600fosc=11.0592MHz

//TL1=0xF4;

TL1=0xFA;

IE|=0x90;

//EnableSerialInterrupt

TR1=1;

//timer1run

//EA=1;

//开CPU中断

//ES=1;

//允许串行口中断

//向串口发送一个字符

voidsend_char_com(unsignedcharch)

{

SBUF=ch;

while(!

TI);

TI=0;

//向串口发送一个字符串

voidsend_string_com(unsignedchar*str)

while(*str!

=0x00)

send_char_com(*str);

str++;

//串口接收中断函数

voidserial()interrupt4using3

if(RI)

unsignedcharch;

RI=0;

ch=SBUF;

send_char_com(ch);

main()

unsignedi,j,k=1;

init_serialcomm();

//初始化串口

send_string_com("

串口调试现在开始"

);

//注意:

当使用send_string_com函数一次发送的字符串较长时需设置较高的波特率,

//否则传输时会出现乱码;

本程序调试成功了

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

当前位置:首页 > 高等教育 > 军事

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

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