单片机报告.docx

上传人:b****4 文档编号:4462582 上传时间:2022-12-01 格式:DOCX 页数:23 大小:168.52KB
下载 相关 举报
单片机报告.docx_第1页
第1页 / 共23页
单片机报告.docx_第2页
第2页 / 共23页
单片机报告.docx_第3页
第3页 / 共23页
单片机报告.docx_第4页
第4页 / 共23页
单片机报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

单片机报告.docx

《单片机报告.docx》由会员分享,可在线阅读,更多相关《单片机报告.docx(23页珍藏版)》请在冰豆网上搜索。

单片机报告.docx

单片机报告

摘要:

本报主要介绍单片机的工作原理,以及具体四个单片机实验。

分别是跑马灯实验、带译码器流水灯实验、8255交通灯实验、8253方波实验。

通过这几个实验的学习,包括电路的设计及焊接、实验程序的编写及调试、Proteus仿真软件及KeilC软件的使用等等,可以系统的掌握单片机这门学科。

关键词:

单片机跑马灯8255交通灯8253方波

 

实验内容及要求

按下面实验内容焊制电路板,完成实验要求:

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

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

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

3、熟悉MCS51汇编指令。

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

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

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

(一)跑马灯实验:

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

2、8个指示灯,循环点亮,瞬间只有一个灯亮。

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

(二)74HC138译码器实验:

1、设计74HC138接口电路,编写程序:

使用单片机的P1.0、P1.1、P1.2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

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

实验三8255控制交通灯实验

1、设计8255接口电路,编写程序:

使用8255的PA0..2、PA5..7控制LED指示灯,实现交通灯功能。

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

实验四8253方波实验

1、设计接口电路,编写程序:

使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。

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

 

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

具体实验内容:

一、单片机最小系统的工作原理:

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.

对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。

单片机主要擅长系统控制,而不适合做复杂的数据处理,在设计单片机最小系统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位DIP-40封装的单片机作为MCU,一个典型的单片机最小系统一般由时钟电路、复位电路、键盘电路、显示电路等部分组成,有时也外扩有片外RAM和ROM以及外部扩展接口等电路。

图2为单片机最小系统结构框图。

图2单片机最小系统结构框图

1、系统时钟电路

单片机内部具有一个高增益反相放大器,用于构成振荡器。

通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图3所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF左右的瓷片电容。

图3系统时钟电路

2、复位电路

单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。

上电复位要求接通电源后,自动实现复位操作。

手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。

复位电路结构如图4所示。

上电自动复位通过电容C3充电来实现。

手动按键复位是通过按键将电阻R2与VCC接通来实现。

图4复位电路

3.单片机内部控制器主要部分

(1)指令寄存器和指令译码器

指令寄存器中存放指令代码,CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。

(2)程序计数器PC

PC是一个16位计数器,其内容为单片机将要执行的指令机器码所在存储单元的地址。

PC具有自动加1的功能,从而实现程序的顺序执行。

由于PC不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。

PC的寻址范围为64KB,即地址空间为0000~0FFFFH。

(3)堆栈指针SP

SP为8位寄存器,用于指示栈顶单元地址。

所谓堆栈是一种数据结构,它只允许在其一端进行数据删除和数据插入操作的线性表。

数据写入堆栈叫入栈(PUSH),数据读出堆栈叫出栈(POP)。

堆栈的最大特点是“后进先出”的数据操作原则。

MCS-51系统复位后,SP初始化为07H。

(4)数据指针DPTR

数据指针DPTR为16位寄存器,它是MCS—51中唯一的一个16位寄存器。

编程时,既可按16位寄存器使用,也可作为两个8位寄存器分开使用。

DPH为DPTR的高八位寄存器,DPL为DPTR的低八位寄存器。

DPTR通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。

4.单片机运算器

运算器包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存器TMP、程序状态字寄存器PSW、十进制调整电路等。

它能实现数据的算术逻辑运算、位变量处理和数据传送操作。

(1)算术逻辑单元ALU

