单片机最小系统protues程序实现_第1页
单片机最小系统protues程序实现_第2页
单片机最小系统protues程序实现_第3页
单片机最小系统protues程序实现_第4页
单片机最小系统protues程序实现_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录摘 要IAbstrctII1设计任务及要求12整机概述33单片机最小系统基本原理43.1 STC89C52介绍43.2 复位电路63.3晶振电路63.4 单片机最小系统74扩展电路基本原理94.1数码管显示电路94.2矩阵键盘电路104.3串口通信电路11串口通信11串行通信控制寄存器12串行口的工作方式135整机电路设计图166软件设计176.1程序编写软件Keil176.2仿真软件Proteus176.3 软件设计详情176.3.1 键盘扫描17串行通信接收程序187 仿真结果207.1数据输入207.2串行串口通信218 实物展示229心得体会23参考文献25附录:元件清单26附录

2、:总程序设计27摘 要单片微型计算机简称单片机,又称为微型控制器,是微型计算机的一个重要分支。随着电子技术的发展,大规模及超大规模集成电路和制造工艺的进一步提高,单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,广泛应用于控制系统、数据采集系统、智能化仪器表等领域。单片机最小系统电路板在单片机开发市场和大学生电子设计方面十分流行。 本次课程设计包括STC89S52单片机最小系统、4×4矩阵键盘、独立6个8段LED数码管显示电路以及串口通信。其中单片机最小系统包括单片机、晶振电路、复位电路和供电系统。经过系统的分析设计后,利用Keil软件编程以及Proteus软件仿真,巩固单片

3、机应用、模拟电路、数字电路课程及学会各种工程软件的使用。仿真成功后开始实物的安装和调试,实现实习要求的功能。关键词:单片机 数码管显示 矩阵键盘 AbstrctAs the single chip computer, also known as micro controller, is an important branch of microcomputer. With the development of electronic technology, further improve the large-scale and ultra large scale integrated circui

4、t and manufacturing technology, single chip with a series of advantages of high reliability, high performance, low voltage, low power consumption, is widely applied in the control system, data acquisition system, intelligent instrument etc. MCU minimum system circuit board is very popular in the SCM

5、 development market and Undergraduate Electronic design. The curriculum design includes STC89S52 minimum system microcontroller, 4 * 4 matrix keyboard, the independent 6 LED 8 segment digital tube display circuit and the serial communication. The smallest single-chip system consists of single chip m

6、icrocomputer, crystal circuit, reset circuit and power supply system. Through the analysis and design the system, using Keil software programming and Proteus software simulation, the use of the consolidation of SCM application, analog circuit, digital circuit course and learn all kinds of Engineerin

7、g software. After the success of simulation to begin the installation and debugging of real, practice the requirements of function.Keywords: Single chip digital tube display matrix keyboard 1设计任务及要求1、完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试(1)键盘一个4X4的矩阵键盘,其中,10个按键是09数字键;另外6个是功能键,用于功能选择和控制,如“数据输入”、“数据显示”、“串行通信”

8、功能选择键,以及“回车”、“清除”、控制键。(2)显示电路由6个7段LED数码管组成的显示电路。(3)串口串行通信利用51的串口实现串行通信接口电路。2、完成ISP下载电路的设计、焊接3、完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能(1)功能选择通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容;可选择的功能包括:数据输入;数据显示;串口通信(2)数据输入通过功能选择键选择“数据输入”后,可分次输入10个4位十进制数据,并将输入的数据保存在内部RAM中。数据输入要求:第一步输入序号09,表明输入的是第几个4位十进制数据;第二步按下回车键,完成序号

9、输入;第三步输入最多4位的十进制数据;第四步按下回车键,完成数据输入;重复第一步,开始新数据的输入;输入数据的显示格式是:最左边是序号,然后是空格,之后是从右到左的最多4位十进制数;若在输入过程中(第一步或第三步)出现错误,按“清除”键,重新从第一步开始输入数据。或者,自己设计10个十进制数的输入及显示方式。(3)数据显示通过功能选择键选择“数据显示”后,可显示之前输入的10个4位十进制数据中的任一个,要求:第一步输入序号09,表明显示的是第几个4位十进制数据;第二步显示相应的数据;重复第一步、第二步,显示其他的数据;数据的显示格式是:最左边是序号,然后是空格,之后是要显示的数据,从右到左最多

