




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XX9机电 单片机实验指导书 单片机实验指导书实验 一、模拟开关灯实验 一、实验目的 1、认识单片机芯片内部基本结构和功能; 2、学习Keil和Proteus软件的基本使用方法; 3、了解了解单片机最小系统及单片机应用系统的设计过程。 二、实验说明 1、单片机应用系统基本过程1)启动Keil,创建一个项目文件*.UV2;2)选择单片机的型号,如AT89C51;3)单击菜单“File”“New”命令,新建源程序文件,输入代码,保存为*.c;4)把源程序文件添加到项目中,在项目管理器中,在展开的“Source Group1”上单击右键,选择“Add Filesto GroupSource Group1”命令,选择文件添加。 5)选中Target1,鼠标右键菜单“Options forTargetTarget1”命令,在“Output”选项卡中选中“Create HEXfile”复选框;6)执行菜单“Project”“Rebuild alltarget files”命令,编译项目并生成*.hex文件;7)打开Proteus ISIS软件,建立硬件控制电路;8)用鼠标双击“ATC89C51”单片机弹出对话框,在“Program File”中载入编译好的“*.HEX”文件;9)在Proteus环境中启动调试程序,观察仿真结果。 三、实验内容及步骤 1、实验内容使用单片机监控一个按键开关,通过一个发光二极管显示其工作状态。 如果开关打开,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软件的基本使用方法。 二、实验说明 1、P1口为一组双向口,每位都可独立地定义为输入或输出线,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入(即P1=0xff)。 2、本实验中延时采用循环程序来实现,入口参数控制延时时间长短。 三、实验内容及步骤 1、实验内容P1口做输出口,接八位逻辑电平显示,编写程序,使发光二极管循环点亮。 通过一个按键开关控制显示顺序,如果开关打开,LED自上而下依次点亮;开关合上,LED从下向上依次点亮。 2、硬件原理图 3、软件设计1)、画出程序流程图2)源程序#include#define ucharunsigned char/类型重定义#define uintunsigned 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;elseshift=0x80;for(i=0;i=1;void DelayMS(uint ms)uchar i;while(ms-)for(i=0;i120;i+); 四、思考题 1、MCS-51系列单片机的P0P3四个I/O端口在结构上有何异同?使用时应注意的事项?实验 三、定时器实验 一、实验目的 1、学习单片机内部计数器的使用和编程方法; 2、掌握中断处理程序的编写方法; 3、学习Keil和Proteus软件的基本使用方法。 二、实验说明 1、采用定时器方式设计一交通灯控制系统,使道路状态切换时间更准确。 正常情况下,90s后信号灯由“红灯”转“黄灯”,经过2s的过渡后“黄灯”转“绿灯”,另外设东西方向、南北方向紧急开关各一个,紧急开关闭合时,相应方向切换成“绿灯”,以方便特种车辆通过。 另设置一个开关,在晚上由人工闭合,此时所有的灯都变成黄灯。 2、系统的晶振是12MHZ,定时器1工作于方式1,即16位定时器,定时器50000uS(50mS)中断一次,所以定时常数的设置可按以下方法计算定时时间=(65536-定时常数)1uS=50000uS定时常数=15536,(0x3CB0)对50mS中断次数计数10次,就是0.5秒钟。 定时器0工作于方式1,定时20ms,定时常数=45536,(0XB1E00)。 三、实验内容及步骤 1、硬件原理图 2、软件设计1)、画出程序流程图2)源程序#include#includeunsigned chart0;void yellow();/东西、南北方向同时打开黄灯void yellowflash();/东西、南北方向同时打开黄灯,每隔0.5秒开始闪烁void delay0_5s();/延时0.5秒void delayxms(unsigned chart);/延时t*0.5秒/*函数名称ex_intex0;函数功能外部中断0服务子程序*/void ex_intex0(void)interrupt0EA=0;/关闭中断,不允许中断嵌套while(P3&0x04)=0)/检测外部中断0是否持续有效P1=0x1E;/东西方向绿灯亮、南北方向红灯亮,其它四个灯关闭。 EA=1;/打开中断/*函数名称ex_intex1;函数功能外部中断1服务子程序*/void ex_intex1(void)interrupt2EA=0;/关闭中断,不允许中断嵌套while(P3&0x08)=0)/检测外部中断1是否持续有效P1=0x33;/东西方向红灯亮、南北方向绿灯亮,其它四个灯关闭。 EA=1;/打开中断/*函数名称tm_timer0;函数功能定时器0服务子程序*/void tm_timer0(void)interrupt1EA=0;/关闭中断,不允许中断嵌套while(P3&0x40)=0)/检测P3.6开关是否闭合yellow();/东西、南北方向同时打开黄灯TH0=0xb1;/20ms定时初值重新装入TL0=0xe0EA=1;/打开中断/主程序void main()TMOD=0x11;/T1工作方式1,T0工作方式0EA=1;EX0=1;IT0=0;/打开外部中断0EX1=1;IT1=0;/打开外部中断1ET0=1;/打开定时器0中断TH0=0xb1;/20ms定时初值重新装入TL0=0xe0TR0=1;/启动定时器0while (1)/无限循环P1=0x1e;/东西方向绿灯亮、南北方向红灯亮,其他四个灯关闭。 delayxms (180);/延时90秒yellowflash();/东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次P1=0x33;/东西方向红灯亮、南北方向绿灯亮,其他四个灯关闭。 delayxms (180);/延时90秒yellowflash();/东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次/*函数名称yellow;功能东西、南北方向同时打开黄灯*/void yellow()P1=0x2d;/两个黄灯同时打开/*函数名称yellowflash;功能东西、南北方向同时打开黄灯,每隔0.5秒闪烁一次*/void yellowflash()unsigned chari;for(i=0;i2;i+)P1=0x2d;/两个黄灯同时打开delay0_5s();P1=0xff;/两个黄灯同时关闭delay0_5s();/*函数名称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 chart)for(t0=0;t0 四、思考题 1、如果更换不同频率的晶振,会出现什么现象?如何调整程序?实验 四、外部中断实验 一、实验目的 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(中断请求信号)利用外部中断INT0接入。 采用中断边沿触发方式,每中断一次,单片机对P1口完成一次读写操作。 当P1.0P1.3任何一位输出0时,相应的发光二极管就会发光。 当开关K0来回拨动一次时,将产生一个下降沿信号,通过INT0发出中断请求。 三、实验内容及步骤 1、硬件原理图 2、软件设计1)分别画出主程序和中断服务程序流程图2)源程序#includesbit 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;/*函数名称ex_intex0;函数功能外部中断0服务子程序*/void ex_intex0(void)interrupt0P1_0=P1_4;P1_1=P1_5;P1_2=P1_6;P1_3=P1_7;/主程序void main()P1=0xff;/P1口四个按键位置1EX0=1;/开外部中断0EA=1;/开中断总开关IT0=1;/外部中断0电平触发while (1)/等待中断; 四、思考题 1、简述中断处理的一般过程。 实验 五、单片机之间的串行双机通信 一、实验目的 1、学习单片机串行口的工作原理; 2、掌握串行通信的编程方法及波特率的设置; 3、进一步学习定时器的功能和编程。 二、实验说明 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工作方式2TH1=TL1=FDH。 三、实验内容及步骤 1、硬件原理图 2、软件设计1)、画出程序流程图2)源程序单片机U1的发送程序使用Keil软件建立“send”工程项目,建立源程序文件“send.c”,输入如下源程序#include/流水灯控制码unsigned charTab=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F;/*函数名称Send;函数功能发送一个字节数据*/void Send(unsigned chardat)SBUF=dat;/将待发送数据写入发送缓冲器while(TI=0);TI=0;/用软件将TI清零/*函数名称delay;函数功能延时约150ms*/void delay(void)unsigned charm,n;for(m=0;m200;m+)for(n=0;n250;n+);/主程序void main(void)unsigned charI;TMOD=0x20;/TMOD=00100000B,定时器T1工作在方式2SCON=0x40;/SCON=01000000B,串口工作在方式1PCON=0x00;/PCON=00000000B,波特率9600b/s TH1=0xfd;/给定时器T1高8位赋初值TL1=0xfd;/给定时器T1低8位赋初值TR1=1;/启动定时器T1while (1)for(i=0;i8;i+)/共8位流水灯控制码Send(Tabi);/发送数据i delay();/每发送一次数据,延时150ms再发送单片机U2的接收程序使用Keil软件建立“receive”工程项目,建立源程序文件“receive.c”,输入如下源程序#include/*函数名称Receive;函数功能接收串行口数据*/unsigned charReceive(void)unsigned chardat;while(RI=0);/空操作RI=0;/用软件将RI清零,为接收下一帧数据做准备dat=SBUF;/将接收缓冲器的数据存于dat returndat;/主程序void main(void)TMOD=0x20;/TMOD=00100000B,定时器T1工作在方式2SCON=0x50;/SCON=01010000B,串口工作在方式1,允许接收(REN=1)PCON=0x00;/PCON=00000000B,波特率9600b/s TH1=0xfd;/给定时器T1高8位赋初值TL1=0xfd;/给定时器T1低8位赋初值TR1=1;/启动定时器T1REN=1;/允许接收while (1)P1=Receive(); 四、思考题 1、异步串行通信协议的帧格式是怎样的?已知系统时钟频率和波特率,如何计算定时器初值? 2、接收时采用中断方式时,程序代码应该如何改?示实验 六、数码管显示44阵列式键盘按键 一、实验目的 1、掌握数字、字符转换成显示段码的软件译码方法 2、掌握键盘和显示器的接口方法和编程方法; 3、掌握阵列式键盘的硬件组成和软件编程方法。 二、实验说明 1、本实验提供了一个4X4小键盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。 通过输出的列码和读取的行码来判断按下什么键。 2、去抖动,有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。 三、实验内容及步骤 1、硬件原理图p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122PFC222PFC310uFX112MR110kK0K1K2K3K4K5K6K7K8K9KA KBKCKD KEKF234567891RP1RESPACK-8P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7R210kR310kR410kR510k 2、源程序及流程图#include#define ucharunsigned char#define uintunsigned intuchar constdofly=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)case0xee:P0=dofly0;break;/0按下相应的键显示相应的码值case0xde:P0=dofly1;break;/1case0xbe:P0=dofly2;break;/2case0x7e:P0=dofly3;break;/3case0xed:P0=dofly4;break;/4case0xdd:P0=dofly5;break;/5case0xbd:P0=dofly6;break;/6case0x7d:P0=dofly7;break;/7case0xeb:P0=dofly8;break;/8case0xdb:P0=dofly9;break;/9case0xbb:P0=dofly10;break;/a case0x7b:P0=dofly11;break;/b case0xe7:P0=dofly12;break;/c case0xd7:P0=dofly13;break;/d case0xb7:P0=dofly14;break;/e case0x77:P0=dofly15;break;/f/*函数名称keys_scan;函数功能键盘扫描函数返回值返回键盘码,高4位为行码,低4位为列码*/uchar keys_scan()uchar cord_h,cord_l;/行列值P3=0x0f;/列线输出全为0cord_h=P3&0x0f;/读入行线值if(cord_h!=0x0f)/先检测有无按键按下delay (100);/消抖动cord_h=P3&0x0f;if(cord_h!=0x0f)P3=cord_h|0xf0;cord_l=P3&0xf0;return(cord_h+cord_l);return(0xff);/*函数名称delay;函数功能延时函数*/void delay(uint i)while(i-); 四、思考题 1、描述阵列式键盘扫描原理。 实验 七、简易波形发生器的制作实验 一、实验目的 1、熟悉MCS-51单片机与D/A转换器DAC0832的接线方法; 2、掌握DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法。 二、实验说明数/模转换器采用DAC0832集成电路,其数据输入端直接与单片机8051的P0口相连,输出经运算放大器得到电压波形。 DAC0832采用单极性单缓冲方式工作,锁存器74LS373的Q0为DAC0832提供片选和数据传送控制信号,两个寄存器的写控制端连接8051的写输出端。 在8051的P1口接三个开关K 0、K1和K2,用来设置输出波形的类型,K 0、K1和K2,分别对应正弦波、锯齿波和方波。 三、实验内容及步骤 1、硬件原理图D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D7D6D5D4D0D1D2D3WRCSCSWRWRLELE CSXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373C122pC222pX112MR110kC31uFGND+5VVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U3DAC08323267415U4UA741RV110K-12V+5v+12V+5VK0K1K2Volts-0.72ABCD 2、源程序及流程图#include#include#define ucharunsigned char#define
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BLX-3887-生命科学试剂-MCE
- 宁夏葡萄酒与防沙治沙职业技术学院《中国文学导读》2023-2024学年第一学期期末试卷
- 沧州师范学院《综艺节目编导》2023-2024学年第一学期期末试卷
- 内蒙古师范大第二附中2024年化学九年级第一学期期末达标测试试题含解析
- 武昌首义学院《中外经典戏剧作品选讲》2023-2024学年第一学期期末试卷
- 2024年河北省石家庄市桥西区九年级化学第一学期期末质量检测模拟试题含解析
- 共享出行信用保险与信用体系构建研究报告
- 2025全球劳动力趋势报告第1期
- 2024年山东省青岛市广雅中学七年级数学第一学期期末达标检测模拟试题含解析
- 遵义医科大学《透过影像看健康》2023-2024学年第一学期期末试卷
- SHT 3081-2019 石油化工仪表接地设计规范
- HJ 1051-2019 土壤 石油类的测定 红外分光光度法(正式版)
- 新课标背景下的大单元教学研究:国内外大单元教学发展与演进综述
- 安全生产的责任书
- (正式版)HGT 4339-2024 机械设备用涂料
- 电网建设项目施工项目部环境保护和水土保持标准化管理手册(变电工程分册)
- JJG 105-2000转速表行业标准
- 《家政学概论》课件-第一章-现代家政概述
- GB/T 144-2024原木检验
- 文学作品评分表
- 调解方法与技巧
评论
0/150
提交评论