ALU在控制器根据指令发出的内部信号控制下,对8位二进制数据进行加、减、乘、除运算和逻辑与、或、非、异或、清零等运算。

它具有很强的判跳、转移、丰富的数据传送、提供存放中间结果以及常用数据寄存器的功能。

MCS-51中位处理具有位处理功能,特别适用于实时逻辑控制。

(2)累加器ACC

累加器ACC是8位寄存器,是最常用的专用寄存器,它既可存放操作数,又可存放运算的中间结果。

MCS—51系列单片机中许多指令的操作数来自累加器ACC。

累加器非常繁忙,在与外部存储器或I/O接口进行数据传送时,都要经过A来完成。

(3)寄存器B

寄存器B是8位寄存器,主要用于乘、除运算。

乘法运算时,B中存放乘数,乘法操作后,高8位结果存于B寄存器中。

除法运算时,B中存放除数,除法操作后,余数存于寄存器B中。

寄存器B也可作为一般的寄存器用。

(4)程序状态字PSW

程序状态字是8位寄存器,用于指示程序运行状态信息。

其中有些位是根据程序执行结果由硬件自动设置的,而有些位可由用户通过指令方法设定。

PSW中各标志位名称及定义如下:

位序

D7

D6

D5

D4

D3

D2

D1

D0

位标志

CY

AC

F0

RS1

RS0

OV

P

 

二、单片机最小系统的组成原理图:

图1单片机最小系统的组成原理图

 

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

一、实验原理图——跑马灯

图2跑马灯实验原理图

工作原理:

通过汇编程序中查表中值给单片机的端口赋值,依次点亮LED,两灯之间延时0.1s。

表中有29个值,设置一个寄存器,每点亮依次计数一次,当次数达到29时,回到第一个值,依次循环下去,形成动态闪亮的效果。

 

二、实验方法及步骤

跑马灯实验步骤:

1、设计接口电路。

2、编写程序或运行参考程序。

3、实验结果:

通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。

跑马灯主要实验程序:

ORG0000H

JMPMAIN

ORG0030H

MAIN:

SETBP2.5

MOVA,#0FFH

MOVP1,A

MOVDPTR,#TAB

MOVR0,#00H

LED:

MOVA,R0

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY_100MS

INCR0

CJNER0,#29,LED

MOVR0,#00H

AJMPLED

RET

TAB:

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH;LED查表

DB7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB7EH,0BDH,0DBH,0E7H,0DBH,0BDH,3CH

DB99H,0C3H,99H,3CH,0AAH,55H,0AAH,99H

DELAY_100MS:

MOVR5,#10;延时0.1S

D1:

MOVR6,#20

D2:

MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

三、译码器实验步骤:

1、设计接口电路。

2、调试程序,查看运行结果是否正确。

译码器实验原理图:

图3译码器流水灯实验原理图

工作原理:

根据138译码器的工作原理,当G1G2AG2B=111时,译码器工作,根据74LS138的3个译码信号A、B、C来选择Y0、Y1、Y2、Y3、Y4、Y5、Y6作为输出,各输出为低电平时,当共阳极的LED灯节高电平时,就会使相应的灯亮。

A、B、C三个信号由单片机的P1.0、P1.1和P1.2来提供,而P1.0、P1.1和P1.2的值是通过汇编程序设置初始值后,然后根据P1.0、P1.1和P1.2的值加1或减1和循环来时8各LED灯循环点亮。

译码器实验主要程序:

ORG0000H

JMPMAIN

ORG0030H

MAIN:

SETBP2.4

SETBP2.6

MOVA,#0

LS138_1:

MOVP1,A

LCALLDELAY_100MS

INCA

CJNEA,#8,LS138_1

LS138_2:

DECA

MOVP1,A

LCALLDELAY_100MS

CJNEA,#0,LS138_2

AJMPLS138_1

RET

DELAY_100MS:

MOVR5,#10;延时0.1S

D1:

MOVR6,#20

D2:

MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

 

