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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

9机电 单片机实验指导书.docx

1、9机电 单片机实验指导书单片机实验指导书实验一、模拟开关灯实验一、实验目的1、认识单片机芯片内部基本结构和功能;2、学习Keil和Proteus软件的基本使用方法; 3、了解了解单片机最小系统及单片机应用系统的设计过程。二、实验说明1、单片机应用系统基本过程1)启动Keil,创建一个项目文件*.UV2;2) 选择单片机的型号,如AT89C51;3)单击菜单“File”“New”命令,新建源程序文件,输入代码,保存为*.c;4)把源程序文件添加到项目中,在项目管理器中,在展开的“Source Group 1”上单击右键,选择“Add Files to Group Source Group 1”命

2、令,选择文件添加。5) 选中Target 1,鼠标右键菜单“Options for Target Target 1”命令,在“Output”选项卡中选中“Create HEX file”复选框;6)执行菜单“Project”“Rebuild all target files”命令,编译项目并生成*.hex文件;7)打开Proteus ISIS软件,建立硬件控制电路;8)用鼠标双击“ATC89C51”单片机弹出对话框,在“Program File”中载入编译好的“*.HEX”文件;9)在Proteus环境中启动调试程序,观察仿真结果。三、实验内容及步骤1、实验内容使用单片机监控一个按键开关,通过

3、一个发光二极管显示其工作状态。如果开关打开,LED灯熄灭;开关合上,LED灯亮2、硬件原理图3、软件设计#include /包含的头文件,对单片机内部特殊功能寄存器进行了符号定义sbit Led = P10; /定义位名称sbit Key = P17;void main( )P1=0xff; while(1) Led = Key; 画出程序流程图:四、思考题1、使用Keil和Proteus如何建立单片机开发系统,描述基本过程。2、单片机的最小系统包含哪些电路?实验二、流水灯实验一、实验目的1、学习单片机并行I/O端口的使用方法; 2、学习延时子程序的编写;3、学习Keil和Proteus软件的

4、基本使用方法。二、实验说明1、P1口为一组双向口,每位都可独立地定义为输入或输出线,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入(即:P1=0xff)。2、本实验中延时采用循环程序来实现, 入口参数控制延时时间长短。三、实验内容及步骤1、实验内容P1口做输出口,接八位逻辑电平显示,编写程序,使发光二极管循环点亮。通过一个按键开关控制显示顺序,如果开关打开,LED自上而下依次点亮;开关合上,LED从下向上依次点亮。2、硬件原理图3、软件设计1)、画出程序流程图 2)源程序#include#define uchar unsigned char /类型重定义#define uin

5、t unsigned intsbit Key = P00; /定义位名称void DelayMS(uint ms); /延时函数原型声明void main( ) uchar i,keyPre,shift; Key = 1; while(1) keyPre = Key; if(keyPre) shift=0x01; for(i=0;i8;i+) P1 = shift; DelayMS(200); shift=1; else shift=0x80; for(i=0;i=1; void DelayMS(uint ms) uchar i; while(ms-) for(i=0; i120; i+);四

6、、思考题1、MCS-51系列单片机的P0P3四个I/O端口在结构上有何异同?使用时应注意的事项?实验三、定时器实验一、实验目的1、学习单片机内部计数器的使用和编程方法;2、掌握中断处理程序的编写方法;3、学习Keil和Proteus软件的基本使用方法。二、实验说明1、采用定时器方式设计一交通灯控制系统,使道路状态切换时间更准确。正常情况下,90s后信号灯由“红灯”转“黄灯”,经过2s的过渡后“黄灯”转“绿灯”,另外设东西方向、南北方向紧急开关各一个,紧急开关闭合时,相应方向切换成“绿灯”,以方便特种车辆通过。另设置一个开关,在晚上由人工闭合,此时所有的灯都变成黄灯。2、系统的晶振是12MHZ,

7、定时器1工作于方式1,即16位定时器,定时器50000uS(50mS)中断一次,所以定时常数的设置可按以下方法计算:定时时间=(65536-定时常数)1uS=50000uS定时常数=15536,(0x3CB0)对50mS中断次数计数10次,就是0.5秒钟。定时器0工作于方式1,定时20ms,定时常数=45536,(0XB1E00)。三、实验内容及步骤1、硬件原理图2、软件设计1)、画出程序流程图 2)源程序#include #include unsigned char t0;void yellow(); /东西、南北方向同时打开黄灯 void yellowflash(); /东西、南北方向同时

