其中的usb端口通信已经作为一个模块来使用,用户只需用以下函数就可以对usb端口进行方便的读写: unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf) 此为usb端点输出函数,endp是要进行通信的端点,取值为3(普通端点,最大可一次传输16byte)或5(主端点,最大可一次传输64byte);len为一次输出数据长度;*buf为数据所在位置。 usb端点数据的读操作是由底层函数自动完成的(相关函数为unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf); 相应端点为2和4),所读到的数据存于GenEpBuf[](普通端点)、MainEpBuf[]或EpBuf[](主端点)中,用户可以直接读取使用。
上传时间: 2014-01-12
上传用户:yuanyuan123
这个是一个用Keil C51编写的16位串行AD芯片ADS1100的驱动程序示例,程序中含有写好的ADS1100.H标准驱动函数和LCD1602.H液晶驱动函数,用51模拟IIC总线进行数据采集。提供API式外部函数接口:void Init_ads1100(unsigned char mdata) unsigned int Rd_ads1100(void) 具体功能见程序中的*.C测试文件。
上传时间: 2014-06-25
上传用户:onewq
矩阵键盘驱动程序, unsigned char key(void) 只要调用这个函数即可实现
上传时间: 2014-08-04
上传用户:GavinNeko
LC72130+1823程序 void out(uchar dat) ulong in_data(void) void out_data(uchar dat1,uchar dat2,uchar dat3,uchar dat4) void display_tunner(unsigned long dat) void tunner_init(void) void display_mute(uchar dat) void RADI0_DIsplay_VOLUME(uchar volume) void RADI0_DIsplay(unsigned long dat) void auto_search(void)
上传时间: 2016-03-17
上传用户:181992417
void III_hufman_decode(struct Granule *gr,int part2_start, int freqline[SBLIMIT][SSLIMIT]) { unsigned int reg1, reg2,i unsigned int part3_length = part2_start + gr->part2_3_length unsigned used int h,*f=&freqline[0][0] if(gr->window_switching_flag && gr->block_type == 2) { /* short block regions */ reg1 = 36 reg2 = 576 } else { /* long block regions */ reg1 = sfBandIndex[fr_ps.header->sampling_frequency].l[gr->region0_count + 1] reg2 = sfBandIndex[fr_ps.header->sampling_frequency].l[gr->region0_count + gr->region1_count + 2] }
标签: III_hufman_decode int freqline Granule
上传时间: 2013-12-19
上传用户:jjj0202
#include <reg52.h> #include <stdio.h> #include <string.h> #define uchar unsigned char #define uint unsigned int #define isp_iap_byte_read 0x1 #define isp_iap_byte_program 0x2 #define isp_iap_sector_erase 0x3 #define wait_time 0x1
上传时间: 2016-05-18
上传用户:agent
很完整的51串口程序 包括如下: 串口中断服务程序,仅需做简单调用即可完成串口输入输出的处理 出入均设有缓冲区,大小可任意设置。 可供使用的函数名: char getbyte(void) 从接收缓冲区取一个byte,如不想等待则在调用前检测inbufsign是否为1。 getline(char idata *line, unsigned char n) 获取一行数据回车结束,必须定义最大输入字符数 putbyte(char c) 放入一个字节到发送缓冲区 putbytes(unsigned char *outplace,j) 放一串数据到发送缓冲区,自定义长度 putstring(unsigned char code *puts) 发送一个定义在程序存储区的字符串到串口 puthex(unsigned char c) 发送一个字节的hex码,分成两个字节发。 putchar(uchar c,uchar j) 输出一个无符号字符数的十进制表示,必须标示小数点的位置,自动删除前面无用的零 putint(uint ui,uchar j) 输出一个无符号整型数的十进制表示,必须标示小数点的位置,自动删除前面无用的零 delay(unsigned char d) 延时n x 100ns putinbuf(uchar c) 人工输入一个字符到输入缓冲区 CR 发送一个回车换行
上传时间: 2016-06-13
上传用户:epson850
编写一个C程序,用char *malloc(unsigned size)函数向系统申请一次内存空间(如size=1000,单位为字节),用循环首次适应法 addr = (char *)lmalloc(unsigned size) 和 lfree(unsigned size,char * addr)模拟可变分区内存管理,实现对该内存区的分配和释放管理。
上传时间: 2016-06-18
上传用户:fredguo
我所采用的内存管理思想是链表管理思想,内存分配方案是最佳适应方案(best fit)。其主要的数据结构为 struct node { char* p int memosize int flag struct node* next } 这是一个链表的结点的数据结构,用它来管理内存的分配与回收。P 表示所指的分配的内存的首地址,memosize 表示分配的内存块的大小,flag 为一个标志量,表示内存块是否被占用。用 1 和 0 来表示被占用和不被占用。next 表示下一个结点的首地址。 内存管理包括一个分配内存的mm_request(unsigned int)函数,一个初始化所要管理的内存的mm_init()函数,一个空闲列表排序函数sort(),一个释放内存的mm_release(void* )函数和一个判断内存是否被占用的IsFree(int)函数。
标签: 内存管理
上传时间: 2016-07-06
上传用户:qunquan
C51精确延时分析探讨 从精度考虑,它得研究结果是: void delay2(unsigned char i) { while(--i) } 为最佳方法。
上传时间: 2016-07-14
上传用户:牧羊人8920