学年文

点赞:4053 浏览:17459 近期更新时间:2024-01-24 作者:网友分享原创网站原创

学年论文

(课程论文,课程设计)

题目:单片机最小系统设计

学号姓名:200508059010李振东

所在系院:电子电气工程学院

专业年级:电子信息科学与技术2005级

指导教师:谭菊

2016年12月16日

单片机最小系统设计

05电信李振东指导老师谭菊

摘 要

以ADC0809和8051为核心,该系统有三个部分:数据采集,数据处理和显示,终端接收.具体包括控制,显示,A/D转换器,电平转换接口等.设计中用ADC0809进行8路数据的采样,利用MCS-51单片机的串行口发送和接收数据.显示部分由8155,75452和LED数码显示器构成.硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法.由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能,成熟的技术及高可靠性和高性能比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流.目前,可用于MCS-51系列单片机开发的硬件越来越多,与其配套的各类开发系统,各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统.单片机扩展系统是在以MCS-51单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便,组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量.单片机以其功能强,体积小,可靠性高,造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大.本课题设计主要在MCS-51单片机上进行系统扩展,它包括程序存储器(ROM)扩展,数据存储器(RAM)扩展,I/O口扩展,定时/计数器扩展,中断系统扩展以及其它特殊功能扩展等.本文详述了在基本型单片机8051芯片的基础上,根据实际应用需要扩展必要的接口芯片资源,设计一个单片机通用系统的过程,并说明设计原理.1).确定系统功能与性能

由需求调查可以确定出单片机应用系统的设计目标,包括系统功能与性能.系统功能主要有数据采集,数据处理,输出控制等.

(2).确定系统基本结构

单片机应用系统结构一般是以单片机为核心外部扩展相关电路的形式.确定了系统中的单片机,存储器分配及输入/输出方式就可大体确定出单片机应用系统的基本组成.

1)单片机

在系统详细方案设计时,先要确定单片机的型号.所选单片机的型号不同,组成的系统结构也就不同.

2)存储器分配

不同的单片机具有不同的存储器组织.MCS-51单片机的程序存储器与数据存储器空间相互独立,工作寄存器与内部数据存储器共用一个存储空间,I/O端口则与外部数据存储器共用一个存储空间.

(3)I/O通道划分

单片机应用系统中通道的数目及类型直接决定系统结构.设计中应根据被控对象所要求的输入/输出信号的数目及类型,确定整个应用系统的通道数目及类型.

(4).I/O方式的确定

采用不同的输入/输出方式,对单片机应用系统的硬,软要求是不同的.在单片机应用系统中,常用的I/O方式主要有无条件传送方式(程序同步方式),查询方式和中断方式.这三种方式对硬件要求和软件结构各不相同,而且存在着明显的优缺点差异.在一个实际应用系统中,选择哪一种I/O方式,要根据具体的外设工作情况和应用系统的性能技术指标综合考虑.一般来说,无条件传送方式只适用于数据变化非常缓慢的外设,这种外设的数据可视为常态数据,中断方式处理器效率较高,但硬件结构稍复杂一些,而询问方式硬件较低,但处理器效率比较低,速度比较慢.在一般小型的应用系统中,由于速度要求不高,控制的对象也较少,此时,大多采用询问方式.

3.单片机应用系统的一般调试方法

硬件调试是利用开发系统,基本测试仪器(万用表,示波器等),通过执行开发系统有关命令或运行适当的测试程序(也可以是与硬件有关的部分用户程序段),检查用户系统硬件中存在的故障.

单片机应用系统中大部分电路安装在印制电路板上,因此对每一块加工好的印制电路板要进行仔细的检查.检查它的印制线是否有断线,是否有毛刺,是否与其它线或焊盘粘连,焊盘有否脱落,过孔是否有未金属化现象等.如印制板无质量问题,则将集成芯片的插座焊接在印制板上,并检查其焊点是否有毛刺,是否与其它印制线或焊盘连接,焊点是否光亮饱满无虚焊.对单片机应用系统中所用的器件与设备,要仔细核对型号,检查它们对外连线(包括集成芯片引脚)是否完整无损.通过目测查出一些明显的器件,设备故障并及时排除.


从宏观来说,单片机应用系统中的软件与硬件是密切相关,相辅相成的.软件是硬件的灵魂,没有软件,系统将无法工作,同时,大多数软件的运行又依赖于硬件,没有相应的硬件支持,软件的功能便荡然无存.因此,将两者完全孤立开来是不可能的.然而,并不是用户程序的全部都依赖于硬件,当软件对被测试参数进行加工处理或作某项事务处理时,往往是与硬件无关的,这样,就可以通过对用户程序的仔细分析,把与硬件无关的,功能相对独立的程序段抽取出来,形成与硬件无关和依赖于硬件的两大类用户程序块.这一划分工作在软件设计时就应充分考虑.

4.单片机应用系统开发设计流程图

5.设计原理图

6.设计PCB

7.设计调试程序

BITCNTDATA30H,数据位计数器

BYTECNTDATA31H,数据字节计数器