10、4位十进制数。或者,自己设计数据的显示方式。(4)数据通信将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。当通过功能选择键选择“串行通信”后,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。4、利用仿真软件完成系统仿真工作5、在单片机最小系统硬件上实现任务3中规定的功能2整机概述单片机最小系统,是指用0最小的元件组成的单片机可以工作的系统,如图2.1所示。对于51系列单片机来,最小系统的必备条件是需要ROM存储程序,需要RAM保存中间数据,需要时钟、电源和复位。由于51单片机片内有RAM和RO

11、M,只需要外接晶振电路、复位电路即可构成单片机的最小系统电路。单片机接口电路主要用来连接计算机和其他外部设备。本次设计主要完成的扩展电路包括键盘电路、数码管显示、串行通信三大模块。其原理框图如图2.1所示:STC89C52数码管显示矩阵键盘数据通信晶振电路复位电路 图2.1总原理框图3单片机最小系统基本原理最小系统的必备条件是需要ROM存储程序,需要RAM保存中间数据,需要时钟、电源和复位。由于51单片机片内有RAM和ROM,只需要外接晶振电路、复位电路即可构成单片机的最小系统电路。3.1 STC89C52介绍STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在

12、系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU

13、停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频35MHz,6T/12T可选。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。STC89C52引脚如下图3.1所示。其各引脚功能为:P0口:P0口是一组8位漏极开路型双向IO口,也即地址数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“l”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分

14、时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉 图 3.1 STC89C52引脚图低时会输出一个电流(IIL)。P2口:P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“l”,通过内部的上拉电阻把端口拉 到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引

15、脚被外部信号拉低时会输出一个电流(IIL)。P3口:P3口是一组带有内部上拉电阻的8位双向IO口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的l6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN:程序储存允许(PSEN)输出是

16、外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。EA:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2 复位电路单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。对于单片机,要实现复位,必须使复位引脚RST

17、保持至少两个机器周期的高电平。一般复位有两种方法,如图3.2所示。 (a)上电复位电路 (b)开关复位电路图3.2 复位电路上电复位:加电瞬间电容充电,RST出现高电平。开关复位电路:在上电自动复位电路上增加了人工复位。在以上电路中,通电瞬间,由于RC的充电过程,在RST端出现一定脉冲宽度的正脉冲,只要该正脉冲持续保持10ms以上,就能使单片机自动复位,在6MHz的时钟时,通常CR取22F,R1取200,R2取1k,这时能可靠地上电复位和手动复位。3.3晶振电路单片机系统里都有晶振在单片机系统里晶振作用非常大,全称叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率。单片机晶振提供的时钟

18、频率越高,那么单片机运行速度就越快。单片机一切指令的执行都建立在单片机晶振提供的时钟频率。 单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振而通过电子调整频率的方法保持同步。 51单片机的时钟电路有两种方式:内部震荡方式和外部震荡方式,如图3.3所示。图 3.3 晶振电路内部震荡方式:51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。单片机内的放大器与外部连接的晶振和微调电容一起构成了稳定的自激振荡器,从而产生震荡脉冲,输入单片机的内部时钟电路。晶振的频率决定单

19、片机的时钟频率。通常晶振的时钟频率范围为1.212MHz,电容为微调电容,可起频率稳定、微调作用,一般取值530pF。外部震荡方式:不借助于单片机芯片内部的反相放大器,此时XTAL1引脚接地。通常为了各单片机之间时钟信号同步,引入唯一的外部脉冲信号作为各单片机的震荡脉冲。3.4 单片机最小系统将上述各部分组合,可以得到51单片机的最小系统,如图3.4所示。图 3.4 51单片机的最小系统 4扩展电路基本原理4.1数码管显示电路常用的七段数字显示器发光器件有两种:发光二极管和液晶显示器,本次设计使用前者。其分段布置和段组合图如图3.4所示。图4.1 发光二级管七段数字显示器分段布置及段组合图发光

20、二极管构成的七段显示器又分为两种,共阴极和共阳极电路,共阴极电路中,七个发光二极管的阴极连在一起接低电平,为使某一段发光,就将相应二极管阳极接高电平。如图3.5左图所示。共阳极显示器驱动相反,如图3.5右图所示。图 4.2 二极管显示器等效电路7 段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为 510mA;正向电压随发光材料不同表现为 1.82.5V 不等。 7段数码管的显示方法可分为静态显示与动态显示,本设计只用到动态显示,故只介绍动态显示。所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点

