单片机实验报告—— 译码器实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
//--定义要使用的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使用。亲自动手的实验过程使我对单片机的理论知识有了更好的掌握,明白了理论与实践相结合的重要性。在不断的调试程序的过程中,我深刻意识到动手操作的好处,在日后的学习中一定要提高自己的动手能力,注重实践,在一次次的实验操作中提高自身的综合能力。