单片机实训报告(8个LED指示灯循环移动)

时间:2024.3.20

一、实验目的:通过所学汇编语言和C语言知识,熟悉并掌握单片机综合仿真实验仪的使用方法,学会使用Keil uVision2编写程序。

二、实验器材:单片机综合仿真实验仪、AT89C51、计算机、导线。

三、实验功能:利用定时计数器T0工作方式1,实现定时50ms,中断20次,实现精确定时1秒以控制8个LED指示灯从左到右间隔1秒时间循环移动,当LED指示灯移动次数到32次时,8个LED指示灯停止循环移动,蜂鸣器响1秒后停止声音提示;又接着控制8个LED指示灯从右到左间隔1秒时间循环移动,依此类推。

四、实验要求:只能利用单片机的4个P1口控制74HC138译码器以及蜂鸣器来实现上述功能,并对程序进行注解;  注明:刚开始时,最左边的LED指示灯点亮,画出电路图。

五、计算定时/计数器的初值X

(2^16-X)*1=50000,X=15536D=03CB0H.

低8位送给TL0,高8位送给TH0,即(TL0)=0B0H,(TH0)=03CH

六、实验原理图:

七、实验参考程序:

#include <REG51.H>

bit direct=1,speak=0,counter=0;

int i=0,j=0,k=0,p=0,m,n;

sbit P13=P1^3;                         //定义P1.3引脚

main()                                //主函数

{

    TMOD=0x01;                     //T0计数方式1

    TL0=0xb0;                        //定时50ms

    TH0=0x3c;            

EA=1;                           //开T0中断

    ET0=1;

    TR0=1;                          //启动T0

    while(1)                          //等待中断

    {

         while(speak)

        {

        P13=~P13;                   //输出取反

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

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

        }

        if(counter)

        {

            counter=0;

            TR0=1;

            if(direct&&!speak)

            {

           

                P1=i;

            i++;

                    if(i==8)

                {

                    j++;

                    if(j==4)

                    {

                        j=0;direct=0;speak=1;

                    }

                    else

                        i=0;                  

                }

            }

            else if(!direct&&!speak)

            {

                i--;                    //循环右移

           

                P1=i;

                if(i==0)

                {

                    j++;              //循环左移

                    if(j==4)          //移动周期

                    {

                        j=0;direct=1;speak=1;    

                    }

                    else

                        i=8;

                }

            }

        }

    }

}

void time0(void) interrupt 1                  //T0中断服务函数

{

    TR0=0;                                //重启动

    TL0=0xb0;                             //重装初值

    TH0=0x3c;

if(speak)

    {

        ++p;

        if(p==20)                     //蜂鸣器响应时间

        {

            p=0;

            speak=0;

        }

           

    }

    else

        ++k;

    if(k==20)                 //LED灯间隔1秒移动

    {

        k=0;

        counter=1;

    }

    else

        TR0=1;

}

八、实验总结:通过这次实训,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。


第二篇:单片机实训报告4个8×8LED点阵显示


第一天:

我们来到实训室,根据老师发下来的项目实训资料来完成单片机控制4个8×8LED显示实训。我们认真阅读实训内容,打开电脑,打开单片机系统,打开proteu软件,放置以及排序芯片,电阻、译码器、单片机控制的4个8×8LED点阵显示屏。

第二天:

对做好的硬件连接之后,检查所连接好的线是否正确。根据任意编程进行点阵显示,排查连接的是否有错误。

第三天:

分别打开EAT589、字模软件,在EAT598软件上进行编程的时候分清子程序码,使用字模软件的横向取模,取汉字的A51格式。

第四天:

打开软件,在软件上进行汇编语言程序设计,设计出了汉字显示,学习和熟悉单片机的指令程序。 第五天:

根据之前所设计的汉字显示来修改,直到完成汉字的切换以及汉字的滚动效果。然后根据自己的兴趣完成自己的作品。

实训结果:

硬件连接完成,可以实现之后的汉字显示汉字切换以及汉字滚动,认真仔细的接好硬件连接,注意在字模上的取模,经过系列的汇编语言程序设计正常运行

体会:

通过这一周的实训,我们很好的完成了单片机的实训,收获了许多单片机的知识。完成了单片机控制4个8×8点阵显示汉字、切换以及滚动汉字。在这次的单片机实训中,了解单片机的用途,译码器原理,掌握单片机的编译程序和装载并进行运行,学习硬件和软件的基本操作,熟悉运行结果及检查进行实践。

ORG 0000H

LJMP MAIN

ORG 0040H

MAIN:MOV SP,#5FH

MOV DPTR,#TAB

MOV R1,#0

LCALL LA

LJMP MAIN