COMMANDDATA32H,命令字节地址

RCVDATDATA40H,接收数据缓冲区

XMTDATDATA50H,发送数据缓冲区

,端口位定义

IO_DATAEQUP3.6,数据传送总线

SCLKEQUP3.7,时钟控制总线

RSTEQUP3.5,复位总线

RSEQUP1.4

REEQUP1.5

EEQUP1.6

ORG0000H

AJMPSTART

ORG0033H

START:MOVSP,#60H

MAIN:

..............................................................

,设置1602

LCALLDELAY,延时一段时间

LCALLDRIVE_1602,初始化1602

LCALLXIANSHI_ZIFU,显示提示字符串

,-------------------------------------

,设置1302

LCALLKAISHI,时钟停止位操作把秒寄存器第7位设置位0时,起始时钟开始

LCALLNO_CHONGDIAN,禁止充电操作

LCALLWRITE_ENABLE,写保护寄存器操作

LCALLWRITE_MOREBYTE,多字节传送方式

LCALLWRITE_NOABLE,禁止写

Z:LCALLREAD_MOREBYTE,读出多字节方式

...............................................................................................................................

,显示时间

,显示秒等程序

MOVR2,#8DH

LCALLXIANSHI1

,显示字符3程序

MOVR5,#8CH

LCALLZIFU3

,显示分程序

MOVR2,#8AH

LCALLXIANSHI1

,显示字符3程序

MOVR5,#89H

LCALLZIFU3

,显示时程序

MOVR2,#87H

LCALLXIANSHI1

,显示日程序

MOVR2,#0CAH

LCALLXIANSHI1

,显示字符3程序

MOVR5,#0C9H

LCALLZIFU3

,显示月程序

MOVR2,#0C7H

LCALLXIANSHI1

AJMPZ

.....................................................................

,显示时间日月子程序

XIANSHI1:

MOVDPTR,#RCVDAT

MOVA,#00H

MOVCA,@A+DPTR

MOVB,#10

DIVAB

ADDA,#30H

MOVP0,R2

LCALLENABLE

MOVP0,A

SETBRS

CLRRE

CLRE

LCALLDELAY

SETBE

MOVA,B

ADDA,#30H

MOVP0,A

MOVP0,A

SETBRS

CLRRE

CLRE

LCALLDELAY

SETBE

INCRCVDAT

RET

,字符3的子程序

ZIFU3:MOVP0,R5,第一行起始字符地址

LCALLENABLE

MOVA,#":"

MOVP0,A

SETBRS,写数据时序

CLRRE

CLRE

LCALLDELAY

SETBE

,1602子程序

ENABLE:CLRRS,写指令子程序

CLRRE

CLRE

LCALLDELAY

SETBE

RET

DISP:MOVR1,#5,准备显示一行5个字符

LOOP:MOVA,#00H,将ACC清零

MOVCA,@A+DPTR,查表取得要显示的数据

LCALLDISP1,写入一个数据

INCDPTR,数据表指针加1,准备取下一个数据

DJNZR1,LOOP,一行没有显示完就继续

RET

DISP1:MOVP0,A,写1字节数据到显示端口

SETBRS,写数据时序

CLRRE

CLRE

LCALLDELAY

SETBE

RET

,初始化1602

DRIVE_1602:

MOVP0,#01H,写指令01H,清屏

LCALLENABLE

MOVP0,#38H,写指令38H,设定LCD16*2显示,5*7点阵,8位数据接口

LCALLENABLE

MOVP0,#0CH,写指令0FH,显示开,光标开,闪烁开

LCALLENABLE

MOVP0,#06H,写指令06H,光标输入方式增量位移

LCALLENABLE

RET

,显示提示字符串

XIANSHI_ZIFU:

MOVP0,#80H,第一行起始字符地址

LCALLENABLE

MOVDPTR,#TABLE1,第一行显示字符表头地址

LCALLDISP,显示第一行数据

MOVP0,#0C0H,第二行起始字符地址

LCALLENABLE

MOVDPTR,#TABLE2,第二行显示字符表头地址

LCALLDISP,显示第二行数据

RET

DELAY:MOVR7,#5,延时子程序

D1:MOVR6,#2

D2:DJNZR6,D2

DJNZR7,D1

RET

...........................................................................

,设置1302子程序

,禁止充电操作

NO_CHONGDIAN:MOVCOMMAND,#90H,命令字90H

MOVBYTECNT,#1,单字节传送

MOVR0,#XMTDAT,数据地址覆给R0

MOVXMTDAT,#00H,内容为0

ACALLSEND_BYTE,调用写入数据子程序

RET

,写保护寄存器操作

WRITE_ENABLE:MOVCOMMAND,#8EH,写命令字节位8E

MOVBYTECNT,#1,单字节传送模式

MOVR0,#XMTDAT,数据地址覆给R0

MOVXMTDAT,#00H,数据内容位0(写入允许)

ACALLSEND_BYTE,调用写入数据子程序

RET,返回调用本子程序

,时钟停止位操作把秒寄存器第7位设置位0时,起始时钟开始

