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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机最小系统概况Word文档格式.docx

1、 关键字:单片机 最小系统 矩阵键盘 Protues keilAbstractMCU minimum system, regardless of the singlechip novice staff or staff development ,who can use minimum system program for industrial control,has very important sense. MCU minimum system board in the MCU develop market and college students electronic design is

2、very popular. The curriculum design, including STC89S52MCU minimum system ( including a reset and clock circuit and power supply system ),4 x4 matrix keyboard, the independent 6 LED digital tube display circuit and a DS18B20 temperature sensor. Using circuit design software schematic design, using K

3、eil software and Protues software simulation, we consolidate the MCU application, analog circuit, digital circuit course and learn all kinds of engineering software use. Key Words:MCU minimum system matrix keyboard Keil Protues1.任务要求及说明(1)键盘一个4X4的矩阵键盘,其中,10个按键是09数字键;另外6个是功能键,用于功能选择和控制,如“数据输入”、“数据显示”

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

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

6、据的显示格式是:最左边是序号,然后是空格,之后是要显示的数据,从右到左最多4位十进制数。或者,自己设计数据的显示方式。(4)数据通信将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。当通过功能选择键选择“串行通信”后,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。(5)利用仿真软件完成系统仿真工作(6)在单片机最小系统硬件上实现任务3中规定的功能2.硬件电路原理与设计2.1硬件电路原理2.1.1最小系统单片机最小系统包括振荡器电路,复位电路,单片机EA端接高电平(Vcc),P0口需要接上拉电阻

7、(10K)。振荡器电路选用12MHz晶振,两个30pf电容,振荡器电路接单片机XTAL1和XTAL2引脚。单片机最小系统原理图如下。图1 单片机最小系统1、MCU控制器简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,2个16 位定时器/计数器,一个6向量2级中断

8、结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.复位电路单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电

9、复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由按键复位和上电复位两部分组成。上电复位 STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。按键复位按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。电路图

10、如图2所示 图2 按键复位电路3.振荡电路单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些

11、通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。其电路原理图如3所示。图3 晶体振荡电路2.2数码管显示电路LED数码管显示是利用半导体发光制成条形的发光二极管,封装在一起组成数字或其他符号形状。数码管根据公共端不同,分为共阴极和共阳极两种形式。根据设计需要,本次选用共阴

12、极数码管。由于一个数码管不能实现多位数显示,同时从节省I/O端口考虑,结合数电知识,利用两片74HC573扩展单片机的IO口,两片74HC573的输出分别接6位7段共阴数码管的段选端和公共端。74HC573是8数据锁存器。主要用于数码管、按键等等的控制,其输出受输出允许端OE和锁存允许端LE的控制,当LE为高时锁存器输出为高阻态,当OE为低,LE也为低时,输入端的信号输出到输出端。 图4 数码管显示电路图2.3串口通信电路串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪

13、器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据

14、。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。单片机使用的是TTL电平,而计算机使用的是RS-232电平,要实现把电脑中的程序能下载到单片机上,就需要实现RS-232电平与TTL电平之间的转换。实现这一功能的芯片有很多,本次课设所使用的芯片为MAX232及电容元件构成RS232电平与TTL电平转换的串行口电路。MAX232是电平转换芯片。1970年,美国电气学会规定“RS232”串口通信协议。规定逻辑“1”,-5 -15V;逻辑“0”,+5 +15V 。噪声容限为2V。要实现利用串口与单片机进行通信,就要进行电平转换,把标准转化成单片机可以识别的。M

15、AX220MAX249都是电平转换芯片,本次设计中就使用MAX232。其电路原理图如图5所示。图5 串口电路图2.4矩阵键盘电路矩阵键盘检测的原理和方法:矩阵键盘每个按键两端都与单片机I/O口相连,因此在检测时需人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列全为高电平(此时确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这是有确定了行数),则便可以确认当前被按下的键是哪一列哪一行,用同样方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完所有的按键,当有键按下时便可判断出按下的是哪一个键。其工作原理是从0列开始顺序行扫描即

16、该行输出为0。每扫描一行读入列线数据从0开始列检查找该行输出为0的列若无则顺序扫描下一行并检查其各列若找到某列线为0则该列与检查行交叉的按键为被按下的键。从0行0列开始顺序将按键编号就可以按扫描的值得到按键的值。本设计使用的是4个独立按键其功能设置为时间的显示、时间的设置、温度的显示和数字频率的显示。此外还需要消除按键在闭合或断开时的抖动。消抖的方法可采用消抖电路(RS触发器时锁电路硬件消除抖动),也可采用延时方式软件消除抖动(延时后再重读,以跳过抖动期),本设计采用软件消抖方式。本设计中主要使用了独立键盘,故电路图中简要的画出了4*4的矩阵键盘,其电路原理图如图6所示 图6 矩阵键盘原理图3

17、 软件设计3.1软件介绍3.1.1程序编写软件Keil Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。本次设计编程主要使用Keil软件进行编程。3.1.2仿真软件ProteusProtues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还

18、能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,在编译方面,它也支持IAR、Keil和MPLAB等多种编译。本次设计采用的是Proteus进行仿真。3.2软件设计本次设计的要求是完成键盘扫描、单片机控制数码管动态显示数据、串口通信等功

