2016-03-14 09:06:36 a1314521531 阅读数 2747
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3038 人正在学习 去看看 朱有鹏

单片机——硬件基础知识


宗旨:技术的学习是有限的,分享的精神是无限的。


1、单片机内部资源

STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源

(1)Flash(硬盘)——程序存储空间 —— 擦写10万次,断电数据不丢失,读写速度慢

(2)RAM(内存)——数据存储空间 —— 断电数据丢失,读写速度快,无限次使用

(3)SFR  —— 特殊功能寄存器

 

2、单片机最小系统


最小系统:最少组件组成单片机可以工作的系统。

三要素:

(1)、 电源电路:5V

(2)、 晶振电路:11.0592MHZ、两个30PF

(3)、 复位电路:

P0:开漏输出,必须加上拉电阻

准双向口:

强推挽输出:电流驱动能力强

高阻态

上下拉电阻:上拉电路就是将不确定的信号通过一个电阻拉到高电平,同时限流作用。下拉电阻就是下拉到低电平。

上下拉电阻选取:从降低功耗方面考虑应该足够大,因为电阻越大,电流越小;驱动能力来看,小电阻

 

3、硬件基础知识

(1)、电磁干扰(EMI)——静电放电(ESD)、快速瞬间脉冲群(EFT)、浪涌(Surge)

(2)、去耦电容的使用

低频滤波电容,平常应用最多的事钽电容,电解电容,陶瓷电容,起到去除电源低频纹波,稳定电源的作用。

高频滤波电容,电容附近,通常用104电容来进行去除高频干扰。

(3)、三极管(PNP,NPN) b,c,e  --- 电压驱动

    控制应用

    驱动应用

 

4LED发光二极管 ——电流驱动


通常红色贴片LED, 靠电流驱动,电压1.8V~2.2V,电流1~20mA,在1~5mA亮度有所变化,5mA以上亮度基本不变。

 

VCC 电压是 5V,发光二极管自
身压降大概是 2V,那么在右边 R34 这个电阻上承受的电压就是 3V。

R = U/I  —— 1~20mA —— R:150~3K

 

5C语言基础

(1)、基本运算符

+  -   *   /   %   ++   --    =  ==   !=   +=   -=   <<   >>  &&   ||   !   &   |   ~   ^

(2)、循环(c语言以;表示一条语句)

for/while/do...while

for(表达式1;表达式2;表达式3)

{

       语句;//可以为空

}

while(表达式)//表达式为真,执行语句

{

        语句;//可以为空

}

do

{

        语句;//可以为空

}while(表达式);

(3)、函数 (模块化的思想)

类型  函数名(参数类型 参数)

{

    函数体;

}

(4)、数组

      <1>、具有相同数据类型

      <2>、具有相同的类型

      <3>、在存储器中连续存储

(5)、51单片机常用延时办法——循环、定时器

(P0 = ~(1 << i++);)

 

5、流水灯

给IO口一个低电平即可点亮LED灯。

注:单片机对外设的操作其实就是对IO口电平的控制。

#include <reg52.h>   //包含特殊功能寄存器定义的头文件

typedef unsigned int  uint;
typedef unsigned char uchar;

int  main(void)
{
  uint i = 0; // 定义循环变量i,用于软件延时
  uchar j = 0; // 定义计数变量j,用于移位控制

  while(1)  // 主循环,程序无限循环执行该循环体语句
  {
    P0 = ~(1 << j++); // P0等于1左移j位,控制8个LED

    for(i = 0; i < 20000; ++i);  //软件延时

    if(j >= 8)   //移位计数超过7后,再重新从0开始
    {
      j = 0;
    }
  }

  return 0;
}

2018-07-22 16:20:44 weixin_39569242 阅读数 4091
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3038 人正在学习 去看看 朱有鹏

一.实验目的

1.  掌握 51 单片机串口工作原理。

