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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(单片机原理及其应用实验报告.doc)为本站会员(小屁孩)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

单片机原理及其应用实验报告.doc

1、北航单片机原理及其应用实验报告班级:110323姓名:赵敏杰学号:11031064同组者:郑硕学号:110311052实验一 单片机开发环境以及 I/O 使用实验一实验目的1熟悉 MCS-51 系列单片机开发软件的使用2掌握单片机 I/O 口的使用3学习延时子程序的编写和使用二实验内容1验证性实验(1)实验内容:I/O 口做输出口,I/O 口接一个 LED 发光二极管,使其闪烁。有关说明:根据 LED 的单向导通性,可以用单片机的 P1.0(也可以是其他I/O 口)作为 LED 的控制端。当 P1.0 输出为低电平时,LED 灭,反之,LED 亮。本实验系统晶振为 11.0592MHz,则一个

2、机器周期为12/11.0592us=1.085us,为方便编写延时函数,认为一个机器周期为 1us。硬件连接:用导线将试验箱中的 P1.0 与 L1 相连。程序:C 语言程序#include /89S52 寄存器定义头文件/*-延时子程序(有参函数),t=n*10ms-*/void delay(unsigned char n) unsigned char i,j,k;for(i=0;i /89S52 寄存器定义头文件void main()while(1) P0=0xff; /对端口写“1“,作为高阻抗输入端用if(P0_0) /判断 P0.0 是否为高电平P1_0=0;else /如果 P0.

3、0 不是高电平,则执行后面的语句P1_0=1;汇编语言参考程序ORG 00HLJMP MAINORG 30HMAIN:JB P0.0,DEL ;识别按键是否闭合SETB P1.0LJMP MAINDEL:CLR P1.0LJMP MAINEND实验现象:可以看到 LED1 的状态和开关 1 的状态一致。52.设计性实验实验内容:模拟舞台灯光控制实验具体要求:P0.0 和 P0.1 口连接两路拨动开关,P1 口连接 8 路 LED。不同的开光状态控制 LED 进行流水灯、闪烁等,从而达到模拟舞台炫耀灯光控制的目的。当 P0.1 和 P0.0 的状态为 00 时,8 路 LED 从右至左流水点亮,

4、具体循环顺序为:L1L2L3L4L5L6L7L8L1 ,如此重复循环;当 P0.1 和 P0.0 的状态为 01 时,8 路 LED 从左至右流水点亮,具体循环顺序为:L8L7L6L5L4L3L2L1L8 ,如此重复循环;当 P0.1 和 P0.0 的状态为 10 时,8 路 LED 交替闪烁,具体循环顺序为:L1、L3、L5、L7L2 、L4、L6、L8 L1、L3、L5、L7,如此重复循环下去;当 P0.0 和 P0.1 的状态为 11 时,8 路 LED 一起闪烁,具体循环顺序为:全灭 全亮 全灭,如此重复下去。硬件连接:用导线将实验箱中的 P0.0 与开关 K1 相连,P0.1 与开关

5、 K2 相连,P1.0P1.7 分别与 LED 发光二极管 L1L8 相连。程序:C 语言程序#include /89S52 寄存器定义头文件void delay(unsigned char n) unsigned char i,j,k;for(i=0;i1; if(P0_1!=0|P0_0!=1)break;if(P0_1=1for(i=1;iunsigned char STATE;unsigned char s0;/*-延时子程序(有参函数) ,t=n*10ms-*/void delay(unsigned char n) unsigned char i,j,k;for(i=0;iint t

6、ime;void main() TMOD=0x01; /定时器 0 工作方式 1TH0=64614/256; /计算初值TL0=64614%256;EA=1; /CPU 开中断ET0=1; /开定时器中断 0TR0=1; /开启定时器 0 并开始工作while(1); /等待中断/*-定时器 0 中断服务函数-*/void time0() interrupt 1 time+; /每 1ms,time 加 1if(time=500) /time 加满 500 次后,0.5s 时间到 time=0; /time 清零,重新计数P1+;TH0=64614/256; /重新装载定时器初值TL0=646

7、14%256;15汇编语言参考程序ORG 0000HJMP START ;在首地址处放置跳转指令;以免主程序占用中断入口地址ORG 000BH ;定时器 0 程序入口地址JMP ET0PORG 0030HSTART:MOV TMOD,#01H ;定时器 0,工作方式 1MOV TH0,#4CH ;定时器装载初值,50ms 中断一次MOV TL0,#00H ;这里需要注意,前面的 c 程序定时时间为;1ms,这里汇编定时时间为 50ms,因为汇编;数据长度只支持到 8 位,如果定时时间为 1ms,;500ms 需要中断 500 次,汇编无法支持,所以;定时时间改为 50msSETB EA ;CP

