最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机实训项目报告

来源:动视网 责编:小OO 时间:2025-09-24 23:43:16
文档

单片机实训项目报告

单片机实训项目报告电气学院班级电气1049班姓名冯岗学号1000001426实训地点电气学院605实训室指导教师杨宇2012年5月23日实训项目一项目名称一灯(LED)闪烁控制一、要求及功能描述:功能:用单片机控制一个LED灯快速闪烁。要求:1)设计一个电路,用单片机端口控制控制一个LED灯;2)编写一个控制程序,实现LED灯快速闪烁,闪烁时间采用软件延时反法;3)在01板上实现,并改变闪烁延时后,观察效果。2、电路设计:三、程序设计:C语言程序#includesbitled_en=P4^2;
推荐度:
导读单片机实训项目报告电气学院班级电气1049班姓名冯岗学号1000001426实训地点电气学院605实训室指导教师杨宇2012年5月23日实训项目一项目名称一灯(LED)闪烁控制一、要求及功能描述:功能:用单片机控制一个LED灯快速闪烁。要求:1)设计一个电路,用单片机端口控制控制一个LED灯;2)编写一个控制程序,实现LED灯快速闪烁,闪烁时间采用软件延时反法;3)在01板上实现,并改变闪烁延时后,观察效果。2、电路设计:三、程序设计:C语言程序#includesbitled_en=P4^2;
单片机实训项目报告

      

电气学院

         

                    班级 电气1049班

                    姓名  冯岗

                    学号  1000001426

                  实训地点 电气学院605实训室

                         指导教师  杨宇

                            2012年5月23日

实训项目一

项目名称一灯(LED)闪烁控制

一、要求及功能描述:

功能:用单片机控制一个LED灯快速闪烁。

要求:

   1)设计一个电路,用单片机端口控制控制一个LED灯;

   2)编写一个控制程序,实现LED灯快速闪烁,闪烁时间采用软件延时反法;

   3)在01板上实现,并改变闪烁延时后,观察效果。

2、电路设计:

三、程序设计:

C语言程序

#include

sbit led_en=P4^2;

sbit L1=P0^7;

delay( )

{

unsigned char i,j,k;

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

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

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

}

main( )

{

led_en=0; 

while(1)

 {

  L1=0;

  delay( );

  L1=1;

  delay( );

 }

}

四、项目小结:

     此项目以ATC51芯片为核心部件,实现了单片机的一灯闪烁。此次实训在老师的讲解下,在软件、编写程序方面,花费了我们大量的时间,不过也尽可能多的让我了解一灯闪烁知识。通过这三周的实训,熟练掌握了keil u Vision4软件开发环境的使用,并且进一步加深对单片机常用指令的理解与运用。在实训过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。使我在单片机的基本原理、单片机系统开发过程,以及在常用编程设计思路技巧的掌握方面迈进了一大步。

     同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大的提高了时间能力,单片机领域对我今后进一步学习计算机方面知识有极大的帮助。使我认识到课程的重要性,同时也感受到理论与实践之间的差距,是我对单片机系统的运用由来更深刻的认识。

实训项目二

项目名称电子门铃与控制
一、要求及功能实现:

 功能:用单片机实现一个门铃控制

 要求:

    1)设计一个电路,用单片机端口读取按键,并使蜂鸣器响;

    2)编写一控制程序,实现门铃功能;

    3)在01板上实现,并改变鸣方式。

二、电路设计:

 

     

三、程序设计:

   C语言程序

#include

sbit key1=P3^2;

sbit bell=P3^6;

main( )

{

P3M0=0x40;

P3M1=0x00;

if(!key1)bell=1;

else bell=0;

}

四、项目小结:

这次实习让我受益匪浅,无论是理论知识还是其他的各个方面。上课时也只是见到过一次单片机,只能从理论的角度去理解枯燥乏味。但在实训过程中真正的了解的一些单片机知识,及单片机运用系统,能理论联系实际,开阔了眼界,提高了对单片机知识的理解和运用。

    单片机是一门很重要的课程,老师和一些工作的朋友都曾说过,尽管我们在课堂上学到的内容很有限,但在以后的学习中单片机还需要好好地深入研究和学习,最后感谢老师对我们的精心指导和帮助。