2.  掌握 51 单片机串口初始化编程。

3.  掌握 51 单片机串口的软硬件编程。

二.实验设备和器件

1.KEIL软件

2.PROTEUS仿真软件   

3.伟福实验箱

三.实验内容

1编程实现:编程实现:甲、乙双机串行通信,双机的 RXD

和 TXD 相互交叉相连,甲机的 P0 口接 8 个开关,乙机的 P0口接 8 个发光二极管。甲机设置为只发不收的单工方式。要求甲机读入 P0口的 8 个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的 8 个开关的状态数据送入 P0 口

  • 电路图:

 

  • 代码:

/*甲机(接开关)代码*/

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

void main()

{uchar temp=0;

TMOD=0x20; /*设置定时器T1为方式2*/

TH1=0xfd; /*波特率9600*/

TL1=0xfd;

SCON=0x40; /*方式1只发送,不接收*/

PCON=0x00; /*波特率为9600,SMOD=0*/

TR1=1; /*启动T1*/

P0=0xff; /* P1口为输入*/

while(1)

{temp=P0; /*读入P0口开关的状态数据*/

SBUF=temp; /*数据送串行口发送*/

while(TI==0); /*如果TI=0,未发送完,循环等待*/

TI=0;}}/*已发送完,再把TI清0*/

/*乙机(接灯)代码*/

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

void main()

{uchar temp=0;

TMOD=0x20; /*设置定时器T1为方式2*/

TH1=0xfd; /*波特率9600*/

TL1=0xfd;

SCON=0x50; /*方式1接收REN=1*/

PCON=0x00; /*波特率为9600,SMOD=0*/

TR1=1; /*启动T1*/

P0=0xff; /* P0口为输入*/

while(1)

{while(RI==0); /* 若RI为0,未接收到数据*/

RI=0; /* 接收到数据,则把RI清0*/

temp=SBUF; /* 读取数据存入temp中*/

P0=temp; /* 接收的数据送P0口控制8个LED的亮与灭*/

}}

  • 分析:
  1. 串口工作于方式1或方式3已知波特率,计算初值的公式:

 

则波特率为9600bps,方式1接收和发送SMOD=0,则初值=256-11059200/(384*9600)=253=fdH

  1. REN为允许接收控制位,REN=1,则允许接收,REN=0,则禁止接收,允许发送,在该题中,最开始将乙机的SCON也设置为40H,及REN=0,此时不管开关怎么变换,灯都不会亮,原因是乙机现在无法接收串口数据
  2. 当开关闭合是,串口传送的数据为低电平数据,protuse仿真中,灯即为低电平亮,则不需要取反,eg:当第一个开关闭合时,传送的数据为01111111,则乙机收到数据后,第D0位为低电平,则第一盏灯亮

 

(2)参考实验 1,将乙机的显示改为 LED 数码管,将按键输入显示到数码管上,按键输入范围:0~F

  • 电路图:

 

  • 代码:

/*甲机(接开关)代码*/

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

void main()

{uchar temp=0;

TMOD=0x20; /*设置定时器T1为方式2*/

TH1=0xfd; /*波特率9600*/

TL1=0xfd;

SCON=0x40; /*方式1只发送,不接收*/

PCON=0x00; /*串行口初始化为方式0*/

TR1=1; /*启动T1*/

P0=0x0f; /* P0口为输入*/

while(1)

{temp=P0; /*读入P0口开关的状态数据*/

SBUF=temp; /*数据送串行口发送*/

while(TI==0); /*如果TI=0,未发送完,循环等待*/

TI=0;/*已发送完,再把TI清0*/

}}

/*乙机(接数码管)代码*/

#include <reg51.h>

#include <absacc.h>

#define uchar unsigned char

#define uint unsigned int

void delay(unsigned int time)

{int j = 150;

for(;time>0;time--)

for(;j>0;j--);}

void main( )

