单片机应用技术课程实验报告

单片机应用技术课程

实验设计报告

摘要

单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。

《单片机应用技术课程实验设计报告》

一、实验目的

1.熟悉Keil C51集成环境软件的使用方法。

2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。

3.能够利用MCS51单片机进行一些简单的设计。

二、实验要求

1.熟悉51单片机的结构及编程方法

2.按照程序流程图编写出程序

三、实验安排

我是一人一组,选择了三个实验,即:实验一、构建单片机最小系统和实验环境熟悉;实验二、跑马灯实验及74HC138译码器;实验三、8255控制交通灯实验。下面是每个实验的具体步骤:

实验一    构建单片机最小系统和实验环境熟悉

一、实验内容

单片机最小系统实验:

1、熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。

2、作出单片机最小系统的组成原理图,分析其各构成单元的工作原理。

存储单元数据传输实验

1、熟悉C语言编程。

2、进行存储单元数据传输实验,编写程序。

3、运行程序,验证译码的正确性。

二、基本介绍

一个基本的MCS-51单片机通常包括:中央处理器、ROM、RAM、定时/计数器和I/O口等各功能部件,各个功能由内部的总线连接起来,从而实现数据通信。单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成,单片机最小系统板的结构框图如图1-1所示:

图1-1  单片机最小系统板结构框图

三、单片机最小系统板的原理图

单片机最小系统板的原理图如图1-2所示:

图1-2  单片机最小系统板的原理图

四、单片机最小系统板实物图

单片机最小系统板实物图如图1-3所示:

图1-3  单片机最小系统板实物图

四、实验总结

本次实验是基础,主要是了解MCS51单片机的一个基本工作结构,单片机最小系统最简单就是包含一个振荡电路和一个复位电路,我们组的最小系统是我们在淘宝网上花了43元(板子34元、STC89C52单片机5元、下载线4元)买的,我们的最小系统板在原有的基础之上加了一些基础性实验,像流水灯实验、数码管显示实验等。这次实验让我们对单片机最小系统有了一个系统的认识,对于我们以后的实验有很大的帮助。

实验二    跑马灯实验及74HC138译码器

一、实验内容

跑马灯实验:

1、熟悉集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。

2、照接线图编写程序,使用P1口控制8个led指示灯,循环点亮,瞬间只有一个灯亮。

3、观察实验结果,验证程序是否正确。

74HC138译码器实验:

1、设计74HC138接口电路,编写程序:使用单片机的P1.0、P1.1、P1.2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。

二、实验原理图

     本次跑马灯实验是通过两种方式实现的,一种是STC89C52单片机的直接控制,一种是通过74LS138译码器的间接控制。图2-1为单片机的直接控制原理图,图2-2为单片机及74LS138的控制原理图

图2-1  单片机的直接控制原理图

图2-2 单片机及74LS138的间接控制原理图

三、程序流程图

四、实验代码

五、调试与总结

1、调试

   (1)焊接时注意各个器件的引脚处,注意led灯的阴阳极,在焊接时要注意led灯的共阴和共阳连接。每一个器件都要尽量贴近印制板,最后,要用万用表测试一下,检查有没有短路的地方。

(2)编写程序相对简单,只是简单的初始定义、循环和延时。

2、总结

跑马灯实验是基础性实验,它也是一个很经典的实验,当我们把这个板子焊好进行烧代码的时候,发现led灯全部都有微弱的亮,经检查我们考虑有可能是led灯管压降的问题。最后,我们有换了代码,发现跑马灯有了预期的效果,循环点亮了。

实验三   8255控制交通灯实验

一、实验内容

1、 了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能。

2、 熟悉8255内部结构和与单片机的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。

3、设计8255接口电路,编写程序:使用8255的PA1..3、PA4..7控制LED指示灯,实现交通灯功能。

4、连接线路验证8255的功能,熟悉它的使用方法。

二、实验原理图

原理图通过STC89C52单片机与可编程并行I/O接口芯片来实现交通灯的功能,图3-1为交通灯原理图:

图3-1 8255控制交通灯实验原理图

三、实验流程图

四、实验代码

源程序代码:

#include <reg52.h>

