单片机实验报告—— 译码器实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XXXX学院

实验报告

Experimentation Report of Taiyuan Normal University

系部计算机年级大三课程单片机原理与接口技术姓名同组者日期

学号

项目译码器实验

一、实验目的

1、了解单片机顺序执行的特点;

2、掌握C语言的编写和keilc51的使用;

3、掌握通过38译码器控制LED灯亮灭的方法。

二、实验仪器

硬件资源:单片机开发板笔记本电脑;

软件资源:软件 Keil uVision5;

三、实验原理

1、流程图

2、连接图

四、实验结果

按下编译按钮,D11熄灭,其余灯亮;一段时间后,D12熄灭,其余灯

亮;一段时间后,D13熄灭,其余灯亮;……;一段时间后,D18熄灭,

其余灯亮。以此循环。

五、实验代码及分析

#include //此文件中定义了51的一些特殊功能寄存器

//--定义要使用的IO口--//

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

//--声明全局函数--//

void Delay10ms(unsigned int c); //误差 0us

* 函数名 : main

* 函数功能 : 主函数

* 输入 : 无

* 输出 : 无

void main(void)

{

unsigned char i = 0;

while(1)

{

switch(i) //位选,选择点亮的数码管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//显示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//显示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//显示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//显示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//显示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//显示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//显示第7位

}

Delay10ms(50);

i++;

if(i == 8)

{

i = 0;

}

}

}

* 函数名 : Delay10ms

* 函数功能 : 延时函数,延时10ms

* 输入 : 无

* 输出 : 无

void Delay10ms(unsigned int c) //误差 0us

{

unsigned char a, b;

//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//

for (;c>0;c--)

{

for (b=38;b>0;b--)

{

for (a=130;a>0;a--);

}

}

}

六、心得体会

通过此次试验我了解单片机顺序执行的特点,掌握51单片机开发板所需软件的安装过程,通过LED显示译码器输出值,我了解了Keilc51使用。亲自动手的实验过程使我对单片机的理论知识有了更好的掌握,明白了理论与实践相结合的重要性。在不断的调试程序的过程中,我深刻意识到动手操作的好处,在日后的学习中一定要提高自己的动手能力,注重实践,在一次次的实验操作中提高自身的综合能力。

相关文档
最新文档