KAISHI:MOVCOMMAND,#80H,写命令字节位80

MOVBYTECNT,#1,单字节传送模式

MOVR0,#XMTDAT,数据地址覆给R0

MOVXMTDAT,#00H,芯片允许工作(数据位0)

ACALLSEND_BYTE,调用写入数据子程序

RET

,禁止写保护寄存器操作

WRITE_NOABLE:MOVCOMMAND,#8EH,写命令字节位8E

MOVBYTECNT,#1,单字节传送模式

MOVR0,#XMTDAT,数据地址覆给R0

MOVXMTDAT,#80H,数据内容位0(写入允许)

ACALLSEND_BYTE,调用写入数据子程序

RET,返回调用本子程序

,多字节传送方式

,向DS1302中写入2007年,2月3日,星期六,13时,59分,50秒

WRITE_MOREBYTE:MOVCOMMAND,#0BEH,命令字位BE

MOVBYTECNT,#8,多字节写入

MOVXMTDAT,#00,秒

MOVXMTDAT+1,#59,分

MOVXMTDAT+2,#13,时

MOVXMTDAT+3,#03,月

MOVXMTDAT+5,#06,星期

MOVXMTDAT+6,#07,年

MOVXMTDAT+7,#00,

ACALLSEND_BYTE,调用写入数据子程序

RET

,读出多字节方式

READ_MOREBYTE:MOVCOMMAND,#0BFH,命令字节BF

MOVBYTECNT,#8,多字节读出

MOVR1,#RCVDAT,数据地址覆给R1

ACALLRECEIVE_BYTE,调用读出数据子程序

RET

,发送数据程序

,名称:SEND_BYTE

,描述:发送(BYTECNT)个字节给控制器DS1302

,所发送数据的字节数在BYTECNT中,发送的数据在XMTDAT缓冲区

SEND_BYTE:CLRRST,复位引脚位低电平,所有数据传送终止

NOP

CLRSCLK,清时钟总线

NOP

SETBRST,复位引脚位高电平,逻辑控制有效

NOP

MOVA,COMMAND,准备发送命令字节

MOVBITCNT,#08H,传送位数为8

S_BYTE0:RRCA,将最低位传送给进位位

MOVIO_DATA,C,位传送至数据总线

NOP

SETBSCLK,时钟上升沿,发送数据有效

NOP

CLRSCLK,清时钟总线

DJNZBITCNT,S_BYTE0,位传送未完毕则继续

NOP

S_BYTE1:MOVA,@R0,发送数据,过程与传送命令相同

MOVBITCNT,#08H,

S_BYTE2:RRCA

MOVIO_DATA,C

NOP

SETBSCLK

NOP

CLRSCLK

DJNZBITCNT,S_BYTE2

INCR0,发送数据的内存地址加1

DJNZBYTECNT,S_BYTE1,字节传送未完毕则继续

NOP

CLRRST,逻辑操作完毕,清RST

RET

,接受数据程序

,名称:RECEIVE_BYTE

,描述:接受(BYTECNT)个字节从控制器DS1302

学年文参考属性评定
有关论文范文主题研究: 系统结构相关论文范文 大学生适用: 函授论文、专升本论文
相关参考文献下载数量: 39 写作解决问题: 写作资料
毕业论文开题报告: 论文任务书、论文设计 职称论文适用: 期刊目录、高级职称
所属大学生专业类别: 写作资料 论文题目推荐度: 最新题目

,所发送数据的字节数在BYTECNT中,发送的数据在XMTDAT缓冲区

RECEIVE_BYTE:CLRRST,复位引脚为低电平,所有数据传送终止

NOP

CLRSCLK,清时钟总线

NOP

SETBRST,复位引脚为高电平,逻辑控制有效

MOVA,COMMAND,准备发送命令字节

MOVBITCNT,#08H,传送位数为8

R_BYTE0:RRCA,将最低位传送给进位位C

MOVIO_DATA,C,位传送至数据总线

NOP

SETBSCLK,时钟上升沿,发送数据有效

NOP

CLRSCLK,清时钟总线

DJNZBITCNT,R_BYTE0,位传送未完毕则继续

NOP

R_BYTE1:CLRA,准备接受数据:清类加器

CLRC,清进位位C

MOVBITCNT,#08H,接受位数为8

R_BYTE2:NOP

MOVC,IO_DATA,数据总线上的数据传送给C

RRCA,从最低位接受数据

SETBSCLK,时钟总线置高

NOP

CLRSCLK,时钟下降沿接受数据有效

DJNZBITCNT,R_BYTE2,位接受未完毕则继续

MOV@R1,A,接受到的完整数据字节放入接受缓冲区

INCR1,接受内存地址加1

DJNZBYTECNT,R_BYTE1,字节接受未完毕则继续

NOP

CLRRST,逻辑操作完毕,清RST

RET

,-------------------------------------------

TABLE1:DB"TIME:"

TABLE2:DB"DATE:"

TABLE3:DB":"

END

单片机最小系统设计200508059010李振东

2016-2016学年课程设计论文

2

3

2016-2016学年第二学期课程设计论文