#include <absacc.h>

#define uint unsigned int

#define uchar unsigned char

#define PA XBYTE[0x0000]

#define PB XBYTE[0x0001]

#define PC XBYTE[0x0002]

#define COM XBYTE[0x0003]

uchar i;

void delay(uint z)             //延时子程序

{

       uint x,y;

       for(x=z;x>0;x--)

              for(y=110;y>0;y--);

}

void main()

{

       COM=0x80;               //控制字

       while(1)

       {           

              PA=0xbe;                  //东西绿灯亮 南北红灯亮

              delay(6000);          //隔相应时间

              for(i=0;i<3;i++)     //东西绿灯灭、黄灯闪烁,南北红灯亮

              {

                     PA=0xbb;

                     delay(300);

                     PA=0xbf;

                     delay(300);           

              }

              PA=0xdd;                  //东西红灯亮,南北绿灯亮、红灯灭

              delay(6000);          //隔相应时间

              for(i=0;i<3;i++)     //南北黄灯闪烁、绿灯灭,东西红灯亮

              {

                     PA=0x7d;

                     delay(300);

                     PA=0xfd;

                     delay(300);           

              }

       }

}

五、调试与总结

1、调试

  (1)焊接时注意各个器件的引脚处,注意区分led灯的阴阳极,每一个器件都要尽量贴近印制板,最后,要用万用表测试一下,检查有没有短路的的地方。

(2)在编写延时程序时尤其当延时常数太大时仿真时程序易错,所以使用定时器定时中断的方法,然后对定时计数以次延时。

 2、总结

通过本次课程设计较系统地掌握有关单片机控制的设计思想和设计方法,主要对AT89C5的结构、功能、内部资源等了解并对其进行测试和加以应用的知识得到学习。这个设计的一些内容是在网上找的,自己做了一些的改动,在上网找资料的同时也学到了许多东西,找到了很多学习单片机的网站,里面的内容都比较适合我们初学者去学,有些网站还专门介绍这种单片机的类型、用法、功能等等。其实我们平时不懂就应该自己去学习去弄明白,通过这个课程设计,使我发现,原来小小的一片单片机有这么强大的功能,能应用于各种领域。都是觉得很神奇,人类都的聪明啊。我应该在自己以后的学习中,不仅要有刻苦努力,要有钻研精神,还要有创新,对自己感兴趣的一定要用心去学。

参考文献

[1] 余锡存,曹国华.单片机原理及接口技术(第二版)[M].西安:西安电子科技大学出版社,2010.06

[2] 周荷琴,吴秀清.微型计算机原理与接口技术(第四版)[M].合肥:中国科学技术大学出版社,2010.06

[3] 彭伟.单片机C语言程序设计实训——基于8051+Proteus仿真[M].北京:电子工业大学出版社,2009.06

[4] 高卫东,辛友顺,韩彦征. 51单片机原理与实践[M].北京:北京航空航天大学出版社,2009.01

 

第二篇:单片机课程设计报告解程翔

目   录

一、引言—本课程设计的目的………..………………..2

二、八路LED跑马灯实验…………….……………….2

2.1设计内容………………………………………………2

2.2电路图……………………………………………………2

2.3上机程序..…………………………………….………….3

2.4调试结果及结论:……………….………………….4

三、二位数码管循环显示00~99的实验…..………….4

3.1设计内容...…………………………………………….4

3.2电路图...………………………………………………….4

3.3上机程序..…………………………………………..……5

3.4调试结果及结论………………………………………6

四、单片机演奏音乐实验………………………………6

4.1设计内容..……………………………………….……….6

4.2电路图…………………………………………………6

4.3上机程序…………………………………………………7

4.4调试结果及结论...…………………………………….9

五、心得体会...………………………………………….9

六、参考文献…………..………………………………10

摘要由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。

关键词:单片机,程序,跑马灯,数码管,测试……

一、引言—本课程设计的目的

以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。

二、八路LED跑马灯实验

2.1设计内容

八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。

2.2电路图

.

2.3上机程序

org 0000h

ajmp start

org 0030h

start:

mov a,#7fh

clr c

mov r2,#08h

loop: rrc a