{Code uchar codevalue[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar temp=0;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

SCON = 0x50;

PCON = 0x00;

TR1=1;

while(1)

{while(RI==0);

RI=0;

temp=SBUF;

P0=codevalue[temp];

}}

  • 分析:
  1. 数码管共阴极发光二极管的正级接地,要接一个排阻才可以正常使用;共阳极单片机可以直接驱动发光二极管的正级接电源
  2. 在该题中数码管只能显示到F,乙机P0显示的值是codevalue[16]数组中的数,所以只需要4个开关控制,则甲机P0的初始值为0x0f,,初始值不能大于0f,如果大于,则超过了数组的范围,则数码管无法显示。
  3.  
  4. (3)编写程序控制 LCD1602 输出显示数字和英文字符,显示内容为 2 行:第一行:学号;第二行:英文姓名(拼音)
  • 电路图:

 

  • 代码:

#include <reg51.h>

#define uchar unsigned char

sbit RS=P1^7;/*数据命令选择端*/

sbit RW=P1^6;/*读/写选择端*/

sbit E=P1^5;/*使能端*/

void init(void);

void wc51r(uchar i);

void wc51ddr(uchar i);

void fbusy(void);

void main()

{SP=0x50;init();

wc51r(0x80);wc51ddr('1');wc51ddr('5');wc51ddr('0');wc51ddr('4');wc51ddr('0');

wc51ddr('1');wc51ddr('0');wc51ddr('1');wc51ddr('0');wc51ddr('7');

wc51r(0xc0);wc51ddr('j');wc51ddr('i');wc51ddr('a');wc51ddr('n');

wc51ddr('g');wc51ddr(' ');wc51ddr('z');wc51ddr('h');wc51ddr('e');wc51ddr('n');

while(1);}

/*初始化函数*/

void init()

{wc51r(0x01);//清屏命令

wc51r(0x38);//设置16*2,5*7点阵,8位数据接口

wc51r(0x0c);//显示控制开关命令:D=1,显示;c=0,光标不显示;B=0,字符不闪烁

wc51r(0x06);}//输入方式设置命令:字符不动,光标自动向右移动

/*检查忙函数*/

void fbusy()

{P2=0xff;RS=0;RW=1;//忙标志和地址计数器读出

E=0;E=1;

while (P2&0x80)

{E=0;E=1;}//忙,等待

}

/*写命令函数*/

void wc51r(uchar j)

{fbusy();

E=0;RS=0;RW=0;//指令寄存器写入

E=1;P2=j;E=0;}

/*写数据函数*/

void wc51ddr(uchar j)

{

fbusy();

E=0;RS=1;RW=0;//数据寄存器写入

E=1;P2=j;E=0;}

  •  分析:
  1. sp其实是一个寄存器,其中只能保存一个指针,而这个指针就指向了栈空间中的最高层,即栈顶
  2. LCD第一行第一个字符地址为80H,第二行第一个字符地址为C0H
  3. E,使能端,为高电平时,读取液晶模块信息,当E端由高电平跳变成低电平时,液晶模块执行写操作
2017-12-23 12:38:48 chao_shine 阅读数 452
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3038 人正在学习 去看看 朱有鹏

实验七 串行通信与电子音乐实验 
一、实验目的 
1、掌握串行口工作方式0的使用和用C51的编程方法; 
2、掌握移位寄存器74HC164的工作原理; 
3、掌握单片机驱动喇叭发声原理; 
4、掌握定时计数器产生方波的编程方法; 
二、实验设备与环境 
硬件:DOFLY单片机实验仪; 
软件:Keil uVision3开发环境。 
三、实验内容 
1、实验内容一 
1.1、问题一: 
使用74HC164的并行输出引脚接8支发光二极管,利用它的串入并出功能,把发光二极管从左向右轮流点亮,并反复循环。RXD(P3.0)接J11 A、B,TXD(P3.1)接J11 CLK,输出J12用8根杜邦线接发光二极管J9电路。原理图见图1: 
图1 实验一的原理图

图1 实验一的原理图

1.2、问题一的代码:

#include <reg51.h>
#include <intrins.h>
sbit P1_0 = P1^0;
void delay();
void main()
{
    unsigned char i;
    SCON = 0x00;
    ES = 0;
    for (;;)
    {
        for (i = 0; i < 8;i++)
        {
            P1_0 = 0;
            SBUF = _cror_(0x80,i);
            while(!TI)
            {}
            P1_0 = 1;
            TI = 0;
            delay();
        }
    }
}
void delay() 
{   
    int y;
    for(y=300;y>0;y--);
}

2、实验内容二 
2.1、问题二: 
用定时器T1方式1来产生歌谱中各音符对应频率的方波,由P1.1输出驱动喇叭。实现有外部中断0时演奏乐曲“小星星”一次,有外部中断1时演奏乐曲“新年好”一次。控制节拍可通过调用延时子程序次数来实现(考虑外部中断和定时计数器中断的优先级),ULN2003为电流放大芯片,驱动喇叭。 
把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格数组tab存放在存储器中。每演奏一个音符调用定时常数和延时常数,分别用以控制定时器产生方波的频率和该频率方波的持续时间。当延时时间到,再调用下一个音符的定时常数和延时常数。依次下去,就可自动演奏出乐曲。 
实验原理图见图2,流程图见图3: 
图2 实验二原理图 

图2 实验二原理图

图3 实现单首音乐播放的流程图 
图3 实现单首音乐播放的流程图

2.2、问题二的代码:

#include <reg51.h>
#include <intrins.h>
void delay(int);
code tab1[] = {0xFC,0x44,0x04,0xFC,0x44,0x04,0xFD,0x83,0x04,0xFD,0x83,0x04,0xFD,
0xC8,0x04,0xFD,0xC8,0x04,0xFD,0x83,0x04,0x00,0x00,0x04,0xFD,0x34,0x04,0xFD,
0x34,0x04,0xFD,0x09,0x04,0xFD,0x09,0x04,0xFC,0xAD,0x04,0xFC,0xAD,0x04,0xFC,
0x44,0x04,0x00,0x00,0x04,0xFF,0xFF};
code tab2[] = {0xFC,0x4A,0x04,0xFC,0x4A,0x04,0xFC,0x4A,0x08,0xFB,0x00,0x08,0xFD,
0x08,0x04,0xFD,0x08,0x04,0xFD,0x08,0x08,0xFC,0x4A,0x08,0xFC,0x4A,0x04,0xFD,0x08,
0x04,0xFD,0x80,0x08,0xFD,0x80,0x08,0xFD,0x30,0x04,0xFD,0x08,0x04,0xFC,0xAE,0x08,
0x00,0x00,0x08,0xFF,0xFF};
sbit P1_1 =  P1^1;
int H,L;
void main()
{
    EA = 1;
    ET1 = 1;
    EX0 = 1;
    EX1 = 1;
    PT1 = 1;    
    TCON = 0x05;
    TMOD = 0x10;
    P1_1 = 1;
    while(1)    ;
}

void star() interrupt 0
{
    int t;
    int i;
    for (i = 0; i < 17;i++)
    {
        H = tab1[i*3];
        L = tab1[i*3 + 1];
        if (H == 0x00 && L == 0x00)
            TR1 = 0;
        else if (H == 0xFF && L == 0xFF)
            break ;
        else
        {
             TR1 = 1;
             TH1 = H;
             TL1 = L;
        }
        t = tab1[i * 3 + 2];
        delay(t);   
    }
}
void new() interrupt 2
{
    int t;
    int i;
    for (i = 0; i < 17;i++)
    {
        H = tab2[i*3];
        L = tab2[i*3 + 1];
        if (H == 0x00 && L == 0x00)
            TR1 = 0;
        else if (H == 0xFF && L == 0xFF)
            break ;
        else
        {
             TR1 = 1;
             TH1 = H;
             TL1 = L;
        }
        t = tab2[i * 3 + 2];
        delay(t);   
    }
}
void rec() interrupt 3
{
    P1_1 = !P1_1;
    TH1 = H;
    TL1 = L;
}
void delay(int n)
{
    while (n--)
    {
        int i,j;
        for (i = 10; i > 0;i--)
            for(j = 625 ; j > 0;j--);
    }
}

2016-11-22 23:56:32 hjf161105 阅读数 440
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3038 人正在学习 去看看 朱有鹏

      今天做了两个简单的单片机实验,在用c51编程的时候,我感觉对C语言又有了一些新的认识。

      c51是一种可以直接控制硬件的语言,其语法与C语言差不多。在c51里面可以直接对寄存器和内存进行操作,而C语言中如果要操控硬件必须通过指针或者其他方式进行。相比而言,c51与C语言相比少了一些语法规则,多了一些对硬件控制的自由。

/********************************
File Name:            led
Author:               xxx    date:2016 11 22
Description:按下k1 led灯亮三秒     k1接p3^2   LED接p^0
Fuction List:         inter0()外部中断0
                      inter1()定时终端0
********************************/
#include<stc51.h>

sbit led = P2^0;
sbit key = P3^2;

unsigned int flag;
unsigned int count=0;

void Timer0Init(void)		//500微秒@11.0592MHz
{
	AUXR |= 0x80;		//定时器时钟1T模式
	TMOD &= 0xF0;		//设置定时器模式
	TL0 = 0x66;		//设置定时初值
	TH0 = 0xEA;		//设置定时初值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
}

void main()
{
      Timer0Init();
	  EA=1;
	  EX0=1;
	  ET0=1;
	  IT0=1;
	  PX0=1;
	  while(1)
	  {
	       if(flag)
		   {
		   	   led = 1;
		   }
		   else
		   {
		       led = 0;
		   }
	  }

}
void inter0() interrupt 0
{
    flag = 1;
}

void inter1() interrupt 1
{
     TL0 = 0x66;		//设置定时初值
	 TH0 = 0xEA;		//设置定时初值
	 count++;
	 if(count == 6000)
	     flag = 0;

}


2014-10-07 21:02:34 lyix_9 阅读数 12248
  • 单片机到底是个什么东西-1.2.第1季第2部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第2个课程,用通俗易懂的语言讲了很多和单片机有关的技术概念,如CPU、ROM、RAM、外设、电路板、软件硬件工作的差别等。目的是希望大家在轻松愉悦的氛围中对单片机加深认识。

    3038 人正在学习 去看看 朱有鹏


实验一 IAR开发环境的搭建以及

CC2530单片机程序编程实验

一、实验目的

1、了解和熟悉IAR开发环境

2CC2530芯片程序的编写和烧录

二、实验内容

1、熟悉IAR开发环境,学习创建工程添加文件以及配置必要的参数

2、将CC2530当成单片机进行开发,编写简单的C语言程序进行测试

三、实验设备

硬件:

1、无线传感网实验箱                1

2PC                           1

软件:

1SmartRF FLASH Programmer                

2Packet Sniffer       

3SmartRF Studio 7

4IAR Embedded WorkBench     

四、实验原理

4.1IAR开发环境

Keil C类似,IAR也是一个用单片机程序开发的集成开发环境,它对CC2530提供完美的支持,因此在大对数针对CC2530(或者同类型)芯片的开发中有着广泛的用途。

4.2CC2530 SoC

CC2530 是用于2.4-GHz IEEE 802.15.4ZigBeeRF4CE 应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他强大的功能。CC2530 有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。

在不使用它的射频功能的情况下,完全可以把CC2530当成一个51单片机来使用,本实验也是站在这里角度来进行的。

五、实验步骤

5.1、搭建IAR开发环境

5.1.1、创建新的工程

启动运行 IAR Embedded WorkBench开发环境,如果出现Embedded WorkBench Startup界面,选择CancelProject->Create NewProject->Tool Chain 8051->OK,并将该工程放置在一个全新的文件目录下,如图1所示:

1,创建New Project

5.1.2 创建新文件并添加到工程

File->New->File,创建一个新的文件,Save as到工程所在目录下,并为其命名,如下图2所示,

2 创建新的C源文件

Project->Add Files,选中刚刚创建的源码文件,点击OK,这样就会将该文件添加到本工程中,并且在视窗的左侧的工程栏中列出该文件,如图3所示,

3 将文件添加到工程

 

5.1.3 设置工程选项参数

在视窗左侧的工程栏中,单击整个工程的根目录,然后选择Project->Options,得到如图4所示配置界面,

4,进入工程选项界面

完成以下配置

General Options项中

Target标签下,Device中选择“Texas Instruments”文件夹下的CC2530.i51

Data model栏选择Large,如图5所示

5 General Options->Target

 

Data Pointer标签中,Number of DTPRs选择1,如图6所示

6GeneralOptions->Data Pointer

Stack/Heap标签中,XDATA填入0X1FF,如图7所示

7 General Options->Stack/Heap

Linker

Output标签中点选Override default,并在下面栏中填写生成的以.hex为后缀的二进制文件的名称。

并且勾选Allow C-SPY-specific extraoutput file,如图8所示。

注意!!!这样子生的二进制文件是在IAR下调试用的,如果想要生成利用smartRF Flash Programmer 软件烧写的二进制可执行文件,请勾选Other

8 Linker->Output

Config标签中,勾选“Override default,选择“$TOOLKIT_DIR$\config\lnk51ew_cc2530.xcl,如图9所示

9 Linker->Config

 

Debugger

Setup标签->drive->Texas Instrument,如图10所示

10 Debugger->Setup

 

5.2、编译调试源代码

CC-Debugger将实验箱内的Zigbee协调器和PC机相连。

5.3节中的流水灯源码程序拷贝至工程中test.c文件中,点击编译键,如果没有任何错误提示,点击调试键,此时会出现调试工具栏,点击运行按键,观察开发板上的LED1LED2LED3是否以流水灯的形式运行。

注意,如果在调试过程中出现如图11所示窗口,说明连接不良,请检查连接链路。

11 Debugger错误提示窗口

   

5.3测试源码

#include <ioCC2530.h>

#define uint  unsigned int

#define uchar unsigned char

//定义控制灯的端口

#define RLED P1_0  //定义LED1P10口控制

#define GLED P1_1  //定义LED2P11口控制

#define YLED P1_4  //定义LED3P14口控制

//函数声明

void Delay(uint);        //延时函数

void InitIO(void);             //初始化LED控制IO口函数

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

//延时

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

void Delay(uint n)

{

       uinti;

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

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

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

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

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

}

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

//初始化IO口程序

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

void InitIO(void)

{

   P1DIR |= 0x13;  //P10P11P14定义为输出

   RLED = 1;

   GLED = 1;

   YLED = 1;     //LED灯初始化为开

}

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

//主函数

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

void main(void)

{

       InitIO();              //初始化LED灯控制IO  

       while(1)                //死循环

       { 

           RLED = !RLED;           // LED1灯闪一次

          Delay(10000);          

           GLED = !GLED;           // LED2灯闪一次

           Delay(10000);           

           YLED = !YLED;           // LED3灯闪一次

           Delay(10000);

          

       }

}

5.4 更多测试源码

\…\无线传感网实验箱\源代码\CC253X Test,目录下有更多可供测试的源码和说明,学生可以根据兴趣,自行进行测试和源码学习。

六、实验报告要求

 

没有更多推荐了,返回首页