实验(8课时用)单片机实验指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理及应用》实验指导书

计算机科学与技术系

2012年8月

目录

实验一:流水灯实验 (1)

实验二:中断实与定时器中断实验 (4)

实验三:串行口实验 (9)

实验四:矩阵式键盘输入识别 (13)

实验五:LCD循环显示设计 (19)

实验一:流水灯实验

一、实验目的:

通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。

二、实验原理图

实验参考电路图如下:

三、参考实验程序

//流水灯实验

#include //包含单片机寄存器的头文件

sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机

//的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的操作

/****************************************

函数功能:延时一段时间

*****************************************/

void delay(void)

{

unsigned char i,j;

for(i=0;i<250;i++)

for(j=0;j<250;j++)

; //利用循环等待若干机器周期,从而延时一段时间 }

/*****************************************

函数功能:主函数

******************************************/

void main(void)

{

while(1)

{

x=0xfe; //第一个灯亮

delay(); //调用延时函数

x=0xfd; //第二个灯亮

delay(); //调用延时函数

x=0xfb; //第三个灯亮

delay(); //调用延时函数

x=0xf7; //第四个灯亮

delay(); //调用延时函数

x=0xef; //第五个灯亮

delay(); //调用延时函数

x=0xdf; //第六个灯亮

delay(); //调用延时函数

x=0xbf; //第七个灯亮

delay(); //调用延时函数

x=0x7f; //第八个灯亮

delay(); //调用延时函数

}

}

四、实验思考题:

1.修改程序使LED灯为18灯亮——27灯亮——36灯亮——45灯亮,再将LED 灯亮的顺序倒过来既:45灯亮——36灯亮——27灯亮——18灯亮,连续运行。

2.设计一个八位二进制加法计数器,要求用八个流水灯显示加法器的结果,灯亮表示1,灯灭表示0,实现从0000 0000~1111 1111的加法过程。

调试后的程序代码:

实验二:中断与定时计数器实验

第一部分中断实验

一、实验目的:

通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。

二、实验原理图

实验参考电路图如下:

三、参考实验程序

/用外中断0的中断方式进行数据采集和处理

#include

#include

void init();

void delay(unsigned int);

void main()

{

init();

while(1)

{

P1 = 0xff;

delay(100);

P1 = 0x00;

delay(100);

}

}

void init()

{

EA = 1;

IT0 = 0;

IT1 = 0;

EX0 = 1;

EX1 = 1;

}

void delay(unsigned int n) {

unsigned int i,j;

for(i=0;i

for(j=0;j<110;j++);

}

void aa() interrupt 0

{

unsigned char tmp = 0xfe;

unsigned int i=0;

P1 = tmp;

delay(100);

i = 7;

while(i--)

{

tmp = _crol_(tmp,1);

P1 = tmp;

delay(100);

}

//delay(500);

i=7;

while(i--)

{

tmp = _cror_(tmp,1);

P1 = tmp;

delay(100);

}

// delay(500);

}

void bb() interrupt 2

{

P1 = 0xf0;

delay(500);

P1 = 0x0f;

delay(500);

}

四、实验思考题:

根据指导书中提供的原理图,自行设计一个外部中断实验,要求:

1.两个外部中断全部用上;

2.实验能体现不同中断优先级的中断源的相应情况;

3.不同中断处理程序能输出不同的响应效果

相关文档
最新文档