实验报告单片机.docx

上传人:b****6 文档编号:16219745 上传时间:2023-07-11 格式:DOCX 页数:12 大小:185.93KB
下载 相关 举报
实验报告单片机.docx_第1页
第1页 / 共12页
实验报告单片机.docx_第2页
第2页 / 共12页
实验报告单片机.docx_第3页
第3页 / 共12页
实验报告单片机.docx_第4页
第4页 / 共12页
实验报告单片机.docx_第5页
第5页 / 共12页
实验报告单片机.docx_第6页
第6页 / 共12页
实验报告单片机.docx_第7页
第7页 / 共12页
实验报告单片机.docx_第8页
第8页 / 共12页
实验报告单片机.docx_第9页
第9页 / 共12页
实验报告单片机.docx_第10页
第10页 / 共12页
实验报告单片机.docx_第11页
第11页 / 共12页
实验报告单片机.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验报告单片机.docx

《实验报告单片机.docx》由会员分享,可在线阅读,更多相关《实验报告单片机.docx(12页珍藏版)》请在冰点文库上搜索。

实验报告单片机.docx

实验报告单片机

西南科技大学

学生实验报告

 

实验课程名称微机原理与接口技术

开课实验室微机原理与机电控制实验室

学院制造学院专业机械班级1303

学生姓名学号

开课时间2015至2016学年第2学期

 

总成绩

教师签名

 

制造科学与工程学院制

《I/O接口实验》实验报告

开课实验室:

微机原理与机电控制实验室2015年4月11日

学院

制造学院

年级、专业、班

机械1303

姓名

成绩

课程

名称

微机原理与接口技术

实验项目

名称

I/O接口实验

指导教师

李鹏

一、实验目的

1、了解单片机片内4个8位I/O端口的使用。

2、掌握I/O端口的应用及C51的编程方法。

3、熟悉C51编程中的一些相关语句。

 

二、实验内容

通过编程C51程序,实现上下来回循环点亮八个发光二极管,即在单片机上实现出流水灯。

实验线路及其连接如下图1-1。

图1-1发光二极管与P1口的连接电路

三、实验仪器设备

1.单片机实验板一台

2.计算机一台

 

四、实验步骤

1.检查实验板连线是否正确

2.用USB线连接单片机实验板和PC,利用USB接口对实验板供电

3.用keil软件编写并调试程序,在程序无误的时候编译成hex文件,使用串口线与电脑的串口相连,运行串口下载工具STC-ISP,下载程序到单片机中。

4.观察发光二极管的闪烁状态,是否与实验要求相符。

若不符,请修改程序,直到达到实验需求。

五、实验程序流程图

图1-2程序流程图

 

六、实验程序(源程序)

#include//52系列单片机头文件

#include//包含crol函数所在的头文件

#defineucharunsignedchar//宏定义

voiddelay()//延时函数

{uchari,j;

for(i=0;i<255;i++)

for(j=0;j<255;j++);

}

voidmain()//主函数

{

uchari,temp;

while

(1)//主循环

{

temp=0xfe;//赋初值11111110

for(i=0;i<7;i++)//实现从上到下点亮二极管

{

P1=temp;//先点量第一个二极管

delay();//延时

temp=_crol_(temp,1);//temp中的数据循环左移1位

}

for(i=0;i<7;i++)//实现从下到上点亮二极管

{

P1=temp;//temp值送入P1口

delay();//延时

temp=_cror_(temp,1);//temp中的数据循环右移1位

}

}

}

 

七、实验结果记录及分析

实验结果:

看到单片机实验板上的8个LED灯成左右来回循环的流水灯显示,这也是本次实验所要得到的结果。

主要是通过移位函数来实现的,通过for循环,使得P1口的每位依次变为低电平,则相应的发光二极管点亮。

 

八、心得体会

通过这次实验,对KeilC51编程过程有了更深的认识和了解,通过流水的程序编写对于并行I/O端口有了更深的理解,基本上可以开始编写一些简单的程序了,之前没有系统的学习过C语言知识,还得花点时间去巩固学习一下,在刚开始编写程序的时候,不知道从何下手,不过可以先从读懂一些简单的程序内容做起,然后再很熟悉的情况下,再自己构思编写相应的程序。

此次编程遇到了一些问题,不过并没有急躁,而是在冷静中找出了错误。

有时候实现一种功能可以有不同的方式去实现,比如实现流水灯就有很多种方式,可以通过数组的字节操作来实现,将8只LED灯的点亮顺序定义为一个数组,再通过主程序函数来实现数组的内容,还可以通过移位运算符来实现。

 

《中断系统实验》实验报告

开课实验室:

微机原理与机电控制实验室2015年4月23日

学院

制造学院

年级、专业、班

机械1303

姓名

成绩

课程

名称

微机原理与接口技术

实验项目

名称

中断系统实验

指导教师

李鹏

一、实验目的

1、了解单片机的中断原理。

2、了解单片机响应中断的基本流程。

3、了解单片机的中断编程方法。

二、实验内容

利用实验板上的按键S12,实现单片机的外部中断INT0的触发。

中断触发后,点亮板上的8个LED(实验1中的LED),再次按下按键,再次产生中断时LED灭。

如此循环进行。

实验线路及连接如下。