21、亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。 动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU 必须每隔一段时间执行一次显示子程序,这占用了 CPU 的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。综合以上考虑,本设计用共阴数码管做动态显示。用锁存器74HC573扩展P0口,其连接电路图如图4.3所示。图 4.3 数码管显示电

22、路4.2矩阵键盘电路在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键),如图4.4所示。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。下面介绍一种按键被按下的识别方法行扫描法。首先将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键

23、位于低电平线与4根行线相交叉的4个按键之中。若所有列均为高电平,则键盘中无键按下。然后判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。该系统采用4*4矩阵键盘,但是由于只用到部分按键,因此要将按键从矩阵键盘中分离出来,实现独立按键的功能。其连接图如图4.4所示。图 4.4 矩阵键盘电路4.3串口通信电路串口通信串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。串行

24、通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。51 单片机内部有一个全双工串行接口。一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信控制寄存器SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。串行口控制寄存器SCON(见表1)。表1 串行

25、口控制寄存器SCON表中各位(从左至右为从高位到低位)含义如下。SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。表2 串行口工作方式控制位其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。SM2 :多机通信控制位。 该仅用于方式2 和方式3 的多机通信。其中发送机SM2 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SB

26、UF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。在多机通信中它代表传输的地址或数据,TB8=0 为数据,TB8=1 时为地址。RB8 :在方式2、3 中,RB8 是接收机接收到的第9 位数据,该数据正好来自发送机的TB8,从而识别接收到的数据特征。TI :串行口发送中断请求标志。当CPU 发送完一串行数据后,此时SBUF 寄存器为空,硬件使TI 置1,请求中断。CPU 响应中断后,由软件对TI 清零。RI :串行口接收中断请求标

27、志。当串行口接收完一帧串行数据时,此时SBUF 寄存器为满,硬件使RI 置1,请求中断。CPU 响应中断后,用软件对RI 清零。电源控制寄存器PCON(见表3) 。表3 PCON寄存器表中各位(从左至右为从高位到低位)含义如下。SMOD :波特率加倍位。SMOD=1,当串行口工作于方式1、2、3 时,波特率加倍。SMOD=0,波特率不变。串行口的工作方式 1、方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

28、2、方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。

29、3、方式2和方式3方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚 。方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。 4、波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的

30、来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12 (公式1)方式2的波特率 =(2SMOD/64)* fosc (公式2)方式1的波特率 =(2SMOD/32)*(T1溢出率) (公式3)方式3的波特率 =(2SMOD/32)*(T1溢出率) (公式4)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。T1 溢出率 = fosc /12×256 (TH1) (公式5)在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。

31、所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表4所示。本实习所用晶振为11.0592MHz,选用定时器1为波特率发生器工作于方式2,串口通信方式采用方式1,所以定时器1的初值为TH1=0XFD,TL1=0XFD。表4 常用波特率与定时器1的参数关系表MAX232是电平转换芯片。1970年美国电气学会规定“RS232”串口通信协议。规定逻辑“1”-5 -15V逻辑“0”5 15V 。噪声容限为2V。要实现利用串口与单片机进行通信就要进行电平转换把标准转化成单片机可以识别的。MAX220MAX249都是电平转换芯片,在单片机最小系统中使用MAX232。MAX232芯片可以完成

