单片机实验报告 单片机实验报告keil软件的使用

时间:2023-08-15 16:25:12 文档下载 投诉 投稿

      一、实验目的:

      1、掌握51单片机的基本结构及相关知识,并能熟练应用。

      2、熟悉用C语言在51单片机的编程方法及编程思想。

      3、掌握Keil和Protues软件的使用和两者的关系,并能更好的用两种软件来做单片机实验的仿真。

      4、了解心率计数器的编程方法和相关知识。

      二、实验原理:

        心率计是用来测量一个人心脏单位时间跳动次数的电子仪器,也是心电图的主要组成部分,设计一个电子心率计,要求实现在短时间内测量1分钟的

      心脏跳动次数,并且显示其数字。本实验用开关来代替心跳,按一次开关代表心跳一次。开关按一次,计数器计数一次,定时为一分钟,一分钟后,按了多少次就代表心跳了多少次。最后显示出来。

      三、实验流程图:四、实验源程序:

       #include <reg51.h>

      code unsigned char

      char sag[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};//0123456789

      code unsigned char bitcode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

      unsigned int second;

      unsigned int count;

      void display(unsigned int d);

      void delay(unsigned int n);main()

       {

        second=0;

        count=0;

        TMOD=0x61;    //T0定时器方式1 T1计数器方式2

        TH1=255; TL1=255;    //T2计数初值计一次即中断

        TH0=(65536-50000)/256;  //T1计数初值(65535-50000)/fosc/12 50ms

        TL0=(65536-50000)%256;

        IT0=1;  //外部0  IE=0x8b; //开中断(总中断及INT0、T0,T1)

        TR0=0;

        TR1=0;      //启动定时计数器

        while(1)

        {

          display(second);

          }

      }

       void time0(void) interrupt 1 using 1

        {

          count++;          //中断一次计一次数    if(count<1200)

          {

          TH0=(65536-50000)/256;  //T1计数初值(65535-50000)/fosc/12 50ms

          TL0=(65536-50000)%256;

          }

        else

          {TR1=0;TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;}  //满一分钟停止TR1

        }

      void time1(void)interrupt 3 using 2

        {

          second++;

        }

        void int_1() interrupt 0 using 3 //0号中断(外中断0),使用3号寄存器组

       {

          IE&=0xfe;//关中断

          TR0=1;TR1=1;count=0;second=0;   

          IE|=0x81;//开TI中断

       }

      void display(unsigned int d)    //显示{

          unsigned int outdata[8];

       unsigned char i; 

          outdata[0]=10;

          outdata[1]=10;     

          outdata[2]=10;          //不显示

          outdata[3]=d/10000;      //取最高位

          outdata[4]=d/1000%10;    //取次高位

         

      outdata[5]=d/100%10;      //取次次高位

            outdata[6]=d/10%10;      //取次低位     outdata[7]=d%10;        //取最低位

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

              {

                  P1=bitcode[i];

                switch(outdata[i]) 

            {

              case 0:P0=sag[0];break;

              case 1:P0=sag[1];break;

              case 2:P0=sag[2];break;

              case 3:P0=sag[3];break;

              case 4:P0=sag[4];break;        case 5:P0=sag[5];break;

              case 6:P0=sag[6];break;

              case 7:P0=sag[7];break;

              case 8:P0=sag[8];break;

              case 9:P0=sag[9];break;

              case 10:P0=sag[10];break;

            }

              delay(50);

          }

       }

       void delay(unsigned int n)  //延时{

        while(n--);       

      

      五、实验步骤:

      1、打开Protues软件,画出实验电路仿真图:如下

        然后保存。

      2、打开keil软件,project—new uvision project—输入工程名,保存。然后新建Text,输入上面的C语言程序,编译。保存成后缀名为.C的文件。然后左击左面栏里的source

      group1—Add file to source group1,选择刚刚保存的.C文件,点确定。然都Flash—Configure Flash tools—output—Creat hex file—确定。系统提示hex文件创建成功。

      3、打开六、实验结果:

         

      图中显示的是一分钟开关按动的次数(就是人一分钟跳动的次数).

      七、实验心得:

        通过本次实验我更加深入了解了用C语言编程的思想及其语法。进一步了解了51单片机的内部结构。设计之前必须的了解你所设计的实际意义。比如,心率计。我们不能设计成万位以上,这不符合实际意义。我们所考虑的应该是百位就行了。要想编好程序,必须先得了解单片机的基本构造。了解并掌握要编成所必须要知道51单片机的那些结构及其作用。一种东西可能需有很多种编程方法。并且我们得充分利用我们所学的知识在编程时尽量鲜明简洁,易读性强,可行性高。1、不管做什么事,计划是很重要的。没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。2、做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。3、要注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我们不仅仅要有整体意识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。4、最后,也是最重要的一点,通过这次课题,我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解。使我们受益匪浅。

      总之,亲自动手是课堂学习的延续,电子领域随时随地都在发生着翻天覆地的变化,现有的知识储备总是落后于科技的发展脚步,我们只有不断学习新知识,才能做到在面对新课题时游刃有余。

【单片机实验报告 单片机实验报告keil软件的使用】相关文章:

cadcam实验报告 cadcam实训报告08-15

计算机辅助设计CAD-实验报告 道路工程计算机辅助设计实验报告08-15

工程制图CAD实验报告 制图cad实训报告08-15

工作报告之大学单片机实验报告 石家庄铁道大学单片机实验报告08-15

单片机课程设计实验报告 单片机实验课实验报告08-15

单片机实验报告 单片机实验报告怎么写08-15

单片机实验报告 单片机实验报告keil软件的使用08-15

安徽大学历次单片机实验报告 安徽工业大学单片机实验报告08-15

2023电子商务运营实习报告范文08-15

电子商务的实习报告三篇08-15

电商运营助理实习报告08-15

食品饮料行业电子商务实习报告08-15

电商运营实习报告范文 电商运营实训报告总结08-15