图2-1中断实验图

 

三、实验仪器设备

1.单片机实验板一台

2.计算机一台

四、实验步骤

1.熟悉原理图,了解本实验的电路原理。

2.用USB线连接实验板与PC机,利用PC的USB接口给实验板供电

3.编写程序并检查无误,编译并下载到目标板运行实验程序

4.按下实验板上的S12,观察板上LED的亮灭情况是否符合实验要求,如不符合修改程序指导符合要求。

五、实验程序流程图

图2-2程序流程图

六、实验程序(源程序)

#include//包含头文件reg52.h

sbitanjian=P3^5;//定义位变量

voidmain()//主函数

{

EA=1;//总中断打开

EX0=1;//允许外部中断0中断

IT0=1;//选择外部中断0为跳沿触发方式

anjian=0;//使P3.5引脚低电平接通有效

P1=0;//P1口的8只LED全亮

while

(1);//循环

}

voidint0()interrupt0using0//外部中断0的中断服务函数

{

EX0=0;//禁止外部中断0中断

P1=~P1;//取P1得反,则P1口的8只LED全灭

EX0=1;//中断返回前,打开外部中断0中断

}

 

七、实验结果记录及分析

实验结果:

利用实验板上的按键S12,实现单片机的外部中断INT0触发。

中断触发后,点亮板上的8个LED,再次按下按键,再次产生中断时LED灭,如此循环进行。

分析:

通过矩阵键盘的连线图可知,将P3.5端口设置成低电平,当有按键按下时,相应的P3.2口变为低电平,此时触发中断INT0;再通过取反运算符使得当中断触发时,P1口循环高低电平,则当有按键按下时LED循环亮灭进行。

 

八、心得体会

通过这次实验,我对单片机的中断触发有了进一步的了解,看了书本的理论知识后与实践相结合,使得印象更加深刻。

不过程序编写的过程中也遇到了一些问题,比如按键按下后循环触发中断,如何使得LED灯亮灭循环,后来通过网上资料知道了可通过取反运算符(~)来实现,当看到这个的时候,一下子恍然大悟,顿时觉得这是如此的巧妙。

在后续的学习中,通过理论与实践相结合,要多思考,培养良好的主动思维习惯,多多练习编程才能熟能生巧。

 

《定时器/计数器实验》实验报告

开课实验室:

微机原理与机电控制实验室2015年5月23日

学院

制造学院

年级、专业、班

机械1303

姓名

成绩

课程

名称

微机原理与接口技术

实验项目

名称

定时器/计数器实验

指导教师

李鹏

一、实验目的

1、了解单片机的定时器/计数器的原理。

2、了解单片机定时器/计数器的作用。

3、了解单片机定时器/计数器的编程方法。

二、实验内容

利用实验板,编写STC89C52单片机的定时器/计数器程序,要求使用定时器T0,控制实验板上的LED以1S的固定时间闪烁(即1S亮,1S灭)。

实验线路及连接如下。

图3-1定时器控制LED闪烁原理图

 

三、实验仪器设备

1.单片机实验板一台

2.计算机一台

 

四、实验步骤

1.用USB线连接实验板与PC机,利用PC的USB接口给实验板供电

2.在Keil中输入程序并检查无误,编译并下载到实验板。

3.运行并观察实验板上的LED灯变化

4.如程序结果不对,检查程序并修改反复实验直到达到实验效果。

五、实验程序流程图

图3-2程序基本流程图

六、实验程序(源程序)

#include//包含头文件reg52.h

chari=100;//定义变量i,赋初值为100

voidmain()//主函数

{

TMOD=0x01;//设置定时器T0为方式1

TH0=(65536-10000)/256;//给T0装入初值

TL0=(65536-10000)%256;//给T0装入初值

P1=0x00;//P1口8只LED点亮

EA=1;//总中断允许

ET0=1;//定时器T0中断允许

TR0=1;//启动定时器T0

while

(1);//无穷循环,等待定时中断

}

voidT0_int(void)interrupt1

{

TH0=(65536-10000)/256;//给T0重装入初值

TL0=(65536-10000)%256;

i--;//循环次数减一

if(i<=0)

{

P1=~P1;//P1口按位取反

i=100;//重新设置循环次数

}

}

七、实验结果记录及分析

实验结果:

控制实验板上的LED以1S的固定时间闪烁(即1S亮,1S灭)。

分析:

LED以1S的固定时间闪烁,需要通过定时器进行定时,定时器计数时间小于1s,则可先定时10ms,然后再通过循环100次,先设定定时器的工作方式,再向定时器装入初值10000,P1口先设置成低电平,等待定时器中断10ms触发,循环100次后,P1口取反,则LED灯再熄灭,如此循环下去,从而得到实验现象。

 

八、心得体会

通过本次实验,对定时器的工作方式有了一定的了解,先看懂了书本上的内容,然后再试着尝试编程相应的代码,不断解决途中遇到的各种问题,最后得到实验所要求的效果,当调试成功的那一刻,很有成就感,对于实践性的操作有了更大的兴趣。

希望自己以后碰到一些问题能主动的思考,通过自身的努力能解决它,而不是一遇到不会的就去找答案,照抄已有的代码。

在今后的学习中,还得多多练习编程。

 

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2