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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片微机原理与应用Word格式.docx

1、通常情况下,都称为定时器。定时器的四种工作方式是由软件来控制的,如下表所示,定时器工作方式寄存器TMOD中的M0、M1两为决定了它的工作方式。表4-1 定时器的四种工作方式M1 M0工作方式说 明0 0方式013位计数器0 1方式116位计数器1 0方式2自动再装入8位计数器1 1方式3定时器0:分为两个8位计数器定时器1:对外部停止计数4、使用单片机的定时器T0产生100ms的定时信号,使实验仪主板上的流水灯(8只红色发光二极管)依次发光,并循环。设此时系统的时钟频率为6MHz,再根据它来决定定时器T0的初始值。由于时钟频率为6MHZ,所以,机器周期为2s。初始值计算有以下公式的出,t=(2

2、16-T0初值)机器周期,就可以计算出初始值,公式是依据定时器的工作原理的出的,51单片机的定时器是加法计数的,即由有一个数开始,每一个机器周期加一,直至溢出。5、实验主板上的8只红色发光二极管的亮/灭是由8位锁存器74HC573进行锁存。电路如下图。图4-6 流水灯电路由图可以看出,锁存器是挂在系统总线上的,有外部地址进行统一编址,是外部地址64K地址空间的一部分。74HC573的锁存信号有译码电路产生,又因为573在控制端C引脚为高电平时,数据通道打开,从高变到低时,数据被锁存,所以,C端门控信号是由74HC138译码器的输出端(译码地址:2000H)在加一个反相器得到的。程序设计:由系统

3、总线扩展I/O口,实现流水灯的程序设计。示例1:用软件延时实现流水灯的延时。ORG 0000HAJMP MAINORG 0030HMAIN: MOV DPTR,#2000HMOV R0,#0FEHMOV A,R0MOVX DPTR,AACALL DELAY ;延时MOV R3,#07H ;设置左移7次LOOP: RL A ;左移一位DJNZ R3,LOOP ;R3是否为0,不为0转LOOP继续执行AJMP MAIN ;返回主程循环执DELAY: MOV R7,#255 ;延时子程序D1: MOV R6,#255D2: DJNZ R6,D2DJNZ R7,D1RET ;子程序返回END ;程序结

4、束示例2:给出定时器的中断服务程序,同学可以进行修改,形成由中断完成的流水灯程序设计。ORG0000HLJMPMAINORG000BHLJMPTIMEMOVTH0,#0D8HMOVTL0,#0A0HMOVTMOD,#01H;定时器工作方式1SETBET0;开定时中断SETBEA;开总中断SETBTR0;定时器开始计时中断服务程序:TIME:RETI三 实验步骤1、首先用软件延时的方法,实现流水灯实验;2、用定时器设计流水灯实验,让流水灯依次点亮或熄灭,并掌握外部扩展时地址的分配(扩展外部I/O,使用锁存器)。实验二 单片机集成开发环境应用1.熟悉单片机集成开发软件(Keil);2.掌握单片机实

5、验板的使用;3.掌握单片机P1口使用;图1-1 启动时的屏幕1、建立第一个项目1)建立第一个项目点击Project 菜单,选择弹出的下拉式菜单中的New Project,如图12。接着弹出一个标准Windows 文件对话窗口,如图13,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows 文件规则的文件名都行。“保存”后的文件扩展名为uv2,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。图1-2 New P

6、roject菜单图1-3 文件窗口2)选择所要的单片机选择所要的单片机,这里我们选择常用的Ateml 公司的AT89C51。此时屏幕如图14 所示。AT89C51 有什么功能、特点呢?请看图中右边有简单的介绍,是英文的。稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。图1-4 选取芯片3)在项目中创建新的程序文件或加入已经存在的程序文件首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图15 中

7、1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单 或快捷键CTRL+N 来实现。图1-5 新建文件4)如果没有已经存在的程序文件,新建、保存点击图15 中的3 保存新建的程序,也可以用菜单 或快捷键CTRL+S进行保存。因是新文件所以保存时会弹出类似图13 的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL 的C语法检查生效了。如图16 鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们选“ Add Group SourceG

8、roup 1”弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。图1-6 把文件加入到项目文件组中5)编译调试C 程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX 文件。要生成用于芯片烧写的HEX 文件,应进行如下设置:在Creat HEX File前打选择。图中1、2、3都是编译按钮,不同是1 是用于编译单个文件。2是编译当前

9、项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5是菜单中的它们,我个人就不习惯用它了。嘿嘿,这个项目只有一个文件,您按1.2.3中的一个都可以编译。在4 中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。6 是有一个小放大镜的按钮,这就是开启关闭调试模式的按钮,它也存在于菜单DebugStartStop Debug Session,快捷键为Ctrl+F5。图1-7 编译程序6)调试 、生成HEX文

10、件进入调试模式,软件窗口样式大致如图18 所示。图中1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。图1-8 调试运行程序2、下载到单片机的内部运行1)用KEIL生成的HEX文件步骤:1点击Project 菜单,选择弹出的下拉式菜单中的New Project。 2选择所要的单片机,如选择常用的Ateml 公司的AT89C51。3在项目中创建新的程序文件或加入已经存在的程序文件。4如果没有已经存在的程序文件,新建、保存。5编译 6调试 、生成HEX文件2)下载本实验板提供ISP方式的下载,将KEIL生成的HEX文件下

