//////////////////////////////////////////////////////////// 文件: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(先入先出)循环队列实现》的相关信息,《51单片机的FIFO(先入先出)循环队列实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机的FIFO(先入先出)循环队列实现》的详细说明。
简介:本文给大家分享了51单片机的FIFO(先入先出)循环队列实现的源代码。
提醒:《51单片机的FIFO(先入先出)循环队列实现》最后刷新时间 2024-03-14 00:57:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机的FIFO(先入先出)循环队列实现》该内容的真实性请自行鉴别。