单片机应用技术.docx

上传人:b****5 文档编号:6376083 上传时间:2023-01-05 格式:DOCX 页数:29 大小:481.72KB
下载 相关 举报
单片机应用技术.docx_第1页
第1页 / 共29页
单片机应用技术.docx_第2页
第2页 / 共29页
单片机应用技术.docx_第3页
第3页 / 共29页
单片机应用技术.docx_第4页
第4页 / 共29页
单片机应用技术.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机应用技术.docx

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

单片机应用技术.docx

单片机应用技术

目录

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

一、预习要求4

二、实验目的4

三、实验内容4

四、实验原理4

五、实验仪器、设备7

六、实验总结7

七、思考题7

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

一、实验原理8

二、软件流程图9

2.1跑马灯程序流程图9

2.2源程序代码10

三、软件仿真图及测试12

四、实验总结12

五、思考题12

实验三8255控制交通灯实验13

一、预习要求13

二、实验目的13

三、实验内容13

四、实验原理13

1、参考电路原理图14

2、软件流程图15

五、源程序代码16

六、实验总结16

七、思考题16

实验四8253方波实验17

一、预习要求17

二、实验目的17

三、实验内容17

四、8253工作方式17

五、实验原理19

六、软件仿真图19

七、实验程序20

八、实验总结20

九、思考题20

附录21

1、protues仿真测试21

2、程序测试22

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

一、预习要求

1、构建单片机最小系统,熟悉51单片机的结构及编程方。

2、按照程序流程图编写出程序。

二、实验目的

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

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

三、实验内容

单片机最小系统实验:

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

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

存储单元数据传输实验:

1、熟悉MCS51汇编指令。

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

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

四、实验原理

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

图1单片机最小系统

2、分析单片机最小系统的工作原理

单片机最小系统主要由晶振电路和复位电路组成的,晶振电路是由晶振和瓷片电容构成的,我们是的晶振是11.0592Mhz,为51单片机提供时钟源。

复位电路是由按钮、电解电容和电阻组成的,为单片机提供复位功能,就此就构成了最小系统板。

STC89C51RC单片机是基于51内核的单片机,是在51单片机应有的功能上基础拓展的单片机,是属于MCS—51系列单片机中的高端单片机,它有运算器包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存器TMP、程序状态字寄存器PSW、十进制调整电路等。

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

(1)控制器

单片机有控制器,它包括定时控制逻辑(时钟电路、复位电路),指令寄存器,指令译码器程序计数器PC,堆栈指针SP,数据指针寄存器DPTR以及信息传送控制部件等。

(2)时钟电路

单片机有时钟电路,在单片机芯片的内部有一个高增益反相放大器,输入端为XTAL1,输出端为XTAL2,一般在XTAL1与XTAL2之间接石英晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,就是单片机的内部时钟电路,时钟电路产生的振荡脉冲经过二分频以后,才成为单片机的时钟信号。

电容C1和C2为微调电容,可起频率稳定、微调作用,我取用30pf电容。

晶振的频率范围是1.2MHz~12MHz,我取11.0592MHz。

(3)复位电路

单片机的复位电路需要外接,对于使用12MHZ的晶振的单片机,复位信号持续时间应超过4μs才能完成复位操作。

产生复位信号的电路有上电自动复位电路和按键手动复位电路两种方式。

我通过外部复位电路的电容充电来实现的单片机复位的,即人为的复位操作。

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

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

(5)程序计数器PC

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

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

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

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

(6)堆栈指针SP

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

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

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

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

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

(7)数据指针DPTR

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

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

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

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

(8)引脚定义

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

五、实验仪器、设备

1、单片机最小系统

2、KeilC51集成环境软件

六、实验总结

单片机系统电路的基本模块有:

复位电路,晶振电路,电源接口,下载接口等主要模块。

在单片机最小系统的构建中,EA脚拉高是非常必要的,它可以影响单片机的正常工作。

在检测单片机是否正常工作,可以通过检测晶振两端的信号的波形形状。

在单片机正常工作条件下,其信号为正弦波。

