ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:725.41KB ,
资源ID:16567530      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16567530.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机可控单片机系统的应用设计.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

计算机可控单片机系统的应用设计.docx

1、计算机可控单片机系统的应用设计计算机可控单片机系统的应用设计摘要:本设计通过对AT89S52单片机所组的系统进行编程,可以由串行线在上位机(微机)中进行操作。本设计选择了单片机的8个端口作为模拟设备操纵对象,可以在微机用DOS命令进行8个端口小灯的亮灭控制。关键词:计算机 、单片机、汇编语言、The computer controllable monolithic integrated circuit system application designsAbstract: This design through carries on the programming to at89S52 mon

2、olithic integrated circuit groups system, may (microcomputer) carry on the operation by the serial line in on position machine.This design has chosen the monolithic integrated circuit . A port took the simulation equipment operation object, may order in the microcomputer with DOS to carry on 8 port

3、small lamps to extinguish the control brightly.Key word:Computation, monolithic integrated circuit, assembly language 1 系统设计微机与单片机系统的通信控制是单片机系统应用发展的最前端技术,也是单片机得以生存的主要原因,就此,我们提出两种方案:方案一:我们可以选用比较先进的控制编程用高级语言,比如:C语言、VB语言等进行控制界面的设计,用图示按键进行控制对象的操作。方案二:我们可以采用微机通信工具中的超级终端进行单片机通信,无需进行上位机的编程,用DOS命令即可实现实时控制单片

4、机系统。从一上两种方案中可以看出:第一种岁比较简单,但要求设计者需要有较强的高级语言编程能力,对一般的单片机学习者而言,一下子难以达到这个要求,决定采用具有在线编程功能的单片机AT89S52,使得本系统具有在线维护功能。图一:为计算机可控单片机系统电路的结构框图2 单元电路设计2.1 AT89S52单片机介绍211 AT89S52AT89S52是一个低功耗,40个脚,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51

5、指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。图二:AT89S52单片机212 AT89S52引脚功能介绍:(1) P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。,P0具有内部上拉电阻。(2) P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL电平。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器

6、/计数器2的触发输入(P1.1/T2EX),具体如下表所示。引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)(3) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。(4) P3口:P3口是一个具

7、有内部上拉电阻的8位双向I/O 口,p2输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。AT89S52(5) 引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)

8、P3.7 RD(外部数据存储器写选通)RST:复位输入213 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具

9、有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。2.2 外围电路设计221 电源电路设计这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2.2.2 负位电路设计上电复位采用电平方式开关复位。如图三所示。 上电复位用RC电路,电容用20F,电阻用10K。图三2.2.3 晶振电路设计单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19、20脚。只要买来晶振,电容,单片机的晶振频率应低于40MHZ,所以我们采用12MHZ,加两个104F电容连上就可以了,图四所示。图四2.2.4 P1口

10、发光管电路P1.0-P1.7(第18引脚)连接到8个470欧电阻驱动8个发光管。如图五图五225、单片机外围电路系统图:3、系统软件设计在AT89S52单片机应用系统中,应用程序装入0000h-ffffh地址处,在应用程序开发时,先在软件中编好所需要的程序,在利用RS-232 总线下载程序,然后可以利用计算机的超级终端对应用系统应用程序的写入及修改。本设计利用9个命令实现对单片机系统的实时控制。下面介绍应用程序中的主要控制程序。31主程序主程序主要是检查是否有上位机的命令,在主程序中可以加入单片机系统自身的控制程序,主程序流程图:图六32 初始化程序初始化程序主要负责程序上电后的设置工作,主要

11、功能是设置堆栈地址;串口通信为方式;开启 2作波特率发生器;开串口中断;向上位机发版本信息及提示符等,其流程图如下:图33 串口接收发送处理程序流程图:串口中断服务趁许负责接收和发送字符,在单片机接收上位机的命令时,需对退格键、回车键进行判断,进行响应的处理,当接收完毕后置接收成功的标志。串口中断接收程序流程图如下:图34、命令获取子程序命令获取子程序对接收到的字符进行比较、出错处理,并转入响应的命令功能执行程序,其流程图如下:图35、命令功能执行程序软件设计中设置了9个命令功能,在实际应用中可根据需要设立。9个命令功能是显示帮助信息功能、设置波特率功能、进入在线编程控制功能、对设备0开关功能

