单片机课程设计
- 格式:doc
- 大小:3.36 MB
- 文档页数:13
实训报告实训题目:报刊分发自动显示系统学院:计算机科学与技术学院专业:计算机科学与技术专业班级:132班学号:1308060067 学生姓名:杨琛指导教师:姚凯学目录1 实验目的·····················································错误!未定义书签。
2 实验要求·····················································错误!未定义书签。
3 实验原理 (2)4 实验环境设备 (8)5 实验步骤 (9)6 实验内容 (9)7 实验数据及分析结果 ..................................错误!未定义书签。
8实验总结 (11)一、实验目的1.通过设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;2.了解终端在整个通信系统中的作用。
3. 掌握终端模块的使用方法。
4. 进一步熟悉关于74LS138和74LS164的实现功能。
5.掌握电路图中的设计原理。
二、实验要求1. 完成相应的编程代码2.给句电路图完成相应的焊接,实现相应的功能。
3.能够根据电路图的设计,了解每个组件的功能,实现他们之间的通信。
4.设计合适的测试用例,对得到的运行结果要有分析5. 撰写课程设计报告。
三、实验原理1、下位机(自动显示部分)单元控制器的研制◆单元控制器功能▼对上位机下发的数据进行转发到所管辖的16个分发格口(1)总体结构框图如下:(2)并行接口扩展串行口UART(3)单元控制器原理图RS485通讯电路主从片通讯控制:主片要发送数据时,在P3.7脚产生下降沿,使从片产生中断,从片在中断服务程序中从P1口读得数据。
主片驱动器◆单元控制器原理图——拨码电路拨码开关作用:根据拨码地址识别PC机发出的广播帧74LS165作用:并行输入串行输出,节约微控制器I/O74LS245作用:由于每个单元控制器要通过UART串行口发送数据给16个显示终端模块,为保证从片的串行口有足够的功率而增加了74LS245,将其分成4组,每组连接4个负载,以保证信号可靠传输。
◆485通讯接口电路原理图R3电阻其作用:防止终端信号反射引起干扰信号。
8050作用:保证单元控制器上电状态为接收状态,避免多个单元控制器同时上电时处于发送状态,导致485总线上同时有多个发送而产生总线冲突。
2、下位机(自动显示部分)显示终端模块的研制 ◆ 显示终端模块功能• 能够识别单元控制器下发的数据帧 • 对接收的数据进行数码管显示 • 能够区分左屏数据与右屏数据 ◆ 显示终端模块结构图◆ 显示终端模块原理图◆数码管显示电路原理图(1)●三极管8550的作用是为数码管提供显示所需电流● 8个三极管的基极分别接38译码器的输出端,用作位选择◆数码管显示电路原理图(2)◆数码管显示电路原理图(2)●串行输入并行输出74LS164的作用是:1)节约微控制器芯片I/O引脚;2)输出数据具有锁存功能。
进行移位时应使38译码器处于无效状态,禁止数码管显示,移位结束后再使选中的数码管工作。
3、设计实物硬件图 ◆ 单元控制器实物图使用RJ45插座的作用是为了现场安装方便。
◆显示终端模块实物图驱动芯片从MCU485芯片4、通信协议的制定(1)PC计算机与单元控制器的通信协议◆单元控制器接收地址字节定义D7 D6 D5 D4 D3 D2 D1 D0D7、D6:地址标识,11表示该字节为地址码。
D5~D1:单元控制器的地址编码。
Y:Y左右屏标识符,0为左屏,1为右屏。
1 1 X X X X X Y(X标识0或1,Y左右屏标识符,0为左屏,1为右屏)(2)单元控制器中主片与从片通信协议(3)单元控制器与显示终端模块的通信协议◆格口显示模块接收地址字节定义D7 D6 D5 D4 D3 D2 D1 D0D7、D6、D5:地址标识,11表示该字节为地址码。
D3~D0显示终端模块地址编码,即16个格口的地址编码Y:Y左右屏标识符,0为左屏,1为右屏。
四、实验环境及设备◆硬件:数码管、三极管、排阻、电阻、74LS138、74LS164、拨码开关、MCU、RJ45插座、电容。
◆软件:keil uV3五、实验步骤1、硬件设计◆根据题目要求画出电路图,确定题目所需元件◆做该实验所需元件有MCU、排阻、拨码开关、38译码器、74LS164、三极管、数码管、2、电路板设计◆根据画出的电路图,确定题目所需元件及各个元件在电路板上的位置3、电路焊接◆根据电路板设计焊接各个元件4、软件编程◆根据电路图写出源程序5、电路调试◆调试程序,并连接到电路板,执行观察数码管的显示6、整理写实验报告六、实验内容本项目设计是一个基于网络的业务操作应用系统,通过邮政内部的综合网,完成数据的传输与交互。
报刊综合分发平台是通过报刊统版系统预留的分发数据接口连接相关的PC终端获取报刊分发处理数据,系统由PC终端、多个集中器数据转发模块和多个前台显示终端模块三个部分组成。
设计一个项目,可以根据不同的定发刊报做合理的设计,根据设计的硬件电路编写相应的代码实现显示的功能。
这里是在一端数码管显示1、2、3、4七、实验数据及分析结果1、根据电路图设计程序代码◆实现程序功能:在一端数码管上依次从左到右,显示1 2 3 4◆程序代码如下:;P1.3 P1.4 P1.5 P1.6 P3.7接拨码开关的1 2 3 4 5脚ORG 0000HL1: MOV R0,#00HMAIN: CLR P3.2 ;74ls138的E3位置低电平MOV A,#00H ;让第0个(最左边)数码管点亮MOV R1,A ;R1中存放着正在显示的数码管序号DISP:CLR P3.2 ;74ls138的E3位置低电平MOV P1,R1 ;通过P1口将数据(控制亮的数码管)传入74ls138的A0-A3口;查表找出数字对应的数码管段码MOV DPTR,#TAB ;DPTR指向显示数据对应数码的表,从数字0开始顺序增加MOV A ,R1 ;将R1中的数据加1放入到A中INC AMOVC A,@A+DPTR ;A中的数字对应的数码(8段字型码);将要显示的数字的8位数码元写入164MOV R2,#04H ;R2控制数据的8个位全部写入到74LS164的Q0-Q7WRITE8BIT: CLR CCLR P3.4 ;74s164的CLOCK端置低,禁止数据写入RLC A ;将A中的数据移入进位位C中MOV P1.7,C ;将C中的数据写入74LS164中,P1.7连74LS164的A B SETB P3.4 ;74ls164的CLOCK端置高,允许数据写入,即写入了P1.7(C)上电平表示的一个位DJNZ R2,WRITE8BIT ;8位数据全部写入到74LS164中;点亮数码管SETB P3.2 ;74ls138的E3位置高电平,点亮数码管;递增R1,并判断返回,作相应循环显示INC R1CJNE R1,#08H,DISP ;R1不等于8则返回DISP显示该数字ACALL MAIN ;R1为8则八个数据都已显示,返回MAIN循环显示(重新开始)TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳极END2、调试运行得到的结果数码管的一端从左到右假设编号为A0、A1、A2、A3把编写的程序载入调试后得到数码管的显示结果是1、2、3、4循环的显示八、实验总结通过这次课程设计,让我们提高了用汇编语言来编写单片机程序的能力,对单片机的多机通信等内容有了深刻的认识,更加强了我们的动手能力,将学到的理论性的东西用到实践中去,提高了我们学习的积极性。
通过这次课程设计,我觉得掌握其整体思路是比较重要的,为了摸清整个程序的流程,我曾试过一步步调试跟着走探索其中的奥妙,结果虽然并未能百分百明白每一条语句,但大致结构我还是了解了。
我想这为我后面的课程设计也打下了坚实的基础。
这次课程设计,我们犯了许多错误,不过错误与收获是并存的,我们在解决这各种各样的错误的同时,对软件、对利用汇编语言来进行单片机编程有了深入的了解,同时也增加了我的经验,拓宽了思路,同时也提高了我们利用所学知道解决问题的能力。
通过这次的课程设计,我们改正了以前很多的毛病,培养了良好的编程习惯。
我感觉最重要的是给了我变通,学习的能力。
毫无疑问的一点事,这两周收获不小,无疑这将给我们未来的工作带来莫大的好处。
在设计单元控制器时,为了降低成本,我们没有采用通常带二路UART的微控制器,而是设计了采用两片各带一个串口微控制器实现二路UART功能,一片微控制器通过RS485总线接收上位机发送的数据包,将数据包解析分组,另一片微控制器将分组后的显示数据前加上地址重新封装并通过UART总线转发到前台显示终端模块。
在数据通讯的过程中, 为了提高数据显示的实时性和准确性, 制定了简单有效的通讯协议, 经过实际使用检验证明该通讯协议达到预定效果。
这次课程设计很重要的一点就是强调团对合作精神,虽然我们这一小团对只有三个人,但是在进行焊接电路板和进行单片机编程时都要求大家紧密的合作,而且我们这次合作虽然其间有些小小争论,但是都化解过来了,这无疑会给我们以后的学习,生活和工作都有很大的帮助。