经过一周的时间基本完成单片机最小系统板的焊接部分和单片机的工作原理,以及对单片机外围电路的焊接,知道了硬件部分的重要性,单片机最小系统板的焊接最主要是晶振部分和下载接口的焊接,提高了单片机的工作频率,同时也为单片机提供下载程序的接口,是单片机的非常重要的外围电路。

七、思考题

1、在单片机最小系统的构建中,应注意哪些因素。

答:

(1)51单片机现在多用AT89S51,不用晶振,晶体加两个电容就可以了。

(2)复位电路中的电容是虑波稳定作用,并联在一个电阻上,一端接地,一端通过开关接高电位就可以了。

(3)晶振:

一般选用12MHz,因为可以准确地得到9600波特率和19200波特率。

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

一、实验原理

给单片机的端口赋初值,点亮第一个LED,然后延时一段时间后,点亮下一个LED,依次循环下去。

形成动态闪亮的效果。

图2跑马灯原理图

 

图3译码器原理图

二、软件流程图

2.1跑马灯程序流程图

图4跑马灯程序流程图

2.2源程序代码

1、跑马灯汇编程序代码:

TIME10MS:

MOVR5,#14h;10.262ms

TIME10MS_1:

MOVR6,#0ffh;511us

DJNZR6,$

DJNZR5,time10ms_1

RET

;功能:

使用P1口控制8个LED流水灯

LED:

MOVA,#0FFH

MOVP1,A

MOVDPTR,#TAB;查表

MOVR0,#00H

LED_1:

MOVA,R0

MOVCA,@A+DPTR

MOVP1,A

CJNER4,#01H,LED_2;按键按下后立即跳出

LCALLDELAY1

CJNER4,#01H,LED_2;按键按下后立即跳出

MOVR5,#10

INCR0

CJNER0,#29,LED_1

MOVR0,#00H

AJMPLED_1

LED_2:

MOVP1,#0FFH;使P1口输出高电平,防止P1口扰乱后面的操作

RET

;查表

TAB:

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

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

DB7EH,0BDH,0DBH,0E7H,0DBH,0BDH

DB3CH,99H,0C3H,99H,3CH

DB0AAH,55H,0AAH,99H

;延时0.5S

DELAY1:

MOVR5,#17H

D1:

MOVR6,#98H

D2:

MOVR7,#46H

DJNZR7,$

CJNER4,#01H,DELAY11;按键按下后立即跳出

DJNZR6,D2

CJNER4,#01H,DELAY11;按键按下后立即跳出

DJNZR5,D1

DELAY11:

RET

;功能:

使用74LS138控制8个LED流水灯,循环点亮,瞬间只有一个灯亮

LS138:

MOVA,#0xf0;138使能

LS138_1:

MOVP2,A

CJNER4,#02H,LS138_3;按键按下后立即跳出

LCALLDELAY2

CJNER4,#02H,LS138_3;按键按下后立即跳出

INCA

CJNEA,#0xf8,LS138_1

LS138_2:

DECA

MOVP2,A

CJNER4,#02H,LS138_3;按键按下后立即跳出

MOVR5,#13

LCALLDELAY2

CJNER4,#02H,LS138_3;按键按下后立即跳出

CJNEA,#0xf0,LS138_2

AJMPLS138_1

LS138_3:

SETBP2.0

SETBP2.1

SETBP2.2

CLRP2.7

RET

;延时0.5S

DELAY2:

MOVR5,#17H

D3:

MOVR6,#98H

D4:

MOVR7,#46H

DJNZR7,$

CJNER4,#02H,DELAY22;按键按下后立即跳出

DJNZR6,D4

CJNER4,#02H,DELAY22;按键按下后立即跳出

DJNZR5,D3

三、软件仿真图及测试

图5跑马灯仿真图

四、实验总结

通过LED,74HC138的焊接和它与单片机的连线,我对流水灯的电路有了清晰的认识,从概念上理解了如何用程序来控制流水灯。

在焊接的过程中我学会了一些焊接技巧,如何在焊接时走线使电路连线最简单。

完成电路设计后,开始在KEIL中编写汇编程序,并将其转换成**.hex工程文件。

完成程序后,在Protues中进行仿真。

通过不断的修改和调试,程序仿真是正确的。

