系列单片机教学实验板硬件设计毕业设计内容摘要:

5V之间为逻辑1电平,表示传号状态;输出电压相对于信号地线在+5V~+15V之间为逻辑0电平,表示空号状态。 在接收端,逻辑1电平为3V~15V,逻辑0电平为+3V~+15V,即允许发送端到接收端有2V的电压降。 这样的RS232电平和TTL逻辑电路(单片机)产生的电平是不一样的,因此,PC机与单片机AT89C52之间必须经过一定的电路转换逻辑电平。 图311给出了实验板上的RS232串行接口逻辑电平转换电路。 该电路由分立元件构成,它等同MAX202的电平转换功能。 一个完整的RS232接口有22根线,采用25根插针的标准连接器,各插针定义见表16。 在使用PC机和单片机进行直接通信时,一股选用PC机端的9针串口,因此RS232只需要少数几根线即可正常工作。 TXD/RXD是一对数据线,TXD为发送数据输出,RXD为接收数据输入,当PC机和单片机以全双工方式直接通信时,双方的这两根线应交叉连接。 所有信号均通过信号地构成回路,双方的信号地相连。 有以上这三条线(TXD、RXD和信号地),单片机和PC机就可以分别对异步通信电路芯片编程,设置成不需要任何联络或握手信号、直接进行数据交换的方式。 RS232三线式直接数据通信接口如表17所示。 图311 RS232串行逻辑电平转换电路 Fig. 311 RS232 serial logic level transformation the circuitForm16 Definition of RS232 signal表16 RS232信号的定义引脚序号说明引脚序号说明1保护地13辅信道 允许发送(CTS)2发送数据14辅信道 发送数据3接收数据15发送信号无定义DCE为源4请求发送(RTS)16辅信道 接收数据5允许发送(CTS)17接收信号无定时6数传机准备好18未定义7信号地19请求发送(RTS)8接收线信号检测20数据终端准备好9保留供数传机测试21信号质量检测10保留供数传机测试22振铃指示11未定义23数据信号速率选择12接收线信号检测24接收数据无定时Form 17 RS232 data munication interface 表17 RS232三线式直接数据通信接口说明引脚序号引脚序号 保护地(接外壳) 1 1发送数据TXD 2 2接收数据RXD 3 3信号地 7 7请求发送RST 4 4消除发送CTS 5 5载波检测DCD 8 8数据装置准备好DTR 6 6数据终端准备好DSR 20 20振铃指示RI 22 22表17中,通常左边为连接PC机的25针插头时,右边连接单片机实验板只需2根信号线(另加1根地线)。 信号线为双方的3端交叉连接,而其它7端对应连接,即完成了PC机与单片机仿真实验板的连接。 仿真实验板配套的RS232通讯线就是采用上述连接方式制成的。 2软件设计 在微机应用系统的设计和开发中,主要工作集中在接口设计和程序涉及两个方面,而汇编语言程序设计是开发单片机应用系统软件的关键。 在这里着重介绍程序设计的基本方法,并举例一些典型的汇编语言程序实例。 汇编由语言程序设计步骤用微机完成某项任务时,往往应根据问题的要求对硬件,软件综合考虑。 在总体硬件确定情况下,程序设计一般可按如下步骤进行。 (1) 分析问题分析问题就是要熟悉和明确问题的要求,明确已知条件以及对运算与控制的要求,准确地规定要完成的任务,建立数学模型。 (2) 确定算法根据实际问题的要求和指令系统的特点,选择解决问题的方法。 算法是进行程序设计的依据,它决定了程序的正确性和程序的质量。 (3) 设计程序流程图程序流程图是程序结构的一种图解表示法,它直观,清晰地体现了程序设计思想,是程序设计一种常用工具。 设计程序流程图,是把算法转化成程序的准备阶段。 (4) 分配内存单元分配内存工作单元,确定程序和数据区的起始地址。 (5) 编写汇编语言源程序根据流程图和指令系统编写源程序。 编写员程序时,力求简单明了,力求简单明了层次清晰。 (6)调试程序源程序编制好以后,必须上机调试。 先将源程序通过汇编生成目标程序,并消除愈发失误;然后再使用系统进行联调修改,直至预定一定的要求。 软件实验51系列单片机具有丰富功能的指令系统,它集中反映了51系列单片机是一个面向功能很强的单片微型机。 掌握指令系统,是熟悉和应用单片机的软件基础。 但是,要真正掌握指令系统,一方面必须与单片机的硬件结构结合起来学习;另一方面要结合实际多做程序分析和进行简单的程序设计及调试,才能收到应有的效果。 通过如下软件试验,我们能快速地掌握单片机工作原理和熟悉汇编语言的指令系统。 说明:XCODE外部程序存储器 XDATA外部数据存储器 ICODE片内ROM 片内RAM (00H~7FH) IDATA片内RAM (80H~FFH) SFR特殊寄存器(80H~FFH)为了锻炼学生的编程能力,同类型的编程只给出一个例程,思考部分要求学生课后自己完成。 软件实验 存储器清零一、实验要求:指定存储器中某块的起始地址和长度,要求能将其内容清零。 二、实验目的:三、实验说明通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编成,调试方法,如何将存储器块内容固定值。 例程:清除片内数据存储器(DATA+IDATA)清除片内数据存储器(DATA+IDATA),即片内从00H至FFH所有单元。 ORG 8000H。 实验板开始执行的第一条指令所处的地址LJMP MAIN。 跳转到主程序ORG 8030H。 主程序开始的地址;避开中断入口地址MAIN: MOV R0, 0FFH。 使R0指向IDATA中的最大的地址FFH MOV A, 0。 清除累加器CLR_RAM: MOV @R0, A。 清除DPTR所指向的IDATA单元DJNZ R0, CLR_RAM。 完成清除IDATAHALT: LJMP HALT。 完成清除IDATA,在此死循环,实际程序中应为后续操作。 =================== =======。 用以分隔程序,使程序清晰易懂END。 程序结束,编译程序不理会END以后的内容思考:如何编写清除外部数据存储器(XDATA)的程序说明:89C52内部有多个存储空间,每个存储空间都是具有连续的字节地址空间,其地址都是从0开始至最大存储范围的字节地址,就是说它们的地址是全部重叠的。 因为IDATA区的地址和SFR的地址是重叠,我们通过区分访问的存储区了解决地址重叠问题。 SFR只能通过直接寻址来访问,而IDATA区只能通过间接寻址来访问。 但是外部数据存储器(XDATA)就只能使用DPTR、R0或者R1间接寻址。 软件实验 BCD码转换及运算一、实验要求1. 将给定的一个二进制数,转换成十进制(BCD)码2. 将二个给定BCD码进行求和及相减二、实验目的1. 掌握简单的数据转换算法2. 基本了解数值的各种表达方法3. 掌握求和相减要注意的地方三、计算机中的数值有各种表达方式,这是计算机的基础。 掌握各种数值之间的转换是一种基本功。 例程:二进制转换成十进制(BCD码)将二进制数(F3H)转换成十进制数存放在30H,31H,32HORG 0000H LJMP MAINORG 0030HMAIN: MOV R0, 30H ;给出百位存放地址 MOV A, 0F3H ;给出要转换的二进制数 MOV B, 64H ;将数除100,得到百位数 DIV AB MOV @R0, A ;存百位数 INC R0 ;给出十位数的存放地址 MOV A, B ;将余数除10,得到十位数 MOV B, 0AH DIV AB MOV @R0, A ;存放十位数 INC R0 ;得个位数地址 MOV @R0, B ;存放个位数。 =============================。 用以分隔程序,使程序清晰易懂 END。 程序结束,编译程序不理会END以后的内容 思考:1. BCD码求和有两个4位BCD码,分别放在片内RAM的50H,51H单元和60H,61H单元中。 求两数之和并存放在40H,41H单元中。 2. 压缩的BCD码相减被减数和减数为压缩BCD码,分别存于R3和R4中,其差值也存进R3中。 3. 如果是压缩BCD码相加的程序应该如何编程。 说明:十位数相加时用ADDC指令,是考虑当个位数相加的结果超过9时,将产生进位,在对十位数相加时应该把它加进去。 DA A指令支队累加器A起作用,它不能单独使用并且在假发指令ADD和ADDC之后,也不适用于减法指令。 为了能借用DA A指令,可采用把减法变成补码相加的办法,用9AH减去减数,得到10为模的减数的补码。 软件实验二进制转换成ASCII一、实验要求 给出一个十六进制的数,将其转换成ASCII值。 二、实验目的1. 了解十六进制值和ASCII值得区别2. 了解如何将十六进制转换成ASCII值3. 了解如何查表进行数值转换及快速计算三、实验说明 此实验让我们了解数值的十六进制和ASCII的区别,利用查表可能快速进行数值转换。 进一步了解数值的各种表达方法。 例程:由十六进制数09的ASCII码为30H39H和AF的ASCII码为41H46H可知,如果十六进制数小于0AH,则像应该数的ASCII码为A+30H;如果该数等于或大于0AH,则相应的ASCII码为A+37H。 ORG 0030HMOV R0, 3BH ;给指定单元赋值 MOV A, R0 ;取十六进制数高四位ANL A, 0F0HSWAP A ACALL HEXASC ;调用转换子程序 MOV 30H, A ;将高四位运算结果放到30H单元MOV A, R0 ;取十六进制数低四位ANL A, 0FHACALL HEXASC ;调用转换子程序MOV 31H, A ;把低四位运算结果放到31H单元HEXASC: CJNE A,0AH,L1 ;子程序L1: JNC L2 ;A=0AH,转L2ADD A, 30H ;A0AH,则A+30HRETL2: ADD A,37H ;A=0AH,则A+37HRET。 =================================。 用以分隔程序,使程序清晰易懂END。 程序结束,编译程序不理会END以后的内容 软件实验 内存块移动一、实验要求将指定源地址和长度的存储块移动到指定目标位置二、实验目的 1. 了解内存的移动方法 2. 加深对存储器读写的认识三、实验说明块移动是计算机常用操作之一,用地址加一方法移动块。 例程:外部数据块搬移(≤256字节)把处于程序存储器(XCODE)中从Data_TAB开始的256个字节数据传送到外部数据存储器从B000H开始的256个单元中去。 ORG 8000H。 实验板开始执行的第一条指令所处的地址 LJMP MAIN。 跳转到主程序 ORG 8030H。 主程序开始的地址;避开中断入口地址MAIN: MOV DPTR, Data_TAB。 使DPTR指向XCODE中的Data_TAB开始的256个字节数据MOV P2, 0B0H。 使P2口指向XDATA中的目的地址高8位 MOV R0, 00H。 使R0口指向XDATA中的目的地址低8位起始地址 MOVEDATA: M。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。