实验三8255控制交通灯实验

一、实验原理图

8255交通灯的工作规律:

先假定一个十字路口为东南西北走向交通灯的初始状

态为状态1,东西方向绿灯通车,南北方向红灯。

经过过一段时间(5S)转换状

态2,东西方向黄灯闪亮4次,延时2S,南北方向仍然红灯。

再转换到状态3,

东西方向红灯通车,南北方向绿灯。

过一段时间(5S)转换到状态4,南北方向

黄灯闪亮4次,延时2S,东西方向仍然红灯。

最后循环至南北红灯,东西绿灯。

二、实验内容及步骤

交通灯实验主要程序:

ORG0000H

AJMPSTART

ORG0030H

START:

LOOP:

MOVDPTR,#0F3FFH

MOVA,#0DEH;东西绿,南北红。

MOVX@DPTR,A

ACALLDELAY_10S

MOVR0,#0

SH_1:

MOVDPTR,#0F3FFH;SHANSHUO1

MOVA,#0EEH;东西黄,南北红。

MOVX@DPTR,A

ACALLDELAY_100MS

MOVDPTR,#0F3FFH

MOVA,#0FEH;东西黄,南北红。

MOVX@DPTR,A

ACALLDELAY_100MS

INCR0

CJNER0,#4,SH_1

MOVDPTR,#0F3FFH

MOVA,#0F3H;东西红,南北绿。

MOVX@DPTR,A

ACALLDELAY_10S

MOVR0,#0

SH_2:

MOVDPTR,#0F3FFH

MOVA,#0F5H;东西红,南北黄。

MOVX@DPTR,A

ACALLDELAY_100MS

MOVDPTR,#0F3FFH

MOVA,#0F7H;东西红,南北黄。

MOVX@DPTR,A

ACALLDELAY_100MS

INCR0

CJNER0,#4,SH_2

AJMPLOOP

RET

DELAY_2S:

;2秒延时。

MOVR3,#40

DL3:

MOVR4,#100

DL4:

MOVR5,#248

DJNZR5,$

DJNZR4,DL4

DJNZR3,DL3

RET

DELAY_10S:

;10秒延时。

MOVR3,#100

DL1:

MOVR4,#200

DL2:

MOVR5,#248

DJNZR5,$

DJNZR4,DL2

DJNZR3,DL1

RET

END

 

实验四8253方波实验

一、实验原理图

工作原理:

单片机定时器产生一个频率较大的方波。

将此方波作为时钟信号送给8253的通道0,通过分频作为通道1的时钟信号进行二次分频,最后得到所要的频率。

 

二、实验方法及步骤

1、设计接口电路并分析工作原理。

2、测试实验结果:

三种方法选择其一:

蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口;红绿灯交替点亮。

8253方波实验主要程序:

ORG0000H

AJMPSTART

ORG000BH

LJMPT0INT

ORG0030H

START:

MOVDPTR,#0FFFFH

MOVA,#16H;通道0控制字,先写低字节,后高字节,方式2,BCD计数。

MOVX@DPTR,A

MOVDPTR,#0FCFFH

MOVA,#00H

MOVX@DPTR,A

MOVA,#25H

MOVX@DPTR,A

MOVDPTR,#0FFFFH

MOVA,#56H;通道1控制字,先写低字节,后高字节,方式3,BCD计数。

MOVX@DPTR,A

MOVDPTR,#0FDFFH

MOVA,#00H

MOVX@DPTR,A

MOVA,#04H

MOVX@DPTR,A

MOVSP,#60H

MOVTH0,#0FFH

MOVTL0,#0F6H

MOVTMOD,#01H

SETBTR0

SETBET0

SETBEA

MAIN:

AJMPMAIN

T0INT:

CPLP1.0

MOVTL0,#0FFH

MOVTH0,#0F6H

RETI

END

实验五综合实验

将以上四个实验整合在一起,通过键盘选择和控制每个实验的工作。

下面是综合后的整体实验图:

工作原理:

通过P3.0到P3.3四个端口作为键盘的输入,当按下按键一(P3.0)进入实验一,跑马灯正常工作,其他实验都不工作;当按下按键二(P3.1)进入实验二,译码器跑马灯工作,其他实验不工作;当按下按键三(P3.2)进入实验三,交通灯工作,其他实验不工作;当按下按键四(P3.3)进入实验四,方波实验(黄色LED灯周期性闪烁)工作。

具体如何实现该功能,详见附录中整合后程序。

 

实验总结

本次单片机实验由我个人完成,感觉学到了不少知识,从单片机最小系统

板的设计和焊接到实验电路的焊接和程序编写,调试,我收获颇多。

了解了单片机的内部结构和工作原理后,构建一个单片机最小系统应该是很简单的,但是要注意的地方也较多需慎重,不然系统构建失败就啥也干不了了。

最小系统的原理图也比较简单,主要是时钟电路和复位电路部分,这两部分一定保证完全正确,单片机工作就靠这了。

首先要选好各电子元器件,参数一定要符合要求,焊接的时候要注意整体规划,排布较为合理。

特殊端口也要注意,P0口要用到上拉电阻,要注意排阻的焊接,单片机的电源脚和地都要焊好,而且为了方便综合的实验,把电源和地都引到一起。

最好为系统加上一个电源指示灯,可以方便以后的调试。

焊好后肯定要测试的,就拿简单的端口实验(流水灯)来测试,确定最小系统构建的正确。

我在焊接电路之前进行了全面的仿真,所用软件是较为熟悉的proteus,仿真上可以便于实验程序的调试,仿真也花了不少时间。

等到全部仿真完成才开始焊接电路板。

那是思路就很明朗了,直接就按四个实验综合在一起的了来焊的。

流水灯的实验较为简单,在程序编写到具体调试都没有遇到问题,8255和8253模块在调试过程中出现过问题,一开始键盘用在8255的PB口,但不能工作。

经过询问有经验的同学和查资料,明白了用汇编写程序时要注意写的顺序,线给地址后给数据。

不过我还是把键盘放在P3口,直接用在单片机端口更稳定。

经过几次修改,整合的程序没有问题,完全实现功能。

本打算再加点数码管显示模块,可惜到最后端口不够用。

感觉其实还是自己没完全分配好,应该还是可以有端口可以用的。

通过本次单片机实验,不仅深入了解了理论知识,还在实际的制作过程中学到了书本上没有的,还有实际焊接以及调试要考虑的东西书本上好多是没有的,必须在实践中获得。

对比了一下其他同学的作品,有的焊接技术不错,有的程序写的好,比如键盘部分用到了中断,只需一个按键就可以控制所有实验,不过这对编程能力要求高点,中断部分本就是一个难点。

虽然确实学到了不少,但还存在差距和不足,希望有了本次实验的基础,在以后的学习中能有所提高。

附录:

附录1:

整合后程序:

ORG0000H

AJMPSTART

ORG000BH

LJMPT0INT

ORG0030H

START:

MOVSP,#60H

/***************各模块初始化,使其都不工作******************/

CLRP2.4;使两个跑马灯实验不工作

CLRP2.5

CLRP2.6

MOVDPTR,#0F3FFH;8255初始化

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#0FFFFH;8253初始化

MOVA,#56H

MOVX@DPTR,A

/*******************键盘功能实现部分程序*********************/

AJMPKEYSCAN1

KEYSCAN:

JNBP3.0,START1

JNBP3.1,START2

JNBP3.2,START3

JNBP3.3,SSS

RET

SSS:

LJMPSTART4

KEYSCAN1:

ACALLKEYSCAN

AJMPKEYSCAN1

/*******************四个实验具体实验程序***********************/

START1:

ACALLKEYSCAN

MOVDPTR,#0FFFFH;使8253不工作

MOVA,#56H

MOVX@DPTR,A

MOVDPTR,#0F3FFH;使8255不工作

MOVA,#0FFH

MOVX@DPTR,A