32、TTL电平到EIA电平双向转换其内部具有电压提升电路,并有两个接收器和发送器,其引脚和应用电路如图4.5所示。图4.5MAX232引脚和应用电路其中第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从11引脚(T1

33、IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚(R2OUT)输出。第三部分是供电。15脚GND、16脚VCC(+5v)。串口通信连接图如图4.6所示:图 4.6 串口通信电路图5整机电路设计图图5.1 总设计图6软件设计6.1程序编写软件Keil Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性

34、上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。本次设计编程主要使用Keil软件进行编程。6.2仿真软件ProteusProtues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA

35、工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,在编译方面,它也支持IAR、Keil和MPLAB等多种编译。本次设计采用的是Proteus进行仿真。 6.3 软件设计详情6.3.1 键盘扫描该程序分为键盘扫描和数码管显示两部分,其程序流程图如下:本程序设计键盘扫描及数字显示两部分,程序流程图如图6.1所示开始键盘扫描NYN是否有键按下是否是切换键数字显示返回模式选择Y图6.1数据输入流程图串行通信接收程序由于要实现两个单片机之间的通信,在

36、接收单片机上要写与发送程序相对应的接收程序,两者应设定相同的波特率。对应的接收程序流程图如图6.2所示。RI=1接收数据清RI全部数据完全接收完结束T1初始化,启动T1工作设定串行通信方式并设定允许接收图6.2 接收程序流程图7 仿真结果7.1数据输入 如7.1图所示为数据输入,第一步输入序号09,表明输入的是第几个4位十进制数据;第二步按下回车键,完成序号输入;第三步输入最多4位的十进制数据;第四步按下回车键,完成数据输入。图 7.1数据输入仿真结果7.2串行串口通信 如图7.3所示,将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。当通过功能选择键选择“串行通信”

37、后,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。图7.2 串行串口通信仿真结果8 实物展示焊接完成后实物如图8.1所示。 图 8.1 实物展示9心得体会通过这次课程设计,我加深了理论知识的学习。这次的设计电路我用到了51单片机、MAX232是电平转换芯片、74HC573八进制锁存器,通过自己分析和设计更好地运用了它们,体会到了万变不离其宗掌握基本功能开动脑筋就可以解决很多问题,比如可以利用不同的接法设计出各种各样不同的电路出来。在分析比较设计电路的环节中,通过查阅资料也知道了它的很多种典型的电路。这些让我体会很多:一

38、方面,理论知识是实际运用的坚强后盾,只有牢固的掌握理论知识才能更好的将其运用于实践中;另一方面,动手实践能力我们也不能忽略掉,学好理论知识是为了更好的将其运用到实践中去,我们应当在实践中检验自己的理论知识,加深我们的理解,发现我们的不足与缺点,并且在今后的学习中努力弥补自己在动手方面的不足,把自己的优点最大化缺点最小化,将优点传承,把缺点改掉。 在课设整个过程完成过程中我自己也学到了一些方法,Keil uV2、PROTEUS、stc-isp等软件的运用也更加熟练甚至包括Word的使用更加灵活,方便以后的学习和仿真。这种从实践中积累实际的经验,使自己考虑问题更周到,更全面。该次课程设计是一次难得

39、的锻炼机会,让我们能够充分利用所学过的理论知识还有自己的思维能力来掌握一些简单的实际问题的方法。另外还提高了我们查找资料获取有用信息的能力,以及分析处理电路,设计电路的能力。平时在学习理论知识,很少有机会能够培养我们理论联系实际的意识,也很少想到我所学致何以用,这样体会不到用途的没有方向与目标的学习枯燥而缺乏激情。这次的课程设计让我切身体会到自己的付出终会有地方可以运用,这种开动自己脑筋甚至苦思冥想而能够深刻体会问题运行机理后思维的清晰让人兴奋,所有的熬夜,忘食在自己体会到这种愉悦后都有了奋不顾身的意义,这样饱和的生命力,才是年轻的我们哪怕身处浮躁也该享有该保持的。参考文献1 汪德彪. MCS

40、-51单片机原理及接口技术M. 北京电子工业出版社.2 张毅刚.单片机原理及应用.北京:高等教育出版社,20053 胡文,钟秉翔. 单片机应用技术实训教程M. 重庆大学出版社. 20054 谢自美.电子线路设计·实验·测试(第三版).武汉:华中科技大学出版社5 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,20086 刘教瑜. 单片机原理及应用.武汉理工大学出版社,2011附录:元件清单序号名称数量1铜板1块2单片机STC89C521片3晶振12MHz1个430PF瓷片电容2个510k/0.25W电阻2个610uF/16V电解电容1个72k/0.25W电阻1

41、个810k/9脚排阻1个95V/500mA直流电源1个1074HC5732片11MAX2321片12104电容5个13排针、按钮、LED、导线等若干14万能实验电路板1块15电路设计软件PROTEL1套16PC(带RS-232C口)1台17万用表1块18电烙铁1只附录:总程序设计#include"reg52.h"sbit wei = P27;sbit duan = P26;void delay(unsigned char s);void key_scan(void);void key_down(void);void input(void);void screen_con(i

42、nt smode);unsigned char int_on = 0; /用于刚进入通信模式时的初始化 只有在通信模式下需要打开中断1为中断已开化unsigned char temp; /读按键用的测试变量 unsigned char key;/按键序号 unsigned char MODE = 3; /模式选择,0为输入模式,1为显示模式,2为串口通信模式 unsigned char FUNC = 0;/功能选择,1为回车,2为清除 unsigned char reg104; /输入内容存放的数组 unsigned char dis_buf6;/显示缓存 unsigned char inpu

