《单片机原理及应用》实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(a=0;a<9;a++){
Delay(500);
P1=display[a];
}
}
}
/**************************************************************函数功能:外中断T0的中断服务程序
**************************************************************/
《单片机原理及应用》
20172018学年第1学期
系别计算机学院
专业软件工程班级17软件工程班
姓名XXXXXX
学号8888888888
授课老师******
实验一:
1.实验目的
(1)学习编译和仿真环境使用
(2)学习P3口的使用方法
(3)学习延时子程序的编写
2实验内容
(1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口;
2.实验内容
通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。
3.实验运行结果图
4.源代码
/用外中断0的中断方式进行数据采集和处理
#include<reg51.h>//包含51单片机寄存器定义的头文件sbit S=P3A2;//将S位定义为P3.2,
/*******************************************
第六个灯亮
delay();//调用延时函数x=0xbf;//第七个灯亮delay();//调用延时函数x=0x7f;//第八个灯亮delay();//调用延时函数
}
}
实验二:
1.实验目的
(1)熟悉51单片机中断初始化编程方法。
(2)掌握51单片机外部中断源的设计使用。
(3)中断处理应用程序的设计与调试技巧。
{
uchar j; for(;i>0;i--)for(j=0;j<125;j++)
{;}
}
//sbit S=P3A2;//将S位定义为P3.2,
/*******************************************
函数功能:主函数******************************************/void main(void)
3.实验运行结果图
C3
33P
VCC
C2
void int0_isr(void) interrupt0using1 //外中断0的中断编号为1
{
uchar n;
for(n=0;n<10;n++){
p1=0x0f;
Delay(500);
P1=0xf0;
Delay(500);
}
}
void int1_isr (void) interrupt2using2{uchar n;
for(n=0;n<10;n++){
p1=0xff;
Delay(500);
P1=0;
Delay(500);
}
}
实验三:定时器
1.实验目的
(1)熟悉51单片机中断初始化编程方法
(2)熟悉51单片机定时计数器的初始化编程方法
(3)掌握定时计数器的应用
2.实验内容
通过使用定时器T0的中断来控制P2.0引脚的的LED的灯闪烁,要求闪烁时 间2S,既亮1S,灭1S。
(2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯 时间。
3.实验运行结果图
//流水灯实验
#i nclude<reg51.h>//包含单片机寄存器的头文件
sfr x=OxbO;〃P3口在存储器中的地址是bOH,通过sfr可定义8051内核单
片机
的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的
{
uchar display[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned int a;
while(1){
EA=1;//开放总中断
EX0=1;//允许使用外中断
EX1=1;
IT0=1;//选择负跳变来触发外中断
IT1=1;
IP=0;
; //利用循环等待若干机器周期,从而延时一段时间}
/*****************************************
函数功能:主函数
******************************************/void main(void)
{while(1)
{
x=0xfe;//
*****wenku.baidu.com********************************************************/
void int0(void) interrupt0using0 //外中断0的中断编号为0
{
P1=~P1;//每产生一次中断请求,P1取反一次。
}
//用外中断0的中断方式进行数据采集和处理#include<reg51.h>//包含51单片机寄存器定义的头文件#define uchar unsigned char void Delay(unsigned int i)
函数功能:主函数
******************************************/
void ma in (void)
{
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1;//选择负跳变来触发外中断
P仁0xff;
while(1)
;//无限循环,防止程序跑飞
}
/**************************************************************函数功能:外中断T0的中断服务程序
第一个灯亮
delay();//
调用延时函数
x=0xfd;//
第二个灯亮
delay();//
调用延时函数
x=0xfb;//
第三个灯亮
delay();//
调用延时函数
x=0xf7;//
第四个灯亮
delay();//
调用延时函数
x=0xef;//
第五个灯亮
delay();//调用延时函数
x=0xdf;//
操作
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<255i++)
for(j=0;j<255j++)
Delay(500);
P1=display[a];
}
}
}
/**************************************************************函数功能:外中断T0的中断服务程序
**************************************************************/
《单片机原理及应用》
20172018学年第1学期
系别计算机学院
专业软件工程班级17软件工程班
姓名XXXXXX
学号8888888888
授课老师******
实验一:
1.实验目的
(1)学习编译和仿真环境使用
(2)学习P3口的使用方法
(3)学习延时子程序的编写
2实验内容
(1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口;
2.实验内容
通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。
3.实验运行结果图
4.源代码
/用外中断0的中断方式进行数据采集和处理
#include<reg51.h>//包含51单片机寄存器定义的头文件sbit S=P3A2;//将S位定义为P3.2,
/*******************************************
第六个灯亮
delay();//调用延时函数x=0xbf;//第七个灯亮delay();//调用延时函数x=0x7f;//第八个灯亮delay();//调用延时函数
}
}
实验二:
1.实验目的
(1)熟悉51单片机中断初始化编程方法。
(2)掌握51单片机外部中断源的设计使用。
(3)中断处理应用程序的设计与调试技巧。
{
uchar j; for(;i>0;i--)for(j=0;j<125;j++)
{;}
}
//sbit S=P3A2;//将S位定义为P3.2,
/*******************************************
函数功能:主函数******************************************/void main(void)
3.实验运行结果图
C3
33P
VCC
C2
void int0_isr(void) interrupt0using1 //外中断0的中断编号为1
{
uchar n;
for(n=0;n<10;n++){
p1=0x0f;
Delay(500);
P1=0xf0;
Delay(500);
}
}
void int1_isr (void) interrupt2using2{uchar n;
for(n=0;n<10;n++){
p1=0xff;
Delay(500);
P1=0;
Delay(500);
}
}
实验三:定时器
1.实验目的
(1)熟悉51单片机中断初始化编程方法
(2)熟悉51单片机定时计数器的初始化编程方法
(3)掌握定时计数器的应用
2.实验内容
通过使用定时器T0的中断来控制P2.0引脚的的LED的灯闪烁,要求闪烁时 间2S,既亮1S,灭1S。
(2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯 时间。
3.实验运行结果图
//流水灯实验
#i nclude<reg51.h>//包含单片机寄存器的头文件
sfr x=OxbO;〃P3口在存储器中的地址是bOH,通过sfr可定义8051内核单
片机
的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的
{
uchar display[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned int a;
while(1){
EA=1;//开放总中断
EX0=1;//允许使用外中断
EX1=1;
IT0=1;//选择负跳变来触发外中断
IT1=1;
IP=0;
; //利用循环等待若干机器周期,从而延时一段时间}
/*****************************************
函数功能:主函数
******************************************/void main(void)
{while(1)
{
x=0xfe;//
*****wenku.baidu.com********************************************************/
void int0(void) interrupt0using0 //外中断0的中断编号为0
{
P1=~P1;//每产生一次中断请求,P1取反一次。
}
//用外中断0的中断方式进行数据采集和处理#include<reg51.h>//包含51单片机寄存器定义的头文件#define uchar unsigned char void Delay(unsigned int i)
函数功能:主函数
******************************************/
void ma in (void)
{
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1;//选择负跳变来触发外中断
P仁0xff;
while(1)
;//无限循环,防止程序跑飞
}
/**************************************************************函数功能:外中断T0的中断服务程序
第一个灯亮
delay();//
调用延时函数
x=0xfd;//
第二个灯亮
delay();//
调用延时函数
x=0xfb;//
第三个灯亮
delay();//
调用延时函数
x=0xf7;//
第四个灯亮
delay();//
调用延时函数
x=0xef;//
第五个灯亮
delay();//调用延时函数
x=0xdf;//
操作
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<255i++)
for(j=0;j<255j++)