单片机实验二实验报告_单片机实验报告二

其他范文 时间:2020-02-27 04:35:16 收藏本文下载本文
【www.daodoc.com - 其他范文】

单片机实验二实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机实验报告二”。

实验报告

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

指导老师:李素敏

学生姓名:

学号:

专业: 自动化

日期:2014-04-10 地点:理工楼603

实验二

1.实验目的和要求

① 掌握keil软件和STC-ISP 软件的使用方法 ② 熟悉发光管的工作原理 ③ 通过编程体验发光管的延时闪烁及移位等功能

2.主要仪器设备

PC机

单片机学习开发套件(型号:89C52RC)

3.实验内容

①实验内容1:第一个发光管以间隔200ms闪烁

源程序:

#include #define uint unsigned int

//宏定义

main(){

while(1){ P1=0xfe;delay(200);P1=0xff;delay(200);} } void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {

uint x,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);

一台一件

}

实验结果说明:要使发光管闪烁,只需设置合适的时间延时即可。

②实验内容2 : 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。

源程序:

#include

#include //后面要用到它里面的_crol_(k,l)函数 //这个函数的意思是把一个字符变量k 循环左移l 位 #define uint unsigned int

//宏定义

unsigned char a,b,k,j;

//定义五个字符变量 sbit beep=P2^3;// 定义蜂鸣器的接口

void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {

uint x,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);}

void main(){

k=0xfe;//先给k一个初值11111110等待移位 while(1){

delay500ms();

beep=0;//打开蜂鸣器

delay500ms();//让它响500ms

beep=1;//关闭蜂鸣器

j=_crol_(k,1);//把k循环左移一位

k=j;//把移完的值再送给k

P1=j;//同时把值送到P1口点亮发光二极管 } //再次循环 }

实验结果说明:在此程序中用到了_crol_(k,l)函数,此函数的功能在于循环移位,在每次发光管闪烁相应时间后左移一位,把移完的值再送到P口,点亮对应的发光管。这样循环往复,达到发光管流动的效果。

③实验内容3 :用8个发光管演示出8位二进制数累加过程,即用8个二极管表示8个二进制位(亮为1,灭为0),依次以二进制形式显示0,1,2,……255。

源程序: #include

#include //包含有左右循环移位子函数的库 #define uint unsigned int

//宏定义 #define uchar unsigned char //宏定义

void delay(uint z)//延时函数,z的取值为这个函数的延时ms数,{

uint x,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);} void main()

//主函数 {

} uchar a;while(1)

//大循环 {

} a++;P1=~a;delay(200);

实验结果说明:在此定义一个无符号字符变量a,a的值进行累加,但是由于表示的二进制数要求亮为1,灭为0,与发光管的0亮1灭正好相反,所以将a的计数取反并设置相应延时,重复此过程就得到了在发光管上显示八位二进制数的累加过程。

④实验内容4 :间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。

源程序:

#include //52单片机头文件

#include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义

void delay(uint z)//延时函数,z的取值为这个函数的延时ms数 {

uint x,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);} void main()//主函数 { uchar a,i,j;while(1)//大循环

} {

} a=0xfe;//赋初值

for(j=0;j

} {

P1=a;//点亮小灯

delay(300);//延时300毫秒

a=_crol_(a,1);//将a变量循环左移一位

} a=_crol_(a,j);//补齐,方便下面的左移一位 P1=0xff;//全部关闭

a=a

4.心得体会:此次实验中练习较多的就是闪烁和移位,在编程过程中,设置闪烁的时间必须达到人眼正常观察的要求,这就需要计算合适的闪烁时间,不停的尝试,最终选择适宜观察的时间间隔。发光管的循环移位时调用_crol_(k,l)函数

可以大大简化编程的行数。所以熟悉单片机的函数库,可以方便我们编程。所以在以后的实验中还得继续学习这个函数库,从而更轻松的完成实验内容。

单片机实验报告

《单片机原理及应用》实 验 报 告2017—2018学年第一学期班级: 152 专业: 电子科学与技术 姓名: 子路 学号: 教师:实验一:Keil C51 一、实验目的1、熟悉Keil C51单片机应用开发系......

单片机实验报告

实验一一、实验题目:试编写一段程序,其功能为将21H单元的内容8位分别依次存放到从22H开始的8单元中。二、keil代码:org 0000h jmp start org 0100h start: mov 21h,#8; mov A......

单片机实验报告

51单片机控制流水灯目录 (1)51精简开发板简介 (2)实验目的 (3)实验内容 (4)元件 (5)原理图 (6)实验步骤(7)主要功能介绍(8)实验错误及分析 (9)调试及程序 (10)系统测试 (11)实验心得一、51精简开发......

单片机实验报告

实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。2、掌握中断响应及处理的编程方法。二、实验......

单片机实验报告

单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、......

下载单片机实验二实验报告word格式文档
下载单片机实验二实验报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文