43、tmode;/通过回车键来判断输入模式,0为输入序号,1为输入4位十进制数据 unsigned char group,datpos;/分别存储数据的组数和十进制数据位数 Unsignedchar LedNum=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ;void delay(unsigned char s) /延时函数 int i,j;for(j=s;j>=0;j-)for(i=125;i>0;i-);void screen_con(int smode) /对数码管操作的函数 1为清空显示0号位光标 2为移位 int p;

44、if(smode=1)for(p=0;p<6;p+) dis_bufp = 0x00; /清屏 dis_buf0 =0x08;/带输入光标 else if(smode=2)for(p=5;p>0;p-)/显示缓存移位 dis_bufp = dis_bufp-1;void key_scan(void)/按键扫描函数 P1=0xF0; /高四位输入 行为高电平 列为低电平 temp=P1; /读P1口 temp=temp&0xF0; /屏蔽低四位temp=(temp>>4)|0xF0);switch(temp)case 1:key = 3;break; / p1.4

45、 被拉低 case 2:key = 2; break; / p1.5被拉低 case 4:key = 1; break; /p1.6 被拉低 case 8:key = 0;break; / p1.7 被拉低 default:key = 16;temp = 0;P1=0x0F; /低四位输入 列为高电平 行为低电平 temp=P1; /读P1口 temp=temp&0x0F;temp=(temp|0xF0);switch(temp)case 1:break; / p1.0 被拉低 case 2: key += 4; break; / p1.1 被拉低 case 4: key += 8;

46、break; / p1.2 被拉低 case 8: key += 12; break; / p1.3 被拉低 default: key = 16;switch(key)case 10: /模式选择为输入 MODE = 0;Input mode=0; /从数据序号开始输入 key=16; /键盘序号置空 FUNC=0; /功能键置空 screen_con(1);break; case 11: /模式选择为显示 MODE = 1;key=16; /键盘序号置空 screen_con(1);break;case 12: MODE = 2;break;case 13: FUNC = 1;break;/

47、按键功能选择 case 14: FUNC = 2;break;case 15: MODE = 3;break; /模式3为空余模式,可自定义或欢迎界面 default: datpos+; /存数位数加一 if(datpos=4) datpos = 0; P1 = 0xf0;while(P1!=0xf0); /保证按键弹起后再跳出程序 void key_down(void) P1=0xF0;if(P1!=0xF0) /判断按键是否按下 如果按钮按下 会拉低P1其中的一个端口 key_scan(); /调用按键扫描程序 void input(void) if(FUNC=1) /回车时 输入模式切换

48、 if(inputmode=1)screen_con(1);/清屏并在0号位输入光标else dis_buf2 = 0x08;/在2号位输入光标 inputmode=1-inputmode;FUNC = 0; /切换完成 功能变量置空 if(FUNC=2) inputmode = 0; /重新从数据组数开始输入 reggroup0 = 0; /清空已输入的错误数据 reggroup1 = 0;reggroup2 = 0;reggroup3 = 0;screen_con(1);FUNC = 0; if(key<10) if(inputmode=0) group = key;/序号确认 di

49、s_buf0 = LedNumgroup;datpos = -1;/数据键入位置归零 else if(inputmode=1) /对应组数据输入 dis_bufdatpos+2 = LedNumkey; reggroupdatpos = key; delay(1); void main()unsigned char LedSele=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char roll;SCON =0x50; /REN=1允许串行接受状态,串口工作模式1 TMOD|=0x20; /定时器工作方式2 PCON|=0x80; /波特率提高一倍 TH1=0xF3; /波特率4800、数据位8、停止位1、效验位无 (12M)TL1=0xF3;while(1) key_down(); /调用按键判断检测程序if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论