《单片机原理及应用》实验报告

上传人:suns****4568 文档编号:89388324 上传时间:2019-05-24 格式:DOC 页数:39 大小:590.65KB
返回 下载 相关 举报
《单片机原理及应用》实验报告_第1页
第1页 / 共39页
《单片机原理及应用》实验报告_第2页
第2页 / 共39页
《单片机原理及应用》实验报告_第3页
第3页 / 共39页
《单片机原理及应用》实验报告_第4页
第4页 / 共39页
《单片机原理及应用》实验报告_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《《单片机原理及应用》实验报告》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验报告(39页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用实验报告 2017/2018 学年 第 1 学期系 别 计算机学院 专 业 软件工程 班 级 17软件工程班 姓 名 XXXXXX 学 号 8888888888 授课老师 * 实验一:流水灯实验1实验目的(1)学习编译和仿真环境使用 (2)学习P3口的使用方法 (3)学习延时子程序的编写2实验内容 (1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口; (2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯时间。3实验运行结果图4源代码/流水灯实验#include /包含单片机寄存器的头文件sfr x=0xb0; /P3口在存储器中的地址是

2、b0H, 通过sfr可定义8051内核单片机 /的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的操作/*函数功能:延时一段时间*/void delay(void) unsigned char i,j; for(i=0;i255i+) for(j=0;j255j+) ; /利用循环等待若干机器周期,从而延时一段时间 /*函数功能:主函数 */void main(void) while(1) x=0xfe; /第一个灯亮 delay(); /调用延时函数 x=0xfd; /第二个灯亮 delay(); /调用延时函数 x=0xfb; /第三个灯亮 delay(); /调用延时函数 x=

3、0xf7; /第四个灯亮 delay(); /调用延时函数x=0xef; /第五个灯亮 delay(); /调用延时函数x=0xdf; /第六个灯亮 delay(); /调用延时函数x=0xbf; /第七个灯亮 delay(); /调用延时函数x=0x7f; /第八个灯亮 delay(); /调用延时函数 实验二:中断实验1实验目的(1)熟悉51单片机中断初始化编程方法。(2)掌握51单片机外部中断源的设计使用。(3)中断处理应用程序的设计与调试技巧。2实验内容 通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。3实验运行结果图4源代码/用外中断0的中

4、断方式进行数据采集和处理#include /包含51单片机寄存器定义的头文件sbit S=P32; /将S位定义为P3.2,/*函数功能:主函数*/void main(void) EA=1; /开放总中断 EX0=1; /允许使用外中断 IT0=1; /选择负跳变来触发外中断P1=0xff;while(1) ; /无限循环, 防止程序跑飞 /*函数功能:外中断T0的中断服务程序*/void int0(void) interrupt 0 using 0 /外中断0的中断编号为0 P1=P1; /每产生一次中断请求,P1取反一次。 /用外中断0的中断方式进行数据采集和处理#include /包含5

5、1单片机寄存器定义的头文件#define uchar unsigned charvoid Delay(unsigned int i)uchar j;for(;i0;i-)for(j=0;j125;j+);/sbit S=P32; /将S位定义为P3.2,/*函数功能:主函数*/void main(void) uchar display9=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned int a;while(1) EA=1; /开放总中断 EX0=1; /允许使用外中断EX1=1; IT0=1; /选择负跳变来触发外中断IT1=1;I

6、P=0;for(a=0;a9;a+)Delay(500);P1=displaya; /*函数功能:外中断T0的中断服务程序*/void int0_isr(void) interrupt 0 using 1 /外中断0的中断编号为1 uchar n; for(n=0;n10;n+) p1=0x0f;Delay(500);P1=0xf0;Delay(500); void int1_isr (void) interrupt 2 using 2 uchar n; for(n=0;n10;n+) p1=0xff;Delay(500);P1=0;Delay(500); 实验三:定时器/计数器实验1实验目的

7、(1)熟悉51单片机中断初始化编程方法 (2)熟悉51单片机定时计数器的初始化编程方法(3)掌握定时计数器的应用 2实验内容 通过使用定时器T0的中断来控制P2.0引脚的的LED的灯闪烁,要求闪烁时间2S,既亮1 S,灭1 S。3实验运行结果图4源代码#include / 包含51单片机寄存器定义的头文件sbit D1=P14; /将D1位定义为P1.4引脚unsigned char Countor; /设置全局变量,储存定时器T0中断次数/*函数功能:主函数*/void main(void) EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模

8、式2TH0=(65536-15536)/256; /定时器T0的高8位赋初值TL0=(65536-15536)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0Countor=0; /从0开始累计中断次数while(1)/无限循环等待中断 ; /*函数功能:定时器T0的中断服务程序*/void Time0(void) interrupt 1 using 0 /interrupt声明函数为中断服务函数 /其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器 Countor+; /中断次数自加1if(Countor=20) /若累计满20次,即计时满1s D1=D1; /按

9、位取反操作,将P2.0引脚输出电平取反Countor=0; /将Countor清0,重新从0开始计数 TH0=(65536-15536)/256; /定时器T0的高8位重新赋初值TL0=(65536-15536)%256; /定时器T0的高8位重新赋初值 实验四:串行口实验1实验目的 (1)掌握单片机的串行口的工作原理(2)掌握单片机串行口收发数据的方法 2实验内容 本实验要求单片机U1通过其串行口TXD向单片机U2发送数据。单片机U1的P1口接8个开关,U2的P1口接8个发光二极管。U1设置为只能发送不能接收,U1读入P1口的8个开关状态后,通过串行口发送到U2,U2将接收到的数据送入P1口,由P1口上连接的8个发光二极管显示8个开关的状态。3实验运行结果图4源代码/*发送单片机的发送程序*/#include /包含寄存器的头文件/*向PC发送一个字节数据*/void Send(unsigned char date) SBUF=date; while(TI=0); TI=0;/*延时约150ms*/ void delay(void) unsigned char m,n; for(m=0;m200;m+) for(n=0;n250;n+)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号