最后通过下载器把程序下载到到单片机里,发现达不到仿真的效果。

经过对程序的修改调试,在实际硬件电路中基本实现了功能。

这次实验最大的收获,第一、我熟悉了KEIL和protues软件的联合使用。

第二、学会单片机程序编写和调试。

第三、我理解了软件与硬件的关系,单片机可以通过软件作用到硬件把我们的思想表达出来。

五、思考题

1、在单片机系统中,74HC138通常用来产生片选信号,应如何处理?

答:

取三根底地址线,接到74HC138译码器的输入端,译码产生,8个使能控制信号。

实验三8255控制交通灯实验

一、预习要求

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

2.按照要求画出流程图及程序

二、实验目的

1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。

学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。

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

3、尝试自行编写程序,填写实验报告。

三、实验内容

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

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

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

四、实验原理

交通灯的变化规律:

先假定一个十字路口为东南西北走向交通灯的初始状态为状态1,东西方向绿灯通车,南北方向红灯。

经过过一段时间(3S)转换状态3,东西方向红灯通车,南北方向绿灯。

过一段时间(3S)转换到状态4仍然红灯。

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

1、参考电路原理图

图6交通灯电路图

图7仿真测试图

2、软件流程图

图8流程图

 

五、源程序代码

见附录

六、实验总结

通过本次交通灯实验,学会了使用8255芯片的初始化和编程方法。

同时认识到通过8255实现了I/O口的扩展。

本实验使用的是8255的方式0。

利用8255完成交通灯的四中状态切换。

第一种状态是东西方向是绿灯,南北方向是红灯。

第二种状态是东西方向是黄灯并且闪烁,南北方向是红灯。

第三种状态是东西方向是红灯,南北方向是绿灯。

第四种状态是东西方向是红灯,南北方向是黄灯,最后变到第一种状态。

在实现具体的硬件时,采用8255控制十二个LED,三个一组,分成四组来模拟实际交通灯。

其中的对面两组状态变化是相同一致的。

在完成仿真后在硬件电路中调试时,发现了一个问题,就是灯不亮。

经过检查电路后发现电路的连线错了。

重新焊接后,发现电路导通了,交通灯正常了。

通过问题的解决,我对程序和电路有了更深的认识和理解。

七、思考题

1、如何对8255的PC口进行位操作?

答:

设8255的置位/复位控制字格式位为D7—D0,D7位为置位/复位控制字,它必须等于0,D6—D4位任意值,D3—D1位用于选择对端口C中某一位进行操作;D0位指出对选中位是置1还是清0.。

D0=1时,使选中位置1;D0=0时,使选中位置0。

如下例:

设一片8255A的端口地址为60H—63H,PC5平时为低电平,现要求从PC5的引脚输出输出一个正脉冲。

可以用程序先将PC5置1,输出一个高电平,再把PC5清0。

输出一个低电平,结果,PC5引脚上便输出一个正脉冲。

实现这个功能的程序如下:

MOVAL,00001011B;送控制字

OUT63H,AL;置pc5为高电平

MOVAL,00001010B

OUT63H,AL;置pc5为低电平

实验四8253方波实验

一、预习要求

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

2.按照要求画出流程图及程序

二、实验目的

了解8253的内部结构、工作原理;了解8253与单片机的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。

三、实验内容

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

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

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

四、8253工作方式

8253共有六种工作方式:

计数结束中断方式、可编程单稳态输出方式、比率发生器、方波发生器、软件触发选通、硬件触发选通

(1)工作方式0:

工作方式0被称为计数结束中断方式。

当任一通道被定义为工作方式0时,OUT输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值使WR有效时,OUT仍保持低电平,之后的下一时钟周期下降沿计数器开始减“1”计数,直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT端输出的高电平一直维持到下次再写入计数值为止。

(2)工作方式1:

工作方式1被称作可编程单稳态输出方式。

进入这种工作方式,CPU装入计数值n后OUT输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。

与此同时,OUT输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。

(3)工作方式2:

工作方式2被称作比率发生器。

进入这种工作方式,OUT输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT保持为高电平不变;待计数值减到“1”和“0”之间,OUT将输出宽度为一个CLK周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLK周期,重复周期为CLK周期的n倍。