mov p0,a

call delay

djnz r2,loop

mov r2,#07h

loop1: rlc a

mov p0,a

call delay

djnz r2,loop1

jmp start

delay:

d1: mov r4,#20

d2: mov r5,#248

djnz r5,$

djnz r4,d2

ret

end

2.4调试结果及结论:

八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!

三、二位数码管循环显示00~99的实验

3.1设计内容

8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式).p1做LED显示数据输出口.p3.2;p3.3分别控制数码管个位数和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。8段数码管从内部接线上分共阳和共阴两种。在电路设计时应根据情况决定采用共阳或共阴,其基本原则是:若单片机IO口直接驱动数码管个段,最好采用共阳数 码管,因为51单片机IO口输出高电平时输出的电流很小,数码管不会太亮;若数码管是通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求。

3.2电路图:

3.3上机程序

a_bit equ 20h

b_bit equ 21h

temp equ 22h

start:

mov temp,#0

ss:acall display

inc temp

mov a,temp

cjne a,#100,next

mov temp,#0

next:ljmp ss

display:

mov a,temp

mov b,#10

div ab

mov b_bit,a;mov a_bit,b

mov dptr,#numtab

mov r0,#4

dpl1:

mov r1,#250

dplop:mov a,a_bit

MOVC A,@A+DPTR

mov p0,a

clr p2.6

ACALL dlms

setb p2.6

mov a,b_bit

MOVC A,@A+DPTR

mov p0,a

clr p2.7

ACALL dlms

setb p2.7

djnz r1,dplop

djnz r0,dpl1

ret

dlms:mov r7,#80

djnz r7,$

ret

numtab:DB 30H,0FCH,0A2H,0A4H,6CH,25H,21H,0BCH,20H,24H

end

3.4调试结果及结论:

8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式)。因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。

四、单片机演奏音实验

4.1设计内容:

利用单片机演奏音乐大概是单片机爱好者感兴趣的问题之一。这里我们用网站提供的实验板来做这个实验,并且了解单片机演奏音乐的基本原理,和相关的

源程序。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。

此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。

4.2电路图:

4.3上机程序:

ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MUSIC1:
NOP
CLR A ;A清零
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5 ;如果是休止符,往下执行
LJMP MUSIC3

MUSIC5:
NOP
MOV R6,A ;R6=18H音符的频率
INC DPTR DPTR加一
MOV A,#0
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A ;R7=30H音符发音的时间
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL P2.5 ;P2.5是音乐输出引脚
MOV A,R6
MOV R3,A ;R3=R6=18H

LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
LJMP MUSIC1
MUSIC3:
NOP ;休止100毫秒
CLR TR0
MOV R2,#0DH ;R2=13
MUSIC4:
NOP
MOV R3,#0FFH ;R3=255
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#0FFH ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:

DB 82H,01H,81H,94H,84H
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,94H,84H
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB 0C4H,0B4H,04H
4.4调试结果及结论

本程序演奏的是“生日快乐”, 网友也可以自行找出一首歌,将乐曲翻译成码表输入机器,而程序不变。本实验方法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。

五、心得体会:

通过本次课程设计我们获益良多。既巩固了单片机的一些相关基本知识,又熟悉了PROTRL的相关操作。对一个整体的电子设计项目,有了一定的认识,初步学会了一定的设计方法,明白了如何用这种方法去实现一个系统的设计。

在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、办公自动化和计算机外部设备、汽车与节能、商用产品、家用电器等。目前,单片机正朝着大容量片上存储器、多功能i/o接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅要掌握单片机的工作原理,而且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。所以以后还要注意培养接受新知识的

自学能力,掌握芯片发展动态。同时也让我们找到了自己在某些知识上的欠缺,并通过这次机会得到弥补,取得进步!

六、参考文献:

[1]张毅坤,陈善久,裘雪红.  单片微型计算机原理及应用.西安电子科技大学出版社.20##年5月

[2] 华成英,童诗白.        模拟电子技术基础.高等教育出版社,20##年8月

[3] 赵辉,刘印华 .        PROTEL 99电子线路CAD.北京邮电大学出版社.20##年1月

相关推荐