8、U 开中断SETB ET0 ;开定时器中断SETB TR0 ;定时器开始工作MOV A,#0AHCALL LOOPLOOP: CJNE A,#00H,LOOP ;A 不等于零,跳转 LOOPINC B ;B 加 116MOV P1,BMOV A,#0AHJMP LOOP ;/*-定时器 0 中断程序-*/ET0P:DEC A ;A 减 1MOV TH0,#4CHMOV TL0,#00HRETIEND实验现象:可以看到用 P1 口所接的 8 路 LED 表示的二进制数每隔 0.5s 加 1。2.设计性实验实验内容:模拟救护车优先的交通灯控制实验具体要求:具体要求为用两组不同颜色的 LED 分别模

9、仿两个路口的“红灯”、 “绿灯” 、 “黄灯” 。平时两组交通灯按规律点亮,具体规律为:南北路口:绿灯(5s) 黄灯(2s) 红灯(5s) 黄灯(2s) 绿灯(5s)17东西路口:红灯(5s) 黄灯(2s) 绿灯(5s) 黄灯(2s) 红灯(5s)当救护车来时(用负脉冲触发外部中断表示救护车到来) ,两个路口马上都变成红灯让救护车优先通过,红灯保持 3s,待救护车通过以后,两个路口的交通灯恢复正常的工作状态。实验中的交通灯点亮的时间需要用定时器精确定时,不能使用延时函数。硬件连接:INT0 与负脉冲相连,LED 与单片机的连接没有固定要求,下图只是提供一种参考接法。程序:# includeun

10、signed char STATE;unsigned char s0;18/*-延时子程序(有参函数) ,t=n*10ms-*/void delay(unsigned char n) unsigned char i,j,k;for(i=0;iint time,i;unsigned char STATE;unsigned char m;void delay(unsigned char n)unsigned char i,j,k;for(i=0;i=5000 TH0=64614/256; /重新装载定时器初值TL0=64614%256;void int0() interrupt 0 P1=0x24

11、;ET1=1;TR1=1;TH1=64614/256; /重新装载定时器初值TL1=64614%256;while(m#define uchar unsigned char /变量类型定义uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, /七段码 0-70x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;/七段码 8-f,最后一码 0x00 作用为熄灭数码管uchar segment6 ; /段选uchar byte6 ; /位选uchar play6=0,0,0,0,0,0 ; /要显示的

12、数字uchar k;uchar d;27void Display_Init(); /数码管显示初始化void Uart_Init(); /串口初始化void Display(); /数码管显示函数/*-数码管显示初始化-*/void Display_Init() /初始化,通过定时器,按固定频率扫描数码管TMOD = TMOD|0x01; /定时器 0,工作方式 1TH0 = 0xfc; /计算初值,定时时间为 1msTL0 = 0x66;EA = 1; /CPU 开中断ET0 = 1; /开定时器中断 0TR0 = 1; /开启定时器 0 并开始工作5/*-串口初始化-*/void Uart

13、_Init()TMOD = TMOD|0x20; /定时器 1,工作方式 2TH1 = 0xfd; /波特率为 9600TL1 = 0xfd;SCON = 0x50; /设置定时器工作方式28PCON = 0;EA = 1; /CPU 开中断ES = 1; /允许串口中断TR1 = 1; /定时器 1 开始工作/*-扫描数码管数据显示函数-*/void Display()uchar n=0 ;uchar m=0x01;for(n=0;n0x0f)segmentn=0x10; /显示的数据大于 0x0f,则该位熄灭elsesegmentn=playn;byten=m;m = m1;/*-主函数-

14、*/void main (void)29Uart_Init() ;Display_Init();play0=0x00;play1=0x00;play2=0xff;play3=0xff;play4=0xff;play5=0xff;while(1)6Display() ;/*-定时器 0 中断服务函数-*/void time0() interrupt 1P1 = tablesegmentk;P2 = bytek;k+;if(k=6)30k=0;TH0=0xfc; /重新装载初值TL0=0x66;void uart() interrupt 4if(RI) /接收标志位d = SBUF; /读取串口发来的数据play1 = d/0x10;play0 = d%0x10;RI=0; /清除接收标志位实验现象:单片机复位以后,最后两位数码管显示00 ,其它位数码管则熄灭,当上位机通过串口发送数据时,数码管的后两位显示数据。(2)实验内容:单片机串行发送数据实验,波特率为 9600,外部中断 INT0 与负脉冲相连,对脉冲个数进行计数,将计数结果以字符形式通过串

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报