(4)工作方式3:

工作方式3被称作方波发生器。

任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:

1的方波。

进入工作方式3,OUT输出低电平,装入计数值后,OUT立即跳变为高电平。

如果当GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。

这时OUT端输出的周期为n×CLKi周期,占空比为1:

1的方波序列;若n为奇数,则OUTi端输出周期为n×CLK周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。

(5)工作方式4:

工作方式4被称作软件触发选通。

进入工作方式4,OUT输出高电平。

装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUT输出宽度为一个CLKi周期的负脉冲。

由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。

如果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。

(6)工作方式5:

工作方式5被称为硬件触发选通式。

进入工作方式5,OUT输出高电平,硬件触发信号由GATE端引入。

因此,开始时GATE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUT将输出负脉冲,其宽度固定为一个CLK周期,表示定时时间到或计数次数到。

 

五、实验原理

参考电路原理图:

图98253电路图

六、软件仿真图

图10方波仿真图

七、实验程序

见附录

八、实验总结

本次实验实现了单片机P1.0口出来的1ms方波,经8253A的1000次分频(计数器1进行100次分频,计数器0进行10次分频)后,产生周期为1ms的方波,驱动蜂鸣器报警的功能。

实验主要利用单片机内部的定时计数及8253A的分频功能。

实验比较理想,相对上一个实验简单一点。

由于我们组是两人一组,所以我们只做了四个实验,至此单片机实验就结束了,整个过程是很有意义的,提高了我们的动手能力,我们有一种学以致用的感觉,当然在这个过程中也遇到很多困难,在我们的努力下,在同学的帮助下,都得到了有效地解决,在这里衷心感谢那些帮助过我们的同学,也感谢我们敬爱的储老师!

九、思考题

1、8253还有其它五种工作方式,其它工作模式下,硬件如何设计?

程序如何编写?

答:

8253有六种工作模式(0~5),每种工作模式决定以下内容:

(1)计数初值何时起作用:

计数初值写入计数初值寄存器(CR)后,要经过一个CLK输入后,计数执行部件(CE)才开始计数。

(2)门控信号的影响:

门控信号是计数允许信号。

高电平允许,即GATE=1,允许对CLK计数。

上升沿允许这种情况需使用计数器内部的一个边沿触发器。

只要当初边沿触发器置1后,计数器才对CLK计数。

GATE上升沿使边沿触发器置1,GATE下降沿使边沿触发器自动清0.模式0,2,3,4,高电平允许,模式1、5,上升沿允许。

(3)OUT信号的状态:

写入控制字后,OUT的状态。

计数过程中,OUT的状态。

计数终了,OUT的状态。

(4)技术操作是否可以重复,或称计数初值是否可以自动装入:

a.不可重复b自动重复c条件重复

(5)计数器的工作模式:

计数器在CLK的下降沿使计数值减1,计数值减至0时,“计数到”。

写入初值0时,代表最大初值65536。

2、使用8253,编写一个实时钟程序。

答:

计数器0用作定时器,GATE接+5v,使计数器0处于常开状态,开机初始化后,它就一直处于计数工作状态,为系统提供基准时间。

在对计数器0进行编程时,选用方式3,2进制计数器。

附录

1、protues仿真测试

2、程序测试

ORG0000H

AJMPSTART

ORG0003H

LJMPINTT0

ORG000BH

LJMPT0INT

ORG0400H

START:

CLRP2.7

SETBP2.2

SETBP2.3

NOP

NOP

MOVP0,#0

SETBIT0;下降沿中断

SETBEX0;开中断0

SETBEA;开总中断

MOVR4,#01H

MAIN:

CJNER4,#01H,PROC_1

LCALLLED

PROC_1:

CJNER4,#02H,PROC_2

LCALLLS138

PROC_2:

CJNER4,#03H,PROC_3

LCALLIC_8255A

PROC_3:

CJNER4,#04H,PROC_4

LCALLIC_8253

CLRET0

PROC_4:

CJNER4,#05H,MAIN

LCALLJIDIAN

AJMPMAIN

DE

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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