12、、对设备1开关功能、对设备2开关功能、对设备3开关功能、对设备4开关功能及对设备5开关功能、36、进入在线编程控制程序为了在应用系统工作时,能进入在线编程模式,以便对应用系统进行在线程序的修改或升级。其流程图如下:4、系统的访真、调试5、致谢感谢我的指导老师凌泽明老师,他严谨细致、一丝不苟的作风一直是我学习中的榜样;除此之外还要感谢我们以前的单片机任课老师罗德雄老师。是他们循循善诱的教导和不拘一格的思路各于我无尽的启迪。这篇设计报告中每次实验、每个细节、每个数据,都离不开他们细心的指导,而他们开朗的个性和宽容的态度,帮助我能够很快的融入我的毕业设计中去。感谢在我身边的其他老师和同学们,在我不懂

13、时,只要他们知道,一定是不厌其烦地指导。感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我最诚挚的谢意!参考文献1 武庆生.仇梅.单片机原理与应用.电子科技大学出版,1998,12 2 李朝青.单片机学习指导.北京航空航天工业出版社,2005,75953 朱定华.单片机原理与接口技术.电子工业出版社,2001,44 刘瑞新.单片机原理及应用教程.机械工业出版社,2003,75 刘华东.单片机原理与应用(第二版)M.电子工业出版

14、社,2006,6 李光飞.单片机课程设计实例指导.北京航空航天工业出版社,2004,1551797 李朝青.单片机原理及接口技术(修订版)M.北京:北京航空航天大学出版社,1998.8 阎 石. 数字电子技术基础(第四版)M.高等教育出版社,2000年5月第一版.9 胡汉才. 单片机原理及其接口技术M.清华大学出版社,2000年5月第一版.10 何立民. 单片机高级教程M.北京航空航天大学出版社,2000年5月第一版.11 陈汝全. 电子技术常用器件应用手册M.第二版,机械工业出版社,2002年5月第一版.12 李广弟.单片机基础M.北京:北京航空航天大学出版社,1992.13 罗亚非. 凌阳

15、16 位单片机应用基础M. 北京:北京航空航天大学出版社,2003附录附录一:微机可控单片机系统制作的成品示意图:附录二:单片机控制系统源程序清单;变量定义;常数定义 RXBUFFSTART EQU 040H ;接收缓冲区队列首地址(170字节) XBUFFSTART EQU 050H ;发送缓冲区队列首地址(170字节) RXBUFFND EQU 0F0H ;接收缓冲区队列末址 COMMANDLEN EQU 008H ;命令字符最大长度;编程延时 P15MS EQU 0C9H ;11.0592MHz 12.000MHz 14.318MHz P1US EQU 0FEH P50US EQU 0D

16、1H;控制键 BACKSPACE EQU 008H ;退后删除键;内部寄存器定义 T2CON EQU 0C8H ;T2控制寄存器 T2MOD EQU 0C9H TL2 EQU 0CCH ;T2计数积存器低字节 TH2 EQU 0CDH ;T2计数积存器高字节 TR2 EQU 0CAH ;T2启动位 RCAP2L EQU 0CAH ;T2计数重载寄存器底字节 RCAP2H EQU 0CBH ;T2计数重载寄存器高字节 CHPCON EQU 0BFH ;在系统变成控制寄存器 CHPENR EQU 0F6H ;编程状态下MTP ROM的控制字节寄存器;控制标志位定义 KEYFUNFLAG EQU 0

17、3H TXOKFLAG EQU 04H ;发送OK标记 RXCOMMFLAG EQU 05H COMMSPACEFLAG EQU 06H ;命令删除OK标记 RXCOMMOKFLAG EQU 07H;全局变量定义;串口 RXBUFFTAIL EQU 3BH ;接收缓冲区尾指针 RXBUFFHEAD EQU 3AH ;接收缓冲区头指针 RXBUFFLEN EQU 39H ;命令长度计数 BLKCHK EQU 35H; ORG 0000H LJMP START;中断向量入口 ORG 0003H ;中断入口表 RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH

18、RETI ORG 0023H LJMP INT_SIO ORG 002BH RETI ORG 0080H;初始化程序;START: MOV R0,#0F0H ;清 CLR A ;01到CLRAM:MOV R0,A ;F0 DJNZ R0,CLRAM ;RAM MOV P0,#0FFH ;置P0 MOV P1,#0FFH ;置P1 MOV P2,#0FFH ;置P2 MOV P3,#0FFH ;置P3 MOV DPL,#00H ;清DPTR MOV DPH,#00H MOV PSW,#00H ;设第一组寄存器 MOV SP,#0F1H ;设置堆栈指针 MOV SCON,#01010000B ;串

19、口工作方式1(8位UART)允许接收 MOV T2CON,#00110000B ;T2CON MOV A,#01H ;设置波特率0:38400 1:19200 LCALL INITBAUD ; 2:9600 3:4800 SETB ES ;允许串口中断 MOV IP,#00H ;低优先级 SETB TR2 ;启动定时计数器2 SETB REN ;启动串口接收中断 CLR TI ;清串口发送中断标志位 CLR RI ;清串口接收中断标志位 SETB EA ;开放所有中断 MOV RXBUFFHEAD,#RXBUFFSTART MOV RXBUFFTAIL,#RXBUFFSTART CLR RXC

20、OMMFLAG MOV DPTR,#LOGOTBL ;在终端上显示LOGO字符 LCALL DISPINFO MOV DPTR,#ROMMARKTBL ;在终端上显示LRM字符 LCALL DISPINFO;主程序;MAIN: LCALL GETCOMMAND NOP ;可加入其他操作程序 CPL P2.0MAINOUT:LJMP MAIN NOP NOP NOP LJMP START;主要处理程序;获取命令;GETCOMMAND: LCALL PUTCOMMSPACE ;刷新命令符 MOV A,RXBUFFTAIL XRL A,#RXBUFFSTART ; JZ GETCOMMOUT ;接收

21、缓冲区空不处理 JNB RXCOMMOKFLAG,GETCOMMOUT;命令接收不成功不处理 MOV A,RXBUFFLEN CLR C SUBB A,#COMMANDLEN JNC GETCOMMERROR ;命令字符超长出错 CLR A MOV R4,A ;清查表计数器 MOV R5,#RXBUFFSTART ;置接收缓冲区首地址 MOV DPTR,#COMMANDTBL ;置命令表首地址GETCOMMCOMP:MOV A,R4 MOVC A,A+DPTR ;查表 INC R4 MOV R6,A ;暂存到R6 MOV A,R4 JNZ GETCOMMOVER INC DPHGETCOMMO

22、VER:MOV A,R5 INC R5 MOV R0,A MOV A,R0 ;读接收缓冲区 MOV R7,A ;暂存到R7 MOV A,R6 XRL A,#0FFH JZ GETCOMMERROR ;是否出错 MOV A,R6 XRL A,#0AH JZ GETCOMMCOMP ;比较成功 MOV A,R7 XRL A,R6 JZ GETCOMMCOMP ;去下一个比较 MOV A,R6 ADD A,#20H ;小写处理 XRL A,R7 JZ GETCOMMCOMP ;去下一个比较 MOV R5,#RXBUFFSTART MOV A,R4 MOV B,#COMMANDLEN DIV AB M

23、OV B,#COMMANDLEN INC A MUL AB MOV R4,A LJMP GETCOMMCOMP;GETCOMMCOMPEND:CLR A ;初始化 MOV RXBUFFLEN,A MOV RXBUFFTAIL,#RXBUFFSTART CLR RXCOMMOKFLAG MOV A,R4 MOV B,#COMMANDLEN DIV AB ;调整地址 MOV B,A RL A ADD A,B MOV DPTR,#COMMFUNTBL JMP A+DPTRGETCOMMOUT: RET;GETCOMMERROR:MOV DPTR,#COMMERRORTBL ;显示 Bad comma

