《单片机应用》实验指导书.docx

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

《单片机应用》实验指导书.docx

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

《单片机应用》实验指导书.docx

《单片机应用》实验指导书

 

《单片机》实验指导书

 

实验项目1熟悉实验平台

实验目的

(1)熟悉实验台软件仿真软件和仿真开发系统。

(2)了解实验系统的运用。

(3)了解仿真器和烧录器。

实验的内容及要求

(1)能熟悉的运用实验台软件,正确的连接把实验箱与PC机连接。

(2)完成一个简单流水灯控制程序,每灯亮一约秒,用延时实现。

实验场地与器材

实验地点:

计算机系统实训室。

器材:

PC机、实验箱。

操作步骤及工作要点

(1)启动进入实验台软件,编写工作程序。

(2)汇编、调试,然后将程序载入目的文件。

(3)将程序装载到仿真开发系统。

(4)相关的实验单元按照实验要求进行连接。

(5)启动程序,检查程序运行效果,完成有关的项目实验。

实验的电路图及程序流程图

(1)电路图:

(2)程序流程图:

(3)C语言源程序

#include

sbitL1=P1^0;

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

{

unsignedchari,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

voidmain(void)

{

while

(1)

{

L1=0;

delay02s();

L1=1;

delay02s();

}

}

广告灯的左移右移

实验目的

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

实验的内容及要求

(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)比较程序的特点,了解语言程序设计的基本思路和指令应用。

实验场地与器材

实验地点:

计算机系统实训室。

器材:

PC机、实验箱。

操作步骤及工作要点

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

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

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

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

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

(1)电路图:

(2)程序流程图:

每次送出的数据是不同,具体的数据如下表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

1

1

1

1

1

1

0

L1亮

1

1

1

1

1

1

0

1

L2亮

1

1

1

1

1

0

1

1

L3亮

1

1

1

1

0

1

1

1

L4亮

1

1

1

0

1

1

1

1

L5亮

1

1

0

1

1

1

1

1

L6亮

1

0

1

1

1

1

1

1

L7亮

0

1

1

1

1

1

1

1

L8亮

表1

程序框图

 

 

 

 

 

 

(3)C语言源程序

#include

unsignedchari;

unsignedchartemp;

unsignedchara,b;

voiddelay(void)

{

unsignedcharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

voidmain(void)

{

while

(1)

{

temp=0xfe;

P1=temp;

delay();

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

{

a=temp<

b=temp>>(8-i);

P1=a|b;

delay();

}

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

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

外部中断实验

实验目的

(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在闪烁了,如此轮流下去。

实验场地与器材

实验地点:

计算机系统实训室。

器材:

PC机、实验箱。

操作步骤及工作要点

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

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

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

(1)电路图:

(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语言源程序

#include

unsignedcharID;

voiddelay10ms(void)

{

unsignedchari,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voiddelay02s(void)

{

unsignedchari;

for(i=20;i>0;i--)

{delay10ms();

}

}

voidmain(void)

{while

(1)

{if(P3_7==0)

{delay10ms();

if(P3_7==0)

{

ID++;

if(ID==4)

{

ID=0;

}

while(P3_7==0);

}

}

switch(ID)

{case0:

P1_0=~P1_0;

delay02s();

break;

case1:

P1_1=~P1_1;

delay02s();

break;

case2:

P1_2=~P1_2;

delay02s();

break;

case3:

P1_3=~P1_3;

delay02s();

break;

}

}

}

实验5定时器实验

实验目的

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

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

实验的内容及要求

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

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

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

实验场地与器材

实验地点:

计算机系统实训室。

器材:

PC机、实验箱。

六、操作步骤及工作要点

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

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

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

(1)电路图:

(2)程序流程图:

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

主程序框图

C语言源程序

#include

unsignedchartcount2s;

unsignedchartcount02s;

unsignedcharID;

voidmain(void)

{

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;

ID++;

if(ID==4)

{

ID=0;

}

}

tcount02s++;

if(tcount02s==4)

{

tcount02s=0;

switch(ID)

{

case0:

P1_0=~P1_0;

break;

case1:

P1_1=~P1_1;

break;

case2:

P1_2=~P1_2;

break;

case3:

P1_3=~P1_3;

break;

}

}

}

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

实验目的

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

实验的内容及要求

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

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

实验场地与器材

实验地点:

计算机系统实训室。

器材:

PC机、实验箱。

操作步骤及工作要点

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

(2)观察结果

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

(1)电路图:

(1)电路图:

(2)程序流程图:

(略)

#include

#include

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

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;//Baud:

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函数一次发送的字符串较长时需设置较高的波特率,

//否则传输时会出现乱码;本程序调试成功了

while

(1);

}

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

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

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

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