单片机
rayylee
awk 'BEGIN{O="o"~"o";o="O"=="O";O+=+o;o_+=o""o;for(;++_o!=o_-O;)O_=O_"%c";printf(O_,o_*(o_-o)+O+O,o_*(o_-O)-O,o_*o_,o_*o_,o_*(o_-o)-O,o_*(o_-O)+O,o_*(o_-O)+O,o_-o)}'
展开
-
无线远程温湿度监测!(DS18B20+DHT21数码管显示)
//发送程序#include#include#define uint unsigned int#define uchar unsigned charsbit TXEN=P1^0; //配置口定义sbit TRX_CE=P3^2; //配置口定义sbit原创 2011-07-20 12:08:30 · 1569 阅读 · 0 评论 -
IAR FOR ARM 各版本,需要的大家可以收藏了
首先感谢大家的支持与关注,现在应该重新编辑这篇文章了,这篇文章是很久以前不知在什么地方Copy过来的,很多问题不知怎么解决,现在我用的是KEIL for arm。用过Keil和IAR,个人感觉是IAR还是很不错的。下载地址是:http://files.iar.com/ftp/pub/box/CD-EWARM-6301-3142.zip V6.30.1(该地址看着像是IA转载 2012-03-31 15:55:11 · 118854 阅读 · 24 评论 -
写出高效优美的C语言代码(单片机)
程序能跑起来并不见得你的代码就是很好的c代码了,衡量代码的好坏应该从以下几个方面来看1,代码稳定,没有隐患。2,执行效率高。3,可读性高。4,便于移植。下面发一些我在网上看到的技巧和自己的一些经验来和大家分享;1、如果可以的话少用库函数,便于不同的mcu和编译器间的移植2、选择合适的算法和数据结构应该熟悉算法语言,知道各种算法的优缺点,具翻译 2013-06-12 16:22:49 · 2766 阅读 · 0 评论 -
STM32 位带应用
Cortex-M3 支持了位操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。 在 CM3 支持的位带中,有两个区中实现了位带。 其中一个是 SRAM区的最低 1MB 范围, 0x20000000 ‐ 0x200FFFFF(SRAM 区中的最低 1MB); 第二个则是片内外设区的最低 1MB范围, 0x40000000 ‐ 0x400FFFFF(片上外设区中的转载 2013-07-27 15:49:54 · 1155 阅读 · 0 评论 -
贴片电阻上写着“0”,所谓的“零欧电阻”,在电子电路中的用处很大
这就是0欧电阻,不能用普通电阻替代, 0欧电阻作用大致如下:1,在电路中没有任何功能,只是在PCB上为了调试方便或兼容设计等原因。2,可以做跳线用,如果某段线路不用,直接不贴该电阻即可(不影响外观)3,在匹配电路参数不确定的时候,以0欧姆代替,实际调试的时候,确定参数,再以具体数值的元件代替。4,想测某部分电路的耗电流的时候,可以去掉0ohm电阻,接上电流表,这样方便测耗电流。5,在布线翻译 2013-08-26 09:48:46 · 23903 阅读 · 0 评论 -
Keil 中的预处理命令const
在keil中,宏定义是一个重要内容。无参数的宏作为常量,而带参数的宏则可以提供比函数更高的调用效率。但预处理只是进行简单的文本代替,而不做语法检查,所以会存在一些问题。 例如:#define BUFSIZE 100 这里的BUFSIZE只是一个名字,并不占用存储空间并且能被放在一个头文件中。在编译期间编译器将用字符串“100”来代替所有的BUFSIZE。翻译 2013-08-27 10:55:52 · 3554 阅读 · 0 评论 -
UCOS中断函数的编写
在以uC/OS为操作系统的项目中,系统可能要处理各种不同的中断请求,如果某个中断处理程序需要调用uC/OS的各种Post函数向任务发出消息,那么uC/OS建议中断服务程序的写法是:1、保存全部CPU寄存器2、调用OSIntEnter或OSIntNesting直接加13、执行用户代码做中断服务4、调用OSIntExit5、恢复所有CPU寄存器6、执行中断返回指令暂转载 2013-08-29 07:55:10 · 5310 阅读 · 0 评论 -
stm32_19264液晶LCD驱动程序
弄了两天,终于调通了stm32 LCD19264液晶驱动程序系统采用stm32f103ze微处理器,3.3v供电,液晶为:深圳兴宇合公司的JBG19264E00-08W-A31 , 无字库,视角6:00注意:若显示出现乱码的现象请适当修改延时函数/****************************lcd.h*******************************原创 2013-09-07 16:08:28 · 13317 阅读 · 3 评论 -
stm32 ARM中的RO、RW和ZI DATA
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保翻译 2013-09-04 22:35:09 · 4860 阅读 · 0 评论 -
多线程的那点儿事(基础篇)
多线程编程是现代软件技术中很重要的一个环节。要弄懂多线程,这就要牵涉到多进程?当然,要了解到多进程,就要涉及到操作系统。不过大家也不要紧张,听我慢慢道来。这其中的环节其实并不复杂。 (1)单CPU下的多线程 在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统中有多个任务要处理的话,那么就需要按照某种规则依次调度这些任务进行处理。什么规则呢?可以是一些简转载 2014-03-13 14:39:45 · 747 阅读 · 0 评论 -
uIP学习笔记
原文链接:http://blog.csdn.net/xukai871105/article/details/17471865#comments1.前言最近半年的时间一直在学习应用嵌入式以太网。虽然学习的动机仅仅是玩玩,但是以太网真的深深吸引了我。这里我和各位分享一下uIP的使用经验。uIP是一个简单好用的嵌入式网络协议栈,易于移植且消耗的内存空间较少,非常适合学习和使用。可以肯定的转载 2014-03-13 15:31:47 · 5031 阅读 · 1 评论 -
多线程的那点儿事(之数据同步)
多线程创建其实十分简单,在windows系统下面有很多函数可以创建多线程,比如说_beginthread。我们就可以利用它为我们编写一段简单的多线程代码,[cpp] view plaincopy#include #include #include unsigned int value = 0; v转载 2014-03-13 14:42:23 · 649 阅读 · 0 评论 -
多线程的那点事儿(之数据互斥)
在多线程存在的环境中,除了堆栈中的临时数据之外,所有的数据都是共享的。如果我们需要线程之间正确地运行,那么务必需要保证公共数据的执行和计算是正确的。简单一点说,就是保证数据在执行的时候必须是互斥的。否则,如果两个或者多个线程在同一时刻对数据进行了操作,那么后果是不可想象的。 也许有的朋友会说,不光数据需要保护,代码也需要保护。提出这个观点的朋友只看到了数据访问互斥的表象。在程序的运行转载 2014-03-13 14:52:32 · 711 阅读 · 0 评论 -
#define与enum,你不知道的那些事
什么时候需要用到enum呢,就是变量的数值在几个范围之间.red,blue,black.这样用enum比较好.当然也可以用define.但是define维护起来比较麻烦.#define 适合比较少的变量的时候.用enum关键字说明常量(即说明枚举常量)有以下几点好处: (1) 使程序更容易维护,因为枚举常量是由编译程序自动生成的,而标识符常量必须由程序员手工赋值。例如,原创 2014-03-25 11:33:57 · 12780 阅读 · 0 评论 -
“驱动能力”是什么意思???
首先,所谓的驱动能力,指的是输出电流的能力。比方说,某型单片机通用IO口在高电平时的最大输出电流是20mA,这个20mA的指标,就表征了该IO口的驱动能力。其次,如果负载过大(就像楼主所说的小电阻),则负载电流有可能超过其最大输出电流,这时我们说驱动能力不足。再次,出现驱动能力不足,直接后果是输出电压下降,对逻辑电路来说,就是无法保持其高电平,以致出现逻辑混乱,不能实现预期的效果。这种现象原创 2014-04-10 16:46:06 · 19039 阅读 · 3 评论 -
操作系统——进程的状态及转换
1. 为什么要分开就绪和阻塞状态 答:因为就绪态只需要等待处理机,而阻塞态可能在等待输入输出,即使分配给处理机也是徒劳,所以两状态图不妥。对于调度进程,只需要等待就绪队列里的进程,因为阻塞状态可以转换到就绪队列里去。 2. 进程五状态 1) 新状态:进程已经创建,但未被OS接纳为可执行进程。(还没有申请到相应的资源)。2)转载 2013-04-22 15:23:05 · 16985 阅读 · 3 评论 -
各大公司应聘电子类题目精选
模拟电路1、 基尔霍夫定理的内容是什么?(仕兰微电子)基尔霍夫电流定律是一个电荷守恒定律,即在一个电路中流入一个节点的电荷与流出同一个节点的电荷相等.基尔霍夫电压定律是一个能量守恒定律,即在一个回路中回路电压之和为零.2、平板电容公式(C=εS/4πkd)。(未知)3、最基本的如三极管曲线特性。(未知)4、描述反馈电路的概念,列举他们的应用。(仕兰微电子)5、负反原创 2012-12-28 13:09:47 · 2430 阅读 · 0 评论 -
8255A例程
#include#include //定义8255A的绝对地址时用,必须包含此库函数#include/***********宏声明***********/ #define uint unsigned int#define uchar unsigned cha原创 2011-08-08 19:24:38 · 3558 阅读 · 3 评论 -
一个学单片机的不错网站
网址:http://www.51hei.com/原创 2011-08-08 19:28:59 · 1495 阅读 · 0 评论 -
LCD12864使用(链)
网址: http://hi.baidu.com/echoas原创 2011-08-08 19:32:34 · 784 阅读 · 0 评论 -
12864液晶使用例程
#include#include"mytype.h"#include"delay.h"extern void lcd_init(); //LCD初始化函数extern void w_com(uc原创 2011-08-10 19:01:57 · 3290 阅读 · 2 评论 -
(转)51单片机C中关于.c文件和.h文件
1)h文件作用 1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明; 2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。2)h文件里应该有什么 常量,结构,类型定义,函数,变量申明。 3)原创 2011-08-10 18:49:43 · 2914 阅读 · 0 评论 -
protel中单位换算!mil=?mm!走线的粗细
老是问mil=?mm 100mil=2.54mm 1mil=0.0254mm 至于说一般线条画多粗比较好,这个怎么说呢~线条多粗取决于你画的线要通过多少电流,当然了一条一条的算会累死你,也没有这么干的,嘿嘿~~~一般来说,数字控制电路,数据线等等的连线我习惯用10mil或者8mil,再细的线工厂加工是要收费的(有的小工厂干脆就加工不出来!),电源一般用15-50mil,这要看你布转载 2012-05-06 12:00:08 · 8493 阅读 · 3 评论 -
pcb板子制作各层的解释和用法
由上到下正面丝印层,正面的印字正面阻焊层,正面无需焊接的涂覆正面布线层,正面的铜箔背面布线层,背面的铜箔背面阻焊层,背面无需阻焊的涂覆背面丝印层,背面的印字2009-09-02 15:48 PCB各层含义PCB各层含义 一、1 Signal layer(信号层)信号层主要用于布置电路板上的导线.Protel 99 SE提供了32个信号层,包括原创 2012-07-17 21:48:17 · 6952 阅读 · 0 评论 -
51单片机精确延时程序(晶振12MHz,一个机器周期1us.)
51单片机精确延时程序(晶振12MHz,一个机器周期1us.) 几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响.一. 500ms延时子程序程序:.(晶振12MHz,一个机器周期1us.) void delay500ms(void){ unsigned char i,j,k;原创 2012-07-18 17:11:10 · 43162 阅读 · 2 评论 -
常见贴片电容封装尺寸
贴片电容封装尺寸:毫米(英寸)封装(L) 长度公制(毫米)英制(英寸)(W) 宽度公制(毫米)英制(英寸)(t) 端点公制(毫米)英制(英寸)02010.60 ± 0.03(0.024 ± 0.001)0.30 ± 0.03(0.011原创 2012-07-19 14:12:29 · 6375 阅读 · 0 评论 -
IAR for AVR delay函数
众所周知,在GCC AVR里有个delay.h的头文件,可以直接使用.IAR for AVR里面只有__delay_cycles所以,我自己写了个delay.h,包含三个可调用的函数#ifndef __DELAY_H__#define __DELAY_H__#include #ifndef F_CPU#define F_CPU 1转载 2012-08-04 12:49:15 · 2577 阅读 · 0 评论 -
IAR环境中实现数据或函数的定位
定位方法如下三种1、__no_init char alpha @ 0x0200; 2、#pragma location=0x0202const int beta; 3、const int gamma @ 0x0204 = 3; 或;1、__no_init int alpha @ "MYSEGMENT"; //MYSEGMENT段可在XCL中开辟2转载 2012-08-05 13:38:12 · 4586 阅读 · 0 评论 -
AD转换中参考电压的作用 .
参考电压是这个样子的,假如你选择的参考电压是5v,你的ad是12位的,那么当你的输入电压是5v的时候你的单片机的显示应该是4095 ,如果是0v的输入那单片机里面的值就是0 ,中间点的值成线性关系,就是说假如你的输入是m,那单片机单片机的值就是4096*m/5,这样反过来你知道了单片机的值就可以算出你的输入是多少了!还有在信号地和模拟地之间加上一个电感是为了去干扰,就像在vcc和GND之间用电翻译 2012-08-25 11:33:26 · 14241 阅读 · 1 评论 -
几个串口调试助手
yuanzi常用的串口调试助手.第一个就是我自己写的了,哈哈.给自己打点小广告.优点:支持中文发送接收.支持多达16个串口.界面简洁明了.使用方便.缺点:需要安装,体积大.bug较多.第二个就是丁丁的sscom.优点:体积小,功能多,支持串口自动搜索,支持DTR,RTS控制.缺点:界面不够友好.第三个就是 GJWTECH的串口调试助手.优点:转载 2014-05-22 16:24:56 · 12591 阅读 · 2 评论