51单片机的FIFO(先入先出)循环队列实现

来源:本站
导读:目前正在解读《51单片机的FIFO(先入先出)循环队列实现》的相关信息,《51单片机的FIFO(先入先出)循环队列实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机的FIFO(先入先出)循环队列实现》的详细说明。
简介:本文给大家分享了51单片机的FIFO(先入先出)循环队列实现的源代码。

//////////////////////////////////////////////////////////// 文件:config.h//////////////////////////////////////////////////////////#ifndef __CONFIG_H#define __CONFIG_H//这一段无需改动//This segment should not be modified#ifndef TRUE#define TRUE  1#endif#ifndef FALSE#define FALSE 0#endiftypedef unsigned char  uint8;                   /* defined for unsigned 8-bits integer variable  无符号8位整型变量  */typedef signed   char  int8;                    /* defined for signed 8-bits integer variable  有符号8位整型变量  */typedef unsigned short uint16;                  /* defined for unsigned 16-bits integer variable  无符号16位整型变量 */typedef signed   short int16;                   /* defined for signed 16-bits integer variable   有符号16位整型变量 */typedef unsigned int   uint32;                  /* defined for unsigned 32-bits integer variable  无符号32位整型变量 */typedef signed   int   int32;                   /* defined for signed 32-bits integer variable   有符号32位整型变量 */typedef float          fp32;                    /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */#i nclude "FIFOQUEUE.h"#endif    //////////////////////////////////////////////////////////// 文件:FIFOQUEUE.h//////////////////////////////////////////////////////////#ifndef _FIFOQUEUE_H#define _FIFOQUEUE_H#define ElemType       uint8#define QueueSize      20#define QueueFull      0#define QueueEmpty     1#define QueueOperateOk 2struct FifoQueue{    uint16 front;    uint16 rear;    uint16 count;    ElemType dat[QueueSize];};//Queue Initalizeextern void QueueInit(struct FifoQueue *Queue);// Queue Inextern uint8 QueueIn(struct FifoQueue *Queue,ElemType sdat);// Queue Outextern uint8 QueueOut(struct FifoQueue *Queue,ElemType *sdat);#endif   //////////////////////////////////////////////////////////// 文件:FIFOQUEUE.C//////////////////////////////////////////////////////////#i nclude "config.h"//Queue Initvoid QueueInit(struct FifoQueue *Queue){    Queue->front = Queue->rear;    Queue->count = 0;}// Queue Inuint8 QueueIn(struct FifoQueue *Queue,ElemType sdat){    if((Queue->front == Queue->rear) && (Queue->count == QueueSize))    {                    // full        return QueueFull;    }else    {                    // in        Queue->dat[Queue->rear] = sdat;        Queue->rear = (Queue->rear + 1) % QueueSize;        Queue->count = Queue->count + 1;        return QueueOperateOk;    }}// Queue Outuint8 QueueOut(struct FifoQueue *Queue,ElemType *sdat){    if((Queue->front == Queue->rear) && (Queue->count == 0))    {                    // empty        return QueueEmpty;    }else    {                    // out        *sdat = Queue->dat[Queue->front];        Queue->front = (Queue->front + 1) % QueueSize;        Queue->count = Queue->count - 1;        return QueueOperateOk;    }}   //////////////////////////////////////////////////////////// 文件:Main.C//////////////////////////////////////////////////////////#i nclude #i nclude "config.h"void main(void){    struct FifoQueue MyQueue;    ElemType sh;    uint8 i;    QueueInit(&MyQueue);    while(1)    {        for(i = 0;i < 30;i++)        {            if(QueueIn(&MyQueue,i) == QueueFull) break;        }        for(i = 0;i < 30;i++)        {            if(QueueOut(&MyQueue,&sh) == QueueEmpty) break;        }    }    while(1);}

提醒:《51单片机的FIFO(先入先出)循环队列实现》最后刷新时间 2024-03-14 00:57:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机的FIFO(先入先出)循环队列实现》该内容的真实性请自行鉴别。