19、能,且有具有功能选择键。选择数据输入时,可以输入序号,再输入相应的不超过四位的数据,再选择数据显示功能,按下相应的序号按键就能显示你所输入的数据。串口通信时进行键盘扫描,当相应的按键被按下时,在主系统和辅系统的六位数码管上同步依次显示按键值,且后键入的数字在左端,之前键入的数字移向下一个数码管。同时还设置了清零功能键,当该按键被按下时,所有的数码管全部熄灭。故设计思想为首先进行各模块的程序编写,使其个模块的程序能够单独运行成功。之后将各模块设计成子函数,在主函数中进行调用,当功能键被按下时,执行相应的子程序。3.2.1 数码管显示设计该程序分为键盘扫描和数码管显示两部分,其程序流程图如7所示:

20、 否 是图7 数据输入流程图3.2.2串行通信接收程序由于要实现两个单片机之间的通信,在接收单片机上要写与发送程序相对应的接收程 序,两者应设定相同的波特率。对应的接收程序流程图如图8所示。图8 接收程序流程图4.仿真与调试4.1数据输入与显示仿真结果 (a)(b)图9 仿真电路总图4.2数字移位和串口仿真结果(a)图10 数字移位与串口仿真图5.小结与体会 本次实习是对所学的单片机知识的一次综合运用,本次设计要求完成键盘扫描显示,数据输入与数据显示,串口通信等内容。首先,要求能够熟练的运用Protues进行单片机的仿真,由于以前没用过这个软件,仿真一开始就成了难题,这对于没怎么用过这个软件的

21、我来说是一大挑战。不过,通过一两天的摸索,总算是把它的一些基本操作弄清楚了,最终也成功绘制出具有基本扩展电路的单片机系统。接下来是在Keil上进行程序的编写, 但是又由于对单片机知识没有很好的掌握,所以程序的编写变成了整个实习的难处。不断的查找资料,和同学讨论最总才写出了正确的程序,实现了要求的功能。 在本次实习中学到了很多,熟悉了Protues软件的使用,程序的编写也让我对单片机的认识又加深了一步。通过本次实习让我对以前所学知识有了一个更深刻的认识,学会了将所学的知识运用到实际中去,同时也让我意识到了理论与实际的差距,在实习中遇到了各种各样的问题,往往看是简单的一件事到实际去做的时候才发现有

22、好多的东西没考虑过。由于实验中没能实现串行通信的功能,让我认识到自己知识的薄弱,让我认识到自己还有很多不足,在以后的学习中,更加努力学习,弥补不足,让自己的编程能力有所提高。6.参考文献1 谢自美. 电子线路设计实验测试(第三版).武汉:华中科技大学出版社2 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,20083 刘教瑜. 单片机原理及应用.武汉理工大学出版社,20114 张东亮. 单片机原理与应用.人民邮电出版社,20095 郭天祥. 51单片机C语言教程.电子工业出版社C语言源程序发送机主程序:#include /此文件中定义了51的一些特殊功能寄存器#define KE

23、Y_PORT P1 /键盘硬件接口#define DISPLAY_PORT1 P0 /数码管硬件接口1#define DISPLAY_PORT2 P2 /数码管硬件接口2unsigned char code table1=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/从左到右的数码管 0 1 2 3 4 5 unsigned char code table2=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09unsigned char key;unsigned char key_temp6;unsigned char co

24、unt=0;unsigned char fun3_flag=0;long num10;/用来装载输入的数据void delayms(unsigned int xms);void init_usart(void);void delay(unsigned char x);void keyscan(void);unsigned char keydown(void);void fun3_display(void);void send_data(void);unsigned char menu_select(void); void display(unsigned char data_order,int

25、 num);void display_data(void);void input_data(void);void main(void) unsigned char menu; init_usart(); while(1) menu=menu_select();/选择功能 switch(menu) case 10: input_data(); break; case 11: display_data(); case 12: fun3_flag=0; while(fun3_flag!=2) if(fun3_flag=1) fun3_display(); send_data(); default:/

26、*发送数据*/void send_data(void) if(keydown() SBUF=key;/SUBF接受/发送缓冲器 while(TI=0);/当发送标志位为0,即未完成发送,则一直等待,直到发送完成 TI=0; /发送完成之后,将发送中断标志TI置0 if(key=13) fun3_flag=2; else fun3_flag=1; if(key0;i-) for(j=110;jj-);void init_usart(void) SCON =0x50; /REN=1允许串行接受状态,串口工作模式2 TMOD|=0x20; /定时器工作方式2 PCON|=0x80; /波特率提高一倍

27、 /TH1=0xFD; /baud*2 /* reload value 19200、数据位8、停止位1。效验位无(11.0592) TH1=0xF3; / /baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M) TL1=0xF3; TR1=1; /开启定时器1 ES=1; /开串口中断 EA=1; /开总中断 /IE=0x0; SBUF=16;/告诉从机准备接受了/* 延时子程序*/void delay(unsigned char x) unsigned char j; while(x-)!=0) for(j=0;j125;j+) ;/*键扫描子程序*/ void keyscan(void) unsigned char temp; temp=KEY_PORT; /读P1口 temp=temp&0x0F; temp=(temp|0xF0); if(temp=1) key=0; else if(temp=2) key=1; else if(temp=4) key=2; else if(temp=8) key=3; key=16; KEY_PORT=0xF0; /高四位输入 delay(1); /

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1