24、nd LCALL DISPINFO CLR A ;初始化 MOV RXBUFFLEN,A MOV RXBUFFTAIL,#RXBUFFSTART CLR RXCOMMOKFLAG LJMP DISPROM RET;COMMFUNTBL:LJMP HELPFUN LJMP DISPROM LJMP OP5FUN LJMP OP0FUN LJMP OP1FUN LJMP OP2FUN LJMP OP3FUN LJMP OP4FUN LJMP SETBFUN LJMP APROMFUN RET;命令解释器功能处理子程序;?HELP 显示帮助信息;HELPFUN: MOV DPTR,#HELPTBL

25、;显示帮助信息 LCALL DISPINFO LCALL INITCOMMAND LJMP DISPROM;OP5功能处理OP5FUN: CPL P2.6 LCALL INITCOMMAND LJMP DISPROM;OP0功能处理OP0FUN: CPL P2.1 LCALL INITCOMMAND LJMP DISPROM;SETB 功能处理SETBFUN: MOV DPTR,#SETBFUNTBL LCALL DISPINFO MOV DPTR,#INPUTTBL LCALL DISPINFOSETBLOOP:LCALL READWAIT MOV R0,#RXBUFFSTART MOV A

26、,R0 MOV R7,A DEC R7SETBLOOP1:INC R7 MOV RXBUFFTAIL,#RXBUFFSTART XRL A,R7 JNZ SETBLOOP1 ;是否有输入 MOV A,R0 SUBB A,#30H MOV B,A MOV A,B XRL A,#04H ;是否Exit JZ SETBERROR MOV A,B CLR C SUBB A,#05H ;大于5重输 JNC SETBRELOAD MOV A,B LCALL INITBAUD ;设置波特率SETBERROR:LCALL INITCOMMAND LJMP DISPROM;SETBRELOAD:MOV RXBU

27、FFTAIL,#RXBUFFSTART MOV DPTR,#SETERRORTBL LCALL DISPINFO LJMP SETBLOOP;APROM 功能处理;APROMFUN: MOV DPTR,#WARNINGTBL LCALL DISPINFO MOV DPTR,#INPUTTBL LCALL DISPINFORESETLOOP: MOV RXBUFFTAIL,#RXBUFFSTART LCALL READWAIT MOV R0,#RXBUFFSTART MOV R4,#59H ;是否Y LCALL COMPASC JZ RESETCAPS MOV R4,#4EH ;是否N LCAL

28、L COMPASC JNZ RESETERROR LCALL INITCOMMAND LJMP DISPROMRESETCAPS: LCALL PUTENTER ;显示回车 LCALL PUTENTER MOV CHPENR,#87H ;进入APROM修改程序状态 MOV CHPENR,#59H MOV CHPCON,#03H MOV TCON,#00H ;关T0,T1 MOV T2CON,#00H ;关T2 MOV IP,#00H ;同优先级 MOV IE,#82H ;允许T0中断,总中断开放 MOV TL0,#0FBH ;装初值,定时为5UF MOV TH0,#0FFH MOV TMOD,

29、#01H ;T0为16位定时器 MOV TCON,#10H ;开启T0 MOV PCON,#01H ;进入在线编程模式,等待唤醒后进入4K-LDROM程序 RETRESETERROR:MOV DPTR,#SETERRORTBL LCALL DISPINFO LJMP RESETLOOP;OP1功能处理;OP1FUN: CPL P2.2 LCALL INITCOMMAND LJMP DISPROM;OP2功能处理OP2FUN: CPL P2.3 LCALL INITCOMMAND LJMP DISPROM;OP3功能处理OP3FUN: CPL P2.4 LCALL INITCOMMAND LJM

30、P DISPROM;OP4功能处理OP4FUN: CPL P2.5 LCALL INITCOMMAND LJMP DISPROM;串口操作子程序;计算公式:(RCAP2H,RCAP2L)=65536-OscFreq/32*Baud;DEMO:;FREQUENCY:12MHz;BAUD RATE: 9600Baud;(RCAP2H,RCAP2L)=65536-12*1000000/3209600; =65479=FFD9H; DB 0F7H,0EFH,0DCH,0B8H,0FFH ;11.0592MHzBAUDTBL: DB 0F6H,0ECH,0D9H,0B2H,0FFH ;12.0000MHz; DB 0F4H,0E8H,0D1H,0A3H,0FFH ;14.3180MHz;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2