8、打开黄灯,每隔0.5秒开始闪烁 void delay0_5s(); /延时0.5秒void delayxms(unsigned char t); /延时t*0.5秒/*函数名称:ex_intex0;函数功能:外部中断0服务子程序*/void ex_intex0(void) interrupt 0 EA=0; /关闭中断,不允许中断嵌套 while(P3&0x04)=0) /检测外部中断0是否持续有效 P1=0x1E; /东西方向绿灯亮、南北方向红灯亮,其它四个灯关闭。 EA=1; /打开中断 /*函数名称:ex_intex1;函数功能:外部中断1服务子程序*/void ex_intex1(vo

9、id) interrupt 2 EA=0; /关闭中断,不允许中断嵌套 while(P3&0x08)=0) /检测外部中断1是否持续有效 P1=0x33; /东西方向红灯亮、南北方向绿灯亮,其它四个灯关闭。 EA=1; /打开中断 /*函数名称:tm_timer0;函数功能:定时器0服务子程序*/void tm_timer0(void) interrupt 1 EA=0; /关闭中断,不允许中断嵌套 while(P3&0x40)=0) /检测P3.6开关是否闭合 yellow(); /东西、南北方向同时打开黄灯 TH0 =0xb1; /20ms定时初值重新装入 TL0 =0xe0 EA=1;

10、/打开中断 / 主程序void main()TMOD = 0x11; /T1工作方式1,T0工作方式0 EA=1;EX0=1;IT0=0; /打开外部中断0EX1=1;IT1=0; /打开外部中断1ET0=1; /打开定时器0中断 TH0 =0xb1; /20ms定时初值重新装入 TL0 =0xe0 TR0 = 1; /启动定时器0 while(1) /无限循环 P1=0x1e;/东西方向绿灯亮、南北方向红灯亮,其他四个灯关闭。 delayxms(180);/延时90秒 yellowflash(); /东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次 P1=0x33;/东西方向红灯亮、南北方向

11、绿灯亮,其他四个灯关闭。 delayxms(180);/延时90秒 yellowflash();/东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次 /*函数名称:yellow;功能:东西、南北方向同时打开黄灯*/void yellow() P1=0x2d; /两个黄灯同时打开/*函数名称:yellowflash;功能:东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次*/void yellowflash() unsigned char i; for(i=0;i2;i+) P1=0x2d;/两个黄灯同时打开 delay0_5s(); P1=0xff;/两个黄灯同时关闭 delay0_5s(); /

12、*函数名称:delay0_5s 函数功能:延时0.5s,用T1工作方式1定时50ms,再循环10次得到0.5s的延时时间*/void delay0_5s() for(t0=0;t010;t0+) TH1=0x3c; TL1=0xb0; TR1=1; while(!TF1); /TF1=1时50ms定时时间到 TF1=0; TR1=0; /*函数名称:delayxms ;函数功能:在函数delay0_5s的基础延时,即延时t*0.5秒 */void delayxms(unsigned char t) for(t0=0;t0t;t0+) delay0_5s();四、思考题1、如果更换不同频率的晶振

13、,会出现什么现象?如何调整程序?实验四、外部中断实验一、实验目的1、掌握外部中断技术的基本使用方法;2、掌握中断处理程序的编写方法;3、学习Keil和Proteus软件的基本使用方法。二、实验说明1、外部中断的初始化设置共有三项内容:中断总允许即EA=1;外部中断允许即EXi=1(i=0或1);中断方式设置,中断方式设置一般有两种方式:电平方式和脉冲方式。本实验选用脉冲方式,中断请求信号由引脚INT0(P3.2)引入。2、51系列用于中断的控制寄存器有四个:TCON 、IE 、SCON 及IP。3、中断过程分为三个阶段:中断请求、中断响应、中断服务。4、开关K0(中断请求信号)利用外部中断IN

14、T0接入。采用中断边沿触发方式,每中断一次,单片机对P1口完成一次读写操作。当P1.0P1.3任何一位输出0时,相应的发光二极管就会发光。当开关K0来回拨动一次时,将产生一个下降沿信号,通过INT0发出中断请求。三、实验内容及步骤1、硬件原理图2、软件设计1) 分别画出主程序和中断服务程序流程图 2) 源程序 #include sbit P1_0 = P10; sbit P1_1 = P11;sbit P1_2 = P12; sbit P1_3 = P13;sbit P1_4 = P14; sbit P1_5 = P15;sbit P1_6 = P16; sbit P1_7 = P17;/*函

15、数名称:ex_intex0;函数功能:外部中断0服务子程序*/ void ex_intex0(void) interrupt 0 P1_0=P1_4; P1_1=P1_5; P1_2=P1_6; P1_3=P1_7; / 主程序 void main() P1=0xff; /P1口四个按键位置1EX0=1; /开外部中断0 EA=1; /开中断总开关 IT0=1; /外部中断0电平触发 while(1) /等待中断 ; 四、思考题1、简述中断处理的一般过程。实验五、单片机之间的串行双机通信一、实验目的1、学习单片机串行口的工作原理;2、掌握串行通信的编程方法及波特率的设置;3、进一步学习定时器的