11、载到单片机的内部flash。连接计算机串口和单片机的串口下载。注意:单片机的P1.0 P1.6 P1.1不能被短接。3)ISP下载方法使用STC-ISP软件,操作方法见前面。ISP下载步骤:1选择器件2装载HEX文件3下载程序4)运行将KEIL生成的HEX文件下载到单片机的内部flash后,即可自动运行单片机的内部的程序。依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。仿真调试分为两种:软件仿真和硬件仿真,前者不使用仿真

12、器,后者使用硬件仿真器。本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash,重复此部分内容,直到熟练掌握开发环境的使用。四 实验程序1、汇编程序:ORG0000HSJMPSTARTORG0030H;()START:MOVP1,00000010B ;将P1.0及P1.1分别置低电平、高电平NOP;空指令,不执行任何操作NOPLJMPSTART;跳转到STAEND;2、C程序:附:关于此程序的C51实现#includestdio.hvoid main()while(1)P1 = 0x02;/置位P1.1,清零P1.0实验三 键盘输入实验一、键盘电路二、键盘译码地址

13、MCS-51单片机键盘部分,外接1片74LS273芯片作为扫描的输出接口,地址为:0C000H,输入接口在74HC244对应的引脚上, 地址为:0C000H。 键盘代码#include absacc.hintrins.h#define uchar unsigned charunsigned char code DIG_CODE19=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xc7,0x8c,;void Delay10ms(unsigned int c);unsig

14、ned char KeyValue;int d,e,f=1,g=-1,j,h,i,k=1,n,m;/检测键盘按键 void KeyDown(void)XBYTE0xC000=0X07;m=XBYTE0xC000;m=m&0x0f; if(m!=0x0f) if(m=0X0e)KeyValue=1;if(m=0X0d)KeyValue=5;if(m=0X0b) KeyValue=9;if(m=0X07)KeyValue=12; XBYTE0xC000=0X0b;=0x0f) if(m=0X0e)KeyValue=2;if(m=0X0d)KeyValue=6;if(m=0X0b) KeyValue

15、=0;if(m=0X07)KeyValue=13;XBYTE0xC000=0X0d;if(m=0X0e)KeyValue=3;if(m=0X0d)KeyValue=7;if(m=0X0b) KeyValue=10;if(m=0X07)KeyValue=14;XBYTE0xC000=0X0e;if(m=0X0e)KeyValue=4;if(m=0X0d)KeyValue=8;if(m=0X0b) KeyValue=11;if(m=0X07)KeyValue=15;while(n0;c-) for(b=38;bb-) for(a=130;aa-);/主函数main() XBYTE0xB000=DI

16、G_CODE16;XBYTE0xa000=DIG_CODE14;XBYTE0x9000=DIG_CODE17;XBYTE0x8000=DIG_CODE17; while(1) KeyDown();/一 按A显示A666 if(KeyValue=10) int w=0,x=0,y=0,z=0; XBYTE0xB000=DIG_CODE10; XBYTE0xa000=DIG_CODE6; XBYTE0x9000=DIG_CODE6; XBYTE0x8000=DIG_CODE6; Delay10ms(5); while(f0) if(KeyValue=11) f=-1; if(KeyValue=9)

17、 w=x;x=y;y=z; z=KeyValue; XBYTE0xB000=DIG_CODEw;XBYTE0xa000=DIG_CODEx;XBYTE0x9000=DIG_CODEy;XBYTE0x8000=DIG_CODEz; KeyValue=10; f+; Delay10ms(20);9) XBYTE0xB000=DIG_CODE18; XBYTE0xa000=DIG_CODE14; XBYTE0x9000=DIG_CODE17; XBYTE0x8000=DIG_CODE17;/二 按11显示P232 if(KeyValue=11) XBYTE0xa000=DIG_CODE2; XBYT

18、E0x9000=DIG_CODE3; XBYTE0x8000=DIG_CODE2; Delay10ms(100); XBYTE0xB000=0xbf; XBYTE0xa000=0xbf; XBYTE0x9000=0xbf; XBYTE0x8000=0xbf; /KeyValue=10; while(g g=6; XBYTE0xa000=DIG_CODEx; XBYTE0x9000=DIG_CODEy; XBYTE0x8000=DIG_CODEz; g-;XBYTE0xB000=DIG_CODE16;/三 按12显示232C if(KeyValue=12) XBYTE0xB000=DIG_COD

19、E2; XBYTE0xa000=DIG_CODE3; XBYTE0x9000=DIG_CODE2; XBYTE0x8000=DIG_CODE12;/1111FFFF循环功能 if(KeyValue=2) for(e=0;e=15;e+) XBYTE0xB000=DIG_CODEe; XBYTE0xa000=DIG_CODEe; XBYTE0x9000=DIG_CODEe; XBYTE0x8000=DIG_CODEe;Delay10ms(50);if(e=15) e=-1; if(KeyValue=15)e=10000;学生实验 心得通过这次单片机实习,我对单片机的认识加深了许多不只是让我对单片机的了解停留在书本上。培养了我的动手能力和创新能力,教会我把实际和书本结合起来,让我知道我可以克服很多困难去获得成功。实践是检验真理唯一的途径,这次试验让我更好的知道了这个道理。学生(签名):2017年 6月 30日指导教师评语成绩评定:指导教师(签名): 年 月 日

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

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