CLRP2.4;使译码器不工作

CLRP2.6

SETBP2.5

MOVA,#0FFH

MOVP1,A

MOVDPTR,#TAB

MOVR0,#00H

LED:

MOVA,R0

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY_100MS

INCR0

CJNER0,#29,LED

MOVR0,#00H

AJMPLED

RET

TAB:

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH;LED查表

DB7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB7EH,0BDH,0DBH,0E7H,0DBH,0BDH,3CH

DB99H,0C3H,99H,3CH,0AAH,55H,0AAH,99H

 

START2:

ACALLKEYSCAN

MOVDPTR,#0FFFFH;使8253不工作

MOVA,#56H

MOVX@DPTR,A

MOVDPTR,#0F3FFH;使8255不工作

MOVA,#0FFH

MOVX@DPTR,A

CLRP2.5

SETBP2.4

SETBP2.6

MOVA,#0

LS138_1:

MOVP1,A

LCALLDELAY_100MS

INCA

CJNEA,#8,LS138_1

LS138_2:

DECA

MOVP1,A

LCALLDELAY_100MS

CJNEA,#0,LS138_2

AJMPLS138_1

START3:

ACALLKEYSCAN

MOVDPTR,#0FFFFH;使8253不工作

MOVA,#56H

MOVX@DPTR,A

MOVDPTR,#0FFFFH

MOVA,#00H;通道1控制字,先写低字节,后高字节,方式3,BCD计数。

MOVX@DPTR,A

 

CLRP2.5;使跑马灯实验都不工作

CLRP2.6

CLRP2.4

MOVDPTR,#0FFFFH

MOVA,#82H;A口方式0,输出。

B口方式0,输入。

C口,输出。

MOVX@DPTR,A

LOOP:

MOVDPTR,#0F3FFH

MOVA,#0DEH;东西绿,南北红。

MOVX@DPTR,A

ACALLDELAY_10S

MOVR0,#0

SH_1:

MOVDPTR,#0F3FFH;东西黄,南北红;黄灯闪烁4次

MOVA,#0EEH;东西黄,南北红。

MOVX@DPTR,A

ACALLDELAY_100MS

MOVDPTR,#0F3FFH

MOVA,#0FEH;东西黄,南北红。

MOVX@DPTR,A

ACALLDELAY_100MS

INCR0

CJNER0,#4,SH_1

MOVDPTR,#0F3FFH

MOVA,#0F3H;东西红,南北绿。

MOVX@DPTR,A

ACALLDELAY_10S

MOVR0,#0

SH_2:

;东西红,南北黄;黄灯闪烁4次

MOVDPTR,#0F3FFH

MOVA,#0F5H;东西红,南北黄。

MOVX@DPTR,A

ACALLDELAY_100MS

MOVDPTR,#0F3FFH

MOVA,#0F7H;东西红,南北黄。

MOVX@DPTR,A

ACALLDELAY_100MS

INCR0

CJNER0,#4,SH_2

AJMPLOOP

START4:

ACALLKEYSCAN

MOVDPTR,#0F3FFH;使8255不工作

MOVA,#0FFH

MOVX@DPTR,A

CLRP2.5;使跑马灯实验都不工作

CLRP2.6

CLRP2.4

MOVDPTR,#0FFFFH

MOVA,#16H;通道0控制字,先写低字节,后高字节,方式2,BCD计数。

MOVX@DPTR,A

MOVDPTR,#0FCFFH

MOVA,#00H

MOVX@DPTR,A

MOVA,#25H

MOVX@DPTR,A

MOVDPTR,#0FFFFH

MOVA,#56H;通道1控制字,先写低字节,后高字节,方式3,BCD计数。

MOVX@DPTR,A

MOVDPTR,#0FDFFH

MOVA,#00H

MOVX@DPTR,A

MOVA,#04H

MOVX@DPTR,A

MOVSP,#60H

MOVTH0,#0FFH

MOVTL0,#0F6H

MOVTMOD,#

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1