16、功能和编程。二、实验说明1、本实验采用两台AT89C51单片机U1和U2进行串行双机通信设计。U1作为发送机,U2作为接收机,两者的发送脚RXD和接收脚TXD交叉连接。U1通过串行口间接控制与U2的P1口相连的8个LED发光管亮灭。2、单片机间通信采用串行口方式1,对单片机U1编程时,需令SM0=0,SM1=1;对单片机U2编程时,除了令SM0=0,SM1=1,还需设置REN=1,使其允许接收。3、晶体振荡器频率为11.0592MHz,选择波特率为9600b/s,SMOD=0,定时器1工作方式2:TH1=TL1=FDH。三、实验内容及步骤1、硬件原理图2、软件设计1)、画出程序流程图 2)源程

17、序单片机U1的发送程序使用Keil软件建立“send”工程项目,建立源程序文件“send.c”,输入如下源程序:#include/流水灯控制码unsigned char Tab =0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F; /*函数名称:Send;函数功能:发送一个字节数据 */void Send(unsigned char dat) SBUF=dat; /将待发送数据写入发送缓冲器 while(TI=0) ; TI=0; /用软件将TI清零/*函数名称:delay;函数功能:延时约150ms*/void delay(void) unsigned char

18、 m,n; for(m=0;m200;m+) for(n=0;n250;n+) ;/ 主程序void main(void) unsigned char I; TMOD=0x20; /TMOD=0010 0000B,定时器T1工作在方式2SCON=0x40; /SCON=0100 0000B,串口工作在方式1 PCON=0x00; /PCON=0000 0000B,波特率9600b/s TH1=0xfd; /给定时器T1高8位赋初值 TL1=0xfd; /给定时器T1低8位赋初值 TR1=1; /启动定时器T1 while(1) for(i=0;i8;i+) /共8位流水灯控制码 Send(Ta

19、bi); /发送数据i delay(); /每发送一次数据,延时150ms再发送 单片机U2的接收程序使用Keil软件建立“receive”工程项目,建立源程序文件“receive.c”,输入如下源程序:#include /*函数名称:Receive;函数功能:接收串行口数据*/unsigned char Receive(void) unsigned char dat; while(RI=0) ; /空操作 RI=0; /用软件将RI清零,为接收下一帧数据做准备 dat=SBUF; /将接收缓冲器的数据存于dat return dat;/ 主程序void main(void) TMOD=0x2

20、0; /TMOD=0010 0000B,定时器T1工作在方式2 SCON=0x50; /SCON=0101 0000B,串口工作在方式1,允许接收(REN=1)PCON=0x00; /PCON=0000 0000B,波特率9600b/s TH1=0xfd; /给定时器T1高8位赋初值 TL1=0xfd; /给定时器T1低8位赋初值 TR1=1; /启动定时器T1 REN=1; /允许接收 while(1) P1=Receive(); 四、思考题1、异步串行通信协议的帧格式是怎样的?已知系统时钟频率和波特率,如何计算定时器初值?2、接收时采用中断方式时,程序代码应该如何改?实验六、数码管显示44

21、阵列式键盘按键一、实验目的1、掌握数字、字符转换成显示段码的软件译码方法2、掌握键盘和显示器的接口方法和编程方法;3、掌握阵列式键盘的硬件组成和软件编程方法。二、实验说明1、本实验提供了一个4X4小键盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。通过输出的列码和读取的行码来判断按下什么键。2、去抖动,有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。三、实验内容及步骤1、硬件原理图2、源程序及流程图#include #define uchar unsigned char#define uint unsigned intuchar con

22、st dofly = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71 ; /0-F的显示代码uchar keys_scan();void delay(uint i);void main() / 主程序 uchar key; P0 = 0x00; /数码管灭,为显示键码作准备 while(1) key = keys_scan(); /调用键盘扫描, switch(key) case 0xee:P0=dofly0;break; /0按下相应的键显示相应的码值 case 0xde:P0=

23、dofly1;break; /1 case 0xbe:P0=dofly2;break; /2 case 0x7e:P0=dofly3;break; /3 case 0xed:P0=dofly4;break; /4 case 0xdd:P0=dofly5;break; /5 case 0xbd:P0=dofly6;break; /6 case 0x7d:P0=dofly7;break; /7 case 0xeb:P0=dofly8;break; /8 case 0xdb:P0=dofly9;break; /9 case 0xbb:P0=dofly10;break; /a case 0x7b:P0=dofly11;break; /b case 0xe7:P0=dofly12;break; /c case 0xd7:P0=dofly13;break; /d case 0xb7:P0=dofly14;break; /e case 0x77:P0=dofly15;break; /f /*函数名称:keys_scan;函数功能:键盘扫描函数返回值: 返回键盘码,高4位为行码,低4位为列码*/uchar keys_scan() uchar cord_h,cord_l; /行列值 P3 = 0x0f; /列线输出全为0 cord_h = P3 & 0x0f; /读入行线值 if

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

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