《单片机原理及应用》课程设计.docx
《《单片机原理及应用》课程设计.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计.docx(29页珍藏版)》请在冰豆网上搜索。
![《单片机原理及应用》课程设计.docx](https://file1.bdocx.com/fileroot1/2023-4/20/1a8d5c77-356f-4bba-b891-857bded42f6e/1a8d5c77-356f-4bba-b891-857bded42f6e1.gif)
《单片机原理及应用》课程设计
目录
引言……………………………………………………………………………………………
(2)
一、设计目的和要求…………………………………………………………………………
(2)
二、设计任务和主要内容……………………………………………………………………
(2)
51单片机基于8155、8255、ADC0809的应用设计……………………………………………(3)内容提要……………………………………………………………………………………(3)
关键词………………………………………………………………………………………(3)
一、8051单片机简介………………………………………………………………………(3)
1)单片机的概述…………………………………………………………………………(3)
2)引脚及功能介绍………………………………………………………………………(3)
二、51单片机的应用设计…………………………………………………………………(5)
1)系统组成框图(总图)………………………………………………………………(5)
2)设计电路原理图(总图)……………………………………………………………(6)
3)设计原理说明………………………………………………………………………(6)
1、51单片机基于8155芯片的扩展应用设计…………………………………………(6)
1.18155的内部结构及引脚说明…………………………………………………(6)
1.28155芯片扩展并口设计………………………………………………………(8)
(1)设计电路图………………………………………………………………(8)
(2)程序流程图………………………………………………………………(8)
(3)程序清单…………………………………………………………………(9)
(4)小结……………………………………………………………………(11)
2、51单片机基于8255芯片的扩展应用设计…………………………………………(11)
2.1功能说明……………………………………………………………………(11)
2.28255扩展并口设计…………………………………………………………(12)
(1)设计电路图………………………………………………………………(12)
(2)程序流程图………………………………………………………………(13)
(3)程序清单…………………………………………………………………(14)
(4)小结………………………………………………………………………(15)
3、51单片机基于ADC0809的扩展应用设计…………………………………………(15)
3.1功能说明……………………………………………………………………(16)
3.2ADC0809扩展设计…………………………………………………………(17)
(1)设计电路图………………………………………………………………(17)
(2)程序流程图………………………………………………………………(17)
(3)程序清单…………………………………………………………………(18)
(4)小结………………………………………………………………………(19)
三、结束语………………………………………………………………………………(19)
参考文献……………………………………………………………………………………(20)
引言
一、设计目的和要求
1.进一步熟悉和掌握单片机的结构及工作原理。
2.巩固和加深对单片机原理知识的理解,提高学生综合运用课程所学知识的能力及相应的自学能力,并初步建立起开发单片机应用系统的系统概念和整体设计的思想。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事设计开发工作打下基础。
6.掌握单片机的接口技术和常用扩展接口芯片如8155、8255、ADC0809等的外特性、使用及控制方法,熟悉汇编程序设计方法,能够达到熟练调试程序的程度,能在教师的指导下,完成课题任务。
7.根据个人的设计调试过程,按照课程设计报告的规范撰写设计报告。
二、设计任务和主要内容
结合MCS-51单片机,74LS373,74LS138,8155,8255,A/D0809等芯片,自拟课题,完成单片机设计。
根据设计原理图、程序流程图,编写程序并调试,说明所设计电路的功能,以及各个功能模块的作用,并写出设计心得,完成课程设计报告。
a)原理图设计
1.原理图设计要符合项目的工作原理,连线要正确。
2.图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3.原理图要完整,CPU,外围器件,扩展接口,输入/输出装置要一应俱全。
b)程序设计
1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。
3.编写程序,并执行该程序进行调试,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止。
51单片机基于8155、8255、ADC0809的应用设计
【内容摘要】单片计算机即单片微型计算机。
由RAM、ROM、CPU构成,定时、计数和多种接口于一体的微型控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是个单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬件的能力。
本次设计主要设计了一个基于8051单片机来扩展外围芯片(8155、8255、ADC0809),分别实现相应的功能,通过编写相应程序,来控制51单片机,进而分别控制三块芯片,可实现按键的采集和显示功能(使用8155芯片)、0—9循环显示的功能(使用8255芯片)、对模拟电压信号的采样以及数字化转换功能(使用ADC0809芯片)。
【关键字】51单片机、8155、8255、ADC0809、扩展
一、8051单片机简介
1)单片机的概述
80C51是Intel公司MCS-51系列单片机中最基本的产品,它采用Intel公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。
80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
80C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
2)引脚及功能介绍
图1为8051单片机的引脚图,单片机的40个引脚大致可分为4类:
电源、时钟、控制和I/O引脚。
1.电源
⑴VCC—芯片电源,接+5V;
⑵VSS—接地端;
图18051引脚图
⒉时钟:
XTAL1、XTAL2—晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根
⑴ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
●ALE功能:
用来锁存P0口送出的低8位地址
●PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵PSEN:
片外ROM读选通信号。
⑶RST/VPD:
复位/备用电源。
●RST(Reset)功能:
复位信号输入端。
●VPD功能:
在Vcc掉电情况下,接备用电源。
⑷EA/Vpp:
片内、片外ROM选择/片内EPROM编程电源。
●EA功能:
片内、片外ROM选择端。
●Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
●P0口(39脚至32脚):
是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
●P1口(1脚至8脚):
是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
P1口能驱动(吸收或输出电流)4个LS型的TTL负载。
●P2口(21脚至28脚):
是准双向8位I/O口。
在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P2口可以驱动(吸收或输出电流)4个LS型的TTL负载。
●P3口(10脚至17脚):
是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。
P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
作为第二功能使用时,用于特殊信号输入输出和控制信号(属控制总线)。
二、51单片机的应用设计
本设计为51单片机基于8155、8255、ADC0809的应用设计,可实现按键的采集和显示功能(使用8155芯片)、0—9循环显示的功能(使用8255芯片)、对模拟电压信号的采样以及数字化转换功能(使用ADC0809芯片)。
1)系统组成框图(总图)
统组成框图中省略了译码器(74LS138)和锁存器(74LS373),74LS138作用是作8155、8255、ADC0809芯片的片选信号输入端,而74LS373的作用是用于锁存51单片机P0口输出的低8位地址。
当选中8155芯片时可实现按键的采集和显示功能,当选中8255芯片时可实现0—9循环计数的功能,当选中ADC0809芯片时可实现对模拟电压信号的采样以及数字化转换功能。
2)设计电路原理图(总图)
设计电路原理图如图所示。
3)设计原理说明
如设计原理图所示,8051单片机的EA端接地,说明只使用片外ROM(即2764),片内ROM失去作用,因此只要将设计的程序存放在2764芯片内,就能控制8051单片机,进而控制各个扩展的芯片。
8051芯片的P0口分别接8155、8255、ADC0809三块芯片的AD0-AD7、D0-D7、2-1~2-8引脚,P2.5、P2.6、P2.7分别接74LS138的A、B、C口,74LS138的输出口Y0、Y1、Y2分别作8155,8255,ADC0809芯片片选信号,因此,当P2.5、P2.6、P2.7输出为000时选通8155,P2.5、P2.6、P2.7输出为001时选通8255,P2.5、P2.6、P2.7输出为010时选通ADC0809,即只要设置合理的端口地址,就能选通不同的芯片,设计不同的程序就能使8155、8255、ADC0809中的一块芯片,按照设计好的程序完成相应的功能。
下面对8155、8255、ADC0809这三块芯片分别与51单片机扩展设计的功能作出说明。
1、51单片机基于8155芯片的扩展应用设计
8155是能并行传送8位数据,具有256字节内部RAM、1个计数器、3个通道、4种工作方式的可编程并行接口芯片(40引脚)。
由此定义可比较容易的理解8155的内部结构、8155引脚与CPU的连接方式等。
1.18155的内部结构及引脚说明
8155内部结构及引脚图如图2所示,现按8155定义,叙述其内部结构。
图28155内部结构及引脚图
(1)内部RAM
8155有256字节单元的内部RAM数据存储器,供用户作数据缓冲器等使用。
(2)定时器
8155还有一个14位的定时器,该定时器有一个计数器脉冲输入端TIMERIN与定时器输出端TIMEROUT。
定时器输入和定时器输出分别用于输入计数器的脉冲信号、输出矩形波或脉冲波。
(3)3个通道
8155有3个通道A、B、C与外设连接,其中A、B通道有8个引脚与外设连接,C通道口有6个引脚。
C口的6个引脚常用于6位数据的输入与输出,或应答方式的通信线。
(4)与外设连接部分
①地址/数据总线AD0~AD7:
分时的传送地址与数据信息。
②控制总线CB
CPU要对8155的RAM、I/O口(A、B、C口)进行读、写、片选等操作,控制线为片选、复位、读、写等信号。
●RAM与I/O选择线
=0时选择片内RAM,
=1时选择I/O口。
与8255一样,8155是使用地址线的低3位A0、A1、A2选择I/O口及控制寄存器。
地址的高5位在选择I/O口地址时可取任意值。
具体选择方法如下表1所示:
表18155I/O口地址:
A7A6A5A4A3A2A1A0
选中寄存器
× × × × × 000
命令状态寄存器
× × × × × 001
A口
× × × × × 010
B口
× × × × × 011
C口
× × × × × 100
定时器低8位寄存器
× × × × × 101
定时器高6位及工作方式
●片选信号
:
低电平有效,选择8155芯片。
●写信号
:
低电平有效,将AD0—AD7上信息写入8155的RAM或I/O口。
●读信号
:
低电平有效,将8155的RAM或I/O口中信息送上AD0—AD7。
●地址锁存信号ALE:
ALE的下降沿将AD0—AD7、
、
上信息锁存到8155内部锁存器中。
●复位信号RST:
RST将8155各寄存器与I/O口锁存器等复位初始化。
PA0~PA7:
8位通用I/O口,其输入、输出的流向可由程序控制。
PB0~PB7:
8位通用I/O口,功能同A口。
PC0~PC5:
有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线。
1.28155芯片扩展并口设计
本设计实现51单片机基于8155扩展三个基本输入输出端口,其中A、B口用于输出,C口用于输入。
没有用到选通输入方式。
如果需要用到此方式,可以进行相应的软硬件扩展设计。
(1)设计电路图
51单片机基于8155的并行口扩展设计如图所示(下页)。
整个硬件设计主要器件为:
51单片机、8155芯片、数码管2只、按键开关6只、EPROM2764一片、74LS138译码器、74LS373锁存器。
本电路设计当中没有包含复位电路,51单片机的复位电路输出端可以和8155的复位端并联在一起使用。
因为两芯片均为高电平复位。
图中,片选端接74LS138的Y0,而74LS138的A、B、C分别接8051的P2.5、P2.6、P2.7,而8155的IO\M引脚接VCC,WR、RD两条线用于对IO端口数据的读写,可以得到8155端口地址为1F00H~1F05H。
进一步可以得到详细的端口地址划分如下。
1F00H:
命令状态口
1F01H:
A口
1F02H:
B口
1F03H:
C口
1F04H:
定时器低字节
1F05H:
定时器高字节
需要特别说明的是:
根据本设计的硬件电路图得到的端口地址可以不同,但是有一点,就是8155的16位端口地址中,高三位必为000,低三位用于确定端口号,剩余中间的10个位状态可以任选。
这是由电路的端口地址译码所决定的。
(2)程序流程图
8155基于51单片机的并行扩展程序设计很简单,关键就是对8155的工作方式进行设定,即8155的操作坚持采用先设定、后工作的原则。
程序流程图如图3所示。
0.5s延时运用软件延时实现,通过程序实现对8155的控制字寄存器进行设定,使8155的两个并行口A、B按照设定的基本输入输出方式正常工作,驱动两位数码管轮流显示按键个数,6位并行口C工作于输入方式,间隔0.5s查询一次键盘状态。
图38155并口扩展程序流程图
(3)程序清单
;内存变量设定
DPLCODEDATA30H;待显示数据字型码
DPLNUMDATA31H;待显示数据,存储按键数单元
CNT1DATA32H;软件延时用控制变量
CNT2DATA33H
ORG0000H
LJMPMAIN
;主程序
ORG0050H
MAIN:
MOVSP,#70H;设置堆栈
MOVIE,#00H;关闭所有中断
LCALLDELAY
MOVDPTR,#1F00H;8155工作方式设定
MOVA,#03H
MOVX@DPTR,A
LOOP:
MOVDPTR,#1F03H;读C口键盘状态
MOVXA,@DPTR
LCALLKEYNUM;调用判断按键数程序
LCALLKEYDPL;调用显示码函数
MOVA,DPLCODE;显示码送CPU
MOVDPTR,#1F01H
MOVX@DPTR,A;A口对应数码管显示按键数
MOVDPTR,#1F02H
MOVX@DPTR,A;B口对应数码管显示按键数
LCALLDELAY;延时0.5s
MOVA,#0FFH
MOVDPTR,#1F01H
MOVX@DPTR,A;关闭两个数码管显示
MOVDPTR,#1F02H
MOVX@DPTR,A
LJMPLOOP
;分析键盘按键个数子程序
KEYNUM:
MOVR6,#06H;得到C口所接键盘按键数
MOVDPLNUM,#00H
LOOP0:
JNBACC.5,INCKEYNUM;有键按下
RLA;无键按下
DJNZR6,LOOP0;按键判断6次
MOVA,DPLNUM;得到按键数
RET
;键盘个数加1
INCKEYNUM:
INCDPLNUM;有键按下,按键数加1
RLA
DJNZR6,LOOP0;继续判断按键个数
MOVA,DPLNUM;按键数送CPU
RET
;按键个数显示码查表程序
KEYDPL:
MOVA,DPLNUM
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPLCODE,A
RET
;延时子程序,延时0.5s
DELAY:
MOVCNT1,#0FAH;软件延时0.5s
MOVCNT2,#80H
DELAY1:
LCALLDELAY0;连续4ms
LCALLDELAY0
LCALLDELAY0
LCALLDELAY0
DJNZCNT2,DELAY1;4ms循环125次,实现0.5s
MOVCNT2,#80H
RET
DELAY0:
NOP
NOP
DJNZCNT1,DELAY0;软件延时1ms
MOVCNT1,#0FAH
RET
TABLE:
DBC0H,B9H,A4H,B0H,99H,92H,82H,F8H,80H,90H;数据显示码表0-9
END
程序功能为8155两个8位并行口工作于输出方式,6位并行口用于读取键盘状态,单片机间隔0.5s读取键,通过8155的6位并行口读取外接键盘状态,分析按键个数,两个数码管显示按键个数。
显示格式为:
00、11、22、33、44、55、66。
(4)小结
此部分,是基于可编程功能扩展并口芯片8155实现的51单片机扩展输入输出并口的应用设计,由于设计篇幅所限,没有将8155的功能运用完全展开,比如8155的片内RAM、片内14位定时器,A口、B口的置位工作方式等。
但我对于8155芯片的基本使用,我已经了然于心,为了对8155的更细致的使用,我当进一步参考相关的文献资料。
2、51单片机基于8255芯片的扩展应用设计
8255是Intel公司生产的通用可编程并行I/O接口芯片(40引脚),有3个8位并行I/O口,具有3个通道3种工作方式。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
允许采用同步、异步和中断方式传送I/O数据。
2.1功能说明
图48255内部结构及引脚图
特性
(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口、PB口和PC口。
它们又可分为两组12位的I/O口。
A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3),8255内部结构如图4所示。
引脚功能
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
A0、A1:
地址选择线,用来选择8255的PA口、PB口、PC口和控制寄存器。
当A0=0、A1=0时,PA口被选择;
当A0=0、A1=1时,PB口被选择;
当A0=1、A1=0时,PC口被选择;
当A0=1、A1=1时,控制寄存器被选择。
2.28255扩展并口设计
(1)设计电路图
基于8255扩展并口设计如图所示(下页)。
整个电路所用器件为:
51单片机、8255芯片、数码管3只、EPROM2764一片、74LS138译码器、74LS373锁存器。
在图中,74LS138的端口A、B、C分别与51单片机的P2.5、P2.6、P2.7相连,输出端Y1用于8255芯片的片选,ALE用于8255端口地址数据信号的锁存,数据的输入输出经由P0口。
图中,由74LS373锁存器的A1、A0和来自51单片机的端口P2.5、P2.6、P2.7共同决定8255的各个端口地址:
当P2.5、P2.6、P2.7=001时,74LS138的输出端Y1=0,8255有效,无关位设为1,此时8255各个端口地址计算如下。
A口:
3F00H;B口:
3F01H;C口:
3F02H;控