实训项目三

项目名称流水灯控制
一、要求及功能实现

功能:用单片机实现一个流水灯控制

要求:

   1) 设计一个电路,用单片机流水灯控制功能;

   2)编写一个控制程序,实现流水灯控制功能;

   3)在01板上运行控制程序后,观察效果。

二、电路设计

三、程序设计

   C语言程序

#include

unsigned char a=1;

sbit led_en=P4^2;

delay (unsigned int T)

{while(--T);}

main( )

{

led_en=0;

while(1)

 {

  P0=~a;

a<<=1;

  if(a==0)a=0;

  delay(50000);

 }

}

四、项目小结

本设计成品是以单片机ATC51芯片为核心部件,实现了流水灯的功能。此次设计在软件、编写程序方面花费时间太多,我们尽可能多的了解流水灯控制的相关知识。通过这几周的综合实训(单片机课程设计),熟练掌握了Keil C51集成开发环境的使用方法,了解并掌握到单片机芯片的烧写方法与步骤,进一步加深了对单片机常用指令的理解与运用。在实训过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步。 同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助。使我们认识到课程的重要性,同时也感受到理论与实践之间的差距,使我们对单片机系统的应用有了更加深刻的认.

实训项目四

项目名称数码管驱动与控制
一.要求及功能实现:

   功能:用单片机实现LED数码管的静态与动态驱动显示。

   要求:

   1)设计一个电路,用单片机驱动LED数码管;

   2)编写一控制程序,控制LED数码管显示,可分为静态显示和动态显示;

   3)在01板上实现,并改变显示内容后,观察效果。

二.电路设计

3.程序设计

   静态显示C语言程序

#include

sbit led_bit=P1^0;

unsigned char a=0;

unsigned char disp[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};

delay(unsigned int T)

{unsigned char i;

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

while(T--);

}

main()

{

P1M0=0X01;

P1M1=0X00;

led_bit=1;

while(1)

  {

for(a=0;a<10;a++)

   {

    P0=~disp[a];

    delay(5000);

   }

  }

}

动态显示C语言程序

#include

sbit led_en=P4^2;

unsigned char code disp[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};

unsigned char buffer[6];

unsigned char m_sec=0,sec=0,min=0;

unsigned char n=0,num=0,b=1;

main()

{

P1M0=0x3f;

P1M1=0x00;

TMOD=0x11;

TH0=0x3c;

TL0=0xb0;

TH1=(65536-4000)/256;

TL1=(65636-4000)%256;

IE=0x8a;

TR0=1;

TR1=1;

while(1);

}

T0_int() interrupt 1

{TH0=0x3c;

TL0=0xb0;

n++;

if(n>=2)

     {

     n=0;

     m_sec++;

     }

if(m_sec>=100){sec++;m_sec=0;}

if(sec>=60){min++;sec=0;}

if(min>=100)min=0;

buffer[0]=m_sec%10;

buffer[1]=m_sec/10;

buffer[2]=sec%10;

buffer[3]=sec/10;

buffer[4]=min%10;

buffer[5]=min/10;

}

T1_int() interrupt 3

{TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

if(num==2||num==4)

P0=~(disp[buffer[num]]|0x01);

else

P0=~disp[buffer[num]];

num++;

P1=b;

b=b<<1;

if(num>=6)

{b=1;num=0;}

}

四.项目小结

回想起整个实训过程,本次实训是本人到目前为止觉得最有意义,也是最有收获的,作为学自动化方面的学生,设计是我们将来必须的技能,而这个实训刚刚给了我们提供了一个应用自已所学知识的平台。

从通过理论设计,到具体方案,到调试电路成品。整个过程都需要我充分利用所学的知识进行思考借鉴。我认为这次实训是针对前面所学的知识进行一次比较全面的检测,总的来说,我觉得的听充实的。

实训项目五

项目名称 电子钟

一.要求及功能实现:

功能:用单片机实现电子钟。

要求:

    1)设计一个电路,用单片机实现电子钟;

    2)编写一控制程序,控制LED数码管显示时间,并可通过按键设定时间。

    3)在01板上运行程序后,观察效果。

2.电路设计:

三.程序设计:

     C语言程序

#include

#define Uchar unsigned char

#define Uint unsigned int

Uchar code disp[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};

Uchar buffer[6];

Uchar sec=0,min=0,hour=0;

Uchar led_bit=0x20,num=0,n=0,a=0;

sbit key1=P3^2;

sbit key2=P3^3;

sbit key3=P3^4;

sbit key4=P3^5;

delay(Uint T)

{

while(T--);

}

main()

{

TMOD=0x11;

TH0=0xdc;

TL0=0x00;

TH1=0xee;

TL1=0x00;

IE=0x8b;

P1M0=0x3f;

P1M1=0x00;

TR0=1;

TR1=1;

while(1)

     {

     if(key1==0)

          {

          a++;

if(a>3)a=0;

          if(key2==0&&a==0)

          switch(a)

               {

case 1:hour++;if(hour>23)hour=0;break;

case 2:min++;if(min>59)min=0;break;

                   case 3:sec=0;break;

               }

          }

     switch(a)

          {

          case 0:

          buffer[0]=hour/10;

          buffer[1]=hour%10;

          buffer[2]=min/10;

          buffer[3]=min%10;

          buffer[4]=sec/10;

          buffer[5]=sec%10;

          break;

          case 1:

          buffer[0]=hour/10;

          buffer[1]=hour%10;

          buffer[2]=10;

          buffer[3]=10;

          buffer[4]=10;

          buffer[5]=10;

          break;

          case 2:

          buffer[0]=10;

          buffer[1]=10;

          buffer[2]=min/10;

          buffer[3]=min%10;

          buffer[4]=10;

          buffer[5]=10;

          break;

          case 3:

          buffer[0]=10;

          buffer[1]=10;

          buffer[2]=10;

          buffer[3]=10;

          buffer[4]=sec/10;

          buffer[5]=sec%10;

          break;

          }

;     }

}

T0_int() interrupt 1

{

TH0=0xdc;

TL0=0x00;

n++;

if(n>99)

     {

     n=0;

     sec++;

if(sec>59)

          {

          sec=0;

          min++;

if(min>59)

               {

               min=0;

               hour++;

if(hour>23)hour=0;

               }

           }

      }

}

T1_int() interrupt 3

{

TH1=0xee;

TL1=0x00;

if((num==1||num==3)&&a==0)

P0=~(disp[buffer[num]]|0x01);

else P0=~disp[buffer[num]];

P1=led_bit;

led_bit=led_bit>>1;

num++;

if(num>5){led_bit=0x20;num=0;}

}

四.项目小结

在整个课程设计完后,总的感觉是:有收获。以前上课都是一些最基本的东西,而现在却可以将以前学的东西做出有实际价值的东西。在这个过程中,我的确学到很多书本上学不到的东西,如:如何利用现有的元件组装得到设计要求,如何找到错误的原因,等等。但也遇到了不少的挫折,有时遇到的错误怎么也找不到原因所在。在学习中的小问题在课堂上不能犯,在动手的过程中却很有可能犯。特别是在书写程序时,一不小心就出错,而且很不容易检查出来,还有就是自己的动手能力有欠缺,在做的过程中遇到了很大的困惑,耽误了不少时间。但现在回头看看,感觉还是挺有成就感的。

文档

单片机实训项目报告

单片机实训项目报告电气学院班级电气1049班姓名冯岗学号1000001426实训地点电气学院605实训室指导教师杨宇2012年5月23日实训项目一项目名称一灯(LED)闪烁控制一、要求及功能描述:功能:用单片机控制一个LED灯快速闪烁。要求:1)设计一个电路,用单片机端口控制控制一个LED灯;2)编写一个控制程序,实现LED灯快速闪烁,闪烁时间采用软件延时反法;3)在01板上实现,并改变闪烁延时后,观察效果。2、电路设计:三、程序设计:C语言程序#includesbitled_en=P4^2;
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top