LA:

MOV R0,#00H

MOV R2,#0

MOV R4,#32

LB:

MOV P1,R0;行

MOV A,R2

MOVC A,@A+DPTR

MOV P0,A

INC R2

MOV A,R2

MOVC A,@A+DPTR

MOV P2,A

LCALL DELAY

INC R2

INC R0

DJNZ R4,LB

MOV R5,#8

DJNZ R5,LA

RET

DELAY: MOV R6,#20

D1:

D2:

MOV R7,#30 DJNZ R7,$ DJNZ R6,D1 RET

TAB:

DB 04H,20H,04H,20H,0FFH,0FEH,04H,20H,00H,00H,7CH,0F8H,44H,88H,44H,0F8H DB 44H,88H,7CH,88H,44H,0F8H,44H,88H,7DH,08H,45H,08H,42H,28H,04H,10H

END

实训步骤:

1. 硬件连接

2. 检查连线是或否正确

3. 根据编程进行点阵显示

4. 打开软件进行设计汉字的显示

5. 分清程序各码进行编译程序并运行

6. 自己的趣味设计

更多相关推荐:
单片机实习报告总结

这次实习我们使用控制电路的单片机是at89s51型号的。通过它实现对八盏双色灯发光二极管的控制p0和p2口控制四盏灯。在at89s51的9引脚接复位电路,对电路实现复位控制。在电路中接入74s164译码器和共阴…

单片机实训报告模板

单片机实训设计报告单片机实训设计报告题目可调电子时钟的设计学院交通信息学院专业电气自动化技术班级电气091姓名学号长号指导老师1单片机实训设计报告一实验内容利用CPU的定时器和实验仪上提供的数码显示电路设计一个...

单片机实训报告模板

项目一万年历班级学号姓名一任务目的通过对万年历的设计和制作应用了单片机的数码管键盘接口技术以及定时计数器中断等程序设计技术进一步训练了单片机并行IO端口的应用能力循环程序设计键盘查询程序设计和调试能力让同学们初...

单片机实训报告模板

苏州市职业大学实习实训任务书名称起讫时间学院部机电工程学院班级12机电一体化2指导教师学院部负责人陈洁苏州市职业大学校内实习实训报告名称20xx年9月1日至20xx年9月12日共2周学院部机电工程学院班级12机...

单片机实训报告样板

广西科技大学筹课程设计说明书课题名称单片机电子时钟的设计系别职业技术教育学院专业电子信息工程班级学号姓名报告样板指导教师I摘要单片机自20世纪70年代问世以来以其极高的性能价格比受到人们的重视和关注应用很广发展...

单片机实习报告

单片机实习报告题目姓名学院专业班级学号指导教师交通灯控制系统职称讲师20xx年5月27日内容提要本系统采用AT89S52作为交通灯控制系统的核心控制器件利用单片机的定时器产生秒级信号控制十字路口的红绿黄灯交替点...

《单片机实习报告温控系统

学院单片机课程设计报告书题目温度控制系统设计院系名称学生姓名专业名称班级时间学院自动化自动20xx年6月7日至6月17日温度控制系统设计一设计目的在现代化的工业生产中电流电压温度压力流量流速和开关量都是常用的主...

单片机实训报告

单片机实训报告花样流水灯的设计班级电气自动化一班学号110101120姓名肖良涛指导教师刘晓丽20xx06第一章设计概述11设计任务设计内容利用汇编语言或C语言实现8个单色LED灯的实现流水灯的从左向右和从右向...

单片机实训报告

单片机实训报告姓名:学号:班级:电信12304指导教师:日期:20/12/22一、实训目的单片机课程是一门实践性很强的专业技术课程,初学者只有通过大量的编程,实验,调试设计制作等一系列实践环节的训练,才能掌握单…

单片机实训报告

基于51单片机的多模式彩灯控制器程序设计多模式彩灯控制器课程设计报告设计题目基于80C51单片机制作的彩灯控制器系别电气工程学院专业应用电子技术作者学号指导老师蔡卫平老师日期20xx12222基于51单片机的多...

单片机实训报告

西京学院单片机原理及应用实训报告一实验要求了解80C51单片机的基本结构和指令系统了解单片微机的基本结构80C51单片微机的内部结构80C51单片微机的引脚及其功能80C51CPU的结构和特点存储器结构和地址空...

单片机实训报告

沈阳理工大学应用技术学院单片机原理及应用实训报告题目院系学生姓名朱巍巍班级学号10401109指导教师张慧玲完成日期专业车辆工程一系统设计题目要求和设计思路题目要求LED小灯计数器实验一利用试验系统提供的8位逻...

单片机实训报告(38篇)