上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: /*********************************************************************** 名称:main() 功能:主函数,将x9015设置为中间档位(16),则测量出来的值约为实际的电压信号的一半。***********************************************************************/ 1 int main(void) 2 { uint32 data; 3 x9015_Init(); 4 NumbTube_Init(); //数码管初始化 5 ... 阅读全文
posted @ 2013-08-10 13:13 奔流聚海 阅读(618) 评论(0) 推荐(0) 编辑
摘要: if(DeviceFlag == 0x55){ amount++; switch(amount%2) { case 1:Command_Out =1; break; case 0: Command_Out =0; break; } if(amount==8)//16*8=128ms { amount=0; DeviceStatus = TurnOn; DeviceFlag = 0xFF; }} //发出波形的方式很多种, 1、可用两个定时器,第一用作定时占空比,并且执行一次就关闭,由另外一个定时器开启,另外一个定时器作为定时周期。 1 //---... 阅读全文
posted @ 2013-08-07 17:47 奔流聚海 阅读(2040) 评论(0) 推荐(0) 编辑
摘要: 1 #include //用的是PICC编译器 2 __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS); 3 //PIC单片机都需要配置该位,HS是外部晶振模式 4 // 使能PROTECT保护程序存储器 5 //BOREN使能掉电... 阅读全文
posted @ 2013-08-03 22:23 奔流聚海 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 1 void keyScan(void) 2 { 3 char i; 4 uint8 m; 5 uint8 R0 = 0; 6 TRISB=0x38; //xls 2012-11-26 增加复位键RB5 7 8 R0 = PORTB; //RB3,RB4,RB5按键读取 9 R0 &=0x38; //保留键值10 R0 = ~R0; //正逻辑11 /*以下是RC滤波处理,R0,R1對應於KEY1,KEY2的BUF*/12 datakey.allkey = (R0>>3);//将读到的键值移至最右端 比如当... 阅读全文
posted @ 2013-07-08 17:57 奔流聚海 阅读(2377) 评论(0) 推荐(0) 编辑
摘要: 一,两者的用法 枚举类型定义用关键字enum标识,形式为:enum 标识符{ 枚举数据表};枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,从0开始,依次递增。enum status{ copy, delete};枚举类型status仅有两个数据,一个是copy,一个是delete,序号为0、1,代表复制与删除。enum status{ copy=6, delete};则copy的序号为6,delete的序号为7。enum用来定义一系列宏定义常量区别用,相当于一系列的#define xx xx,当然它后面的标识符也可当作一个类型 阅读全文
posted @ 2013-06-28 21:08 奔流聚海 阅读(2930) 评论(0) 推荐(0) 编辑
摘要: //基于MCC18编译器,使用HI-PICC不可用 //-------------------------------------------- #include //---------------------------------------------------------------------------- void main (void); void InterruptHandlerHigh (void); unsigned int Timeout; //-----------------------------------------------------... 阅读全文
posted @ 2013-06-22 16:26 奔流聚海 阅读(4068) 评论(0) 推荐(0) 编辑
摘要: PIC中的#pragma idata 和#pragma udata: idata表示已经初始化的数据。udata表示没有初始化的数据。 当一个数据块没有足够的空间用于存放一个连续的数据时(数组);此时便可用#pragma idata 或#pragma udata来定义一个新的存放数据块的区域。但是#pragma idata 或#pragma udata申请的空间也还是有限的,一般不能大于256,如果超过则只能另外想法办了。为什么不能大于256?可以看相关的IC链接文件.lkr,从它里面可以看到它是如何定义bank大小的,没有一个是大于0xff的,因为PIC18的命令是双字节的即只有16位,但. 阅读全文
posted @ 2013-05-11 10:54 奔流聚海 阅读(1318) 评论(0) 推荐(0) 编辑
摘要: USB设备的插入检测机制 首先,在USB集线器的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻.对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。USB高速设备先是被识别为全速设备,然后通过HOST和DE. 阅读全文
posted @ 2013-05-06 11:14 奔流聚海 阅读(3615) 评论(0) 推荐(0) 编辑
摘要: PIC18FX455/X550 系列器件包含全速和低速兼容的USB串行接口引擎(Serial Interface Engine,SIE),它允许在任何USB主机和PIC单片机之间进行高速通信。 可以利用内部收发器或通过外部收发器将SIE 直接连接到USB。内部的3.3V稳压器也可以在5V的应用中被用作内部收发器的电源。 USB模块还包含了某些特殊硬件以提高其工作性能。在器件的数据存储空间(USB RAM)中提供了双端口存储器,以便单片机和 SIE 之间可以直接进行存储器访问。 此外,还提供了缓冲器描述符,允许用户任意设置USB RAM 空间中供端点使用的存储区。 此外还提供了并行通信端口... 阅读全文
posted @ 2013-05-03 22:38 奔流聚海 阅读(1702) 评论(0) 推荐(0) 编辑
摘要: 1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下:类型名*函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。“(函数参数表列)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:int *pfun(int, int);由于“*”的优先级低于“()”的优先级,因而pfun首先和后面的“()”结合,也就意味着,pfu 阅读全文
posted @ 2013-03-16 11:22 奔流聚海 阅读(397) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页