单片机实验

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

实验一闪烁灯

1. 实验任务

在单片机的P1.0端口上接一个发光二极管D1,使D1在不停地一亮一灭。

2. 电路原理图

3. 硬件连线

将单片机中J2接口的P1.0端口用导线连接到J15接口的发光二极管D1的端口上。

4. 程序设计内容

1、编写一段程序,用P1.0接口作为控制端口,使发光二极管亮和灭。

5. 程序框图

6. C语言程序

#include

//延时

void delay(unsigned char time) {

unsigned char a,b,c;

for(a=0;a<=time;a++)

for(b=0;b<=10;b++)

for(c=0;c<=120;c++); }

//主程序

main(void)

{

while(1)

{

P1_0=1; //发光二极管D1亮

delay(10);

P1_0=0; //发光二极管D1灭

delay(10);

}

}

7、实验思考题

(1)请用户思考下,怎样让几个发光二极管同时亮。

实验二跑马灯

1. 实验任务

做单一灯的右移,硬件电路如图4.4.1所示,八个发光二极管D1-D8分别接在单片机的P1.0-P1.7接口上,输出“1”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7亮,重复循环。

2. 电路原理图

3 .硬件连线

将单片机中J2接口的P1.0-P1.7连接到J15接口发光二极管D1-D8端口上,要求:P1.0对应着D1,P1.1对应着D2,……,P1.7对应着D8。

4 程序设计内容

我们可以运用查表方式,将数据送到P1口上,每次送出的数

据是不同,具体的数据如下表1所示

表1 5. 程序框图

6.C 语言程序

#include

unsigned char shuzu[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //送到P1口的数组 //延时程序

void delay(unsigned char time) {

unsigned char a,b,c; for(a=0;a<=time;a++) for(b=0;b<=10;b++) for(c=0;c<=120;c++); }

//主程序

void main(void) {

unsigned char i; while(1) {

for(i=0;i<8;i++) {

P1=shuzu[i]; //把数组里面的数据送给

P1口 delay(10); } } }

7、实验思考题 (1)、请用户思考下,想出几种实现以上功能的编程方法。 (2)、请用户思考下,使以上实验从左道右,又右到左怎么实现。

实验三串并转换

1、实验任务

熟悉并掌握串转并的I/O口扩展方法,同时熟悉74HC595的使用方法。

2、实验原理图

3、硬件连线

将单片机J2接口的P1.0,P1.1,P1.2,P1.3分别与74HC595区J9接口的OE,SCLK,LCK,SDI连接。然后将74HC595区J8接口的Q0到Q7分别与发光二极管区J15接口的D1到D8连接。

4、程序设计的内容

编写一段代码,从74HC595写入一个数据,通过外接8个发

光将数据显示出来5、程序框图

6、C语言程序

#include #include

/*控制引脚定义*/ sbit CLK = P1^0;

sbit RCLK = P1^1; sbit SER = P1^2;

void delayms(unsigned char x) //////延时x ms 误差16us {

unsigned char y=123;

unsigned char j;

while(x--)

{

for(j=0;j

}

}

void wr595(unsigned char wrdat)

{

unsigned char i;

for(i=8;i>0;i--)//循环八次,写一个字节

{

CLK=0;

SER=wrdat&0x01; //发送BIT0 位

wrdat=wrdat>>1; //要发送的数据左移,准备发送下一位_nop_();

_nop_();

CLK=1;

_nop_();

_nop_();

}

RCLK=0;

_nop_();

_nop_();

RCLK=1;

}

void main()

{

wr595(0x08);

delayms(100);

}7、实验思考题

(1)请用户编写一段程序,来实现8位发光二极管流水灯的控制。

实验四数码管显示

1、实验任务

认识共阳和共阴LED数码显示管,知道怎样通过三极管来驱动数码管,通过数码管来显示一个00—59的计数器。

2、实验原理图

LN3461

3、硬件连线

将单片机的J1接口的P0.0—P0.7接到数码管区的J32接口上,P0.0对应segA ,P0.1对应segB,…,P0.6对应segG,P0.7对应segDp,数码管的控制端J31接口的Q1,Q2,Q3,Q4分别接到P2.0 ,P2.1, P2.2, P2.3。

4、程序设计的内容

编写一段程序,使数码管Q1和Q2能显示从00到59的计数。

5、程序框图

相关文档
最新文档