精华内容
下载资源
问答
  • 单片机高级编程.pdf

    2020-04-23 13:16:07
    单片机的状态机介绍,之前的博文比较乱码,这个文档是不乱码的。 本文档介绍如何去掉程序的延时,提高程序的并发性。
  • 单片机高级C语言编程

    2009-11-15 18:18:33
    单片机高级C语言 单片机高级C语言 单片机高级C语言
  • 单片机C语言编程高级教程,人民邮电出版社出版,适合于对单片机程序有一定基础的工程设计人员阅读。
  • AVR单片机C语言高级编程,我认为是比较好的,希望能给大家带来些许帮助。
  • 单片机编程魔法师之高级编程思想..
  • c51单片机高级语言编程应用实践 : 本书风格不错,程序部分可以借鉴。其他地方没必要多看
  • 单片机高级语言编程与μVision2应用实践
  • 单片机高级编程思想一书得源代码,与书中对应,可以节省打代码的时间。
  • 单片机高级语言编程与μVision2应用实践11
  • 单片机高级语言编程与μVision2应用实践10
  • 单片机高级语言编程与μVision2应用实践9
  • 单片机高级语言编程与μVision2应用实践8
  • 单片机高级语言编程与μVision2应用实践7
  • 单片机高级语言编程与μVision2应用实践6
  • 单片机高级语言编程与μVision2应用实践5
  • 单片机高级语言编程与μVision2应用实践4
  • 单片机高级语言编程与μVision2应用实践3
  • 单片机高级语言编程与μVision2应用实践2
  • 单片机高级语言编程与μVision2应用实践 pdf格式,有书签,好东西,大家共享
  • 不可或缺的飞思卡尔编程资料, Freescale_高级S12系列单片机编程
  • 单片机编程魔法师之高级编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向...

    《单片机编程魔法师之高级裸编程思想》以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向对象等重要编程思想。这些思想既可独立运用,又可有机结合成一个体系,是我们实践中解决问题的致胜法宝。《单片机编程魔法师之高级裸编程思想》以实例为基础,分6章对这一思想体系进行了阐述。阐述通常以提出问题开始,然后针对解决问题的现状,从心理学的角度对问题展开讨论,力求将容易遇见的问题一网打尽。《单片机编程魔法师之高级裸编程思想》通过一些列的优化过程对思想要点进行完整描述,然后通过软件仿真手段给读者一个清晰的认识,并在最后进行归纳总结。

    《单片机编程魔法师之高级裸编程思想》既介绍了思想,又介绍了使用思想的方法。无论您是单片机自动化领域的初行者,还是资深的单片机自动化领域的工程师,《单片机编程魔法师之高级裸编程思想》都将成为您的得力帮手。希望这种既有理论又有方法论的阐述方式能帮助读者在事业上更上一层楼。

    该书PDF格式的链接:链接:https://pan.baidu.com/s/1WIyZvfq__jCOaZU_B4Mz1w   提取码:mldv

    下面是我的一些体会和总结:

    (一)数据驱动程序思想描述文章链接:数据驱动程序

     

     

    展开全文
  • 本PDF文档详细讲述了单片机C51指令系统,以及各种硬件和软件对单片机各种功能的补偿问题。总之,非常好,是周立功单片机公司做出的总结。
  • 51单片机图形编程

    2018-04-22 10:31:04
    51单片机图形编程 基于Java 一、XR Block运行环境的搭建 1、到http://www.oracle.com/technetwor ... nloads-2133151.html下载JDK,由于XR Block基于Java运行环境,所以电脑需要安装JDK。 要注意,32位系统安装X86的...
  • Keil.Cx51.V7.0单片机高级语言编程与uVision2应用实践,是学习RTX51—tiny实时操作系统的好书
  • 【书内资源】【配书源代码】单片机编程魔法师之高级编程思想
  • 单片机高级语言C51 Windows环境编程与应用,适合与单片机C语言的学习
  • Keil Cx51 V7.0单片机高级语言编程与uVision3应用实践 源代码
  • 单片机高级语言C51Windows环境编程与应用 很好的资源
  • 即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现编程功能。 这就要求我们将代码逻辑分解出其内在数据关系,这样我们就可以写出与数据无关的函数,这样的...

    我理解的所谓数据驱动程序的方法,简单而言:将数据与程序分析,将代码逻辑的组织转换成数字规律的统计。即将数据作为一个要处理的脚本(当做数据库),然后程序作为解释器,将脚本的内容用代码逻辑解释出来,实现编程功能。

    这就要求我们将代码逻辑分解出其内在数据关系,这样我们就可以写出与数据无关的函数,这样的函数通用性很大,利于复用,耦合性也比较低,利于修改,且修改后不易出错。

    这样的方法也有坏处,就是可读性变差,解决的办法就是多写点关于逻辑的注释。

    下面举个例子:(来自书籍--单片机编程魔法师之高级裸编程思想,挺好的一本书,可以看看,可以去下载下载链接处,待有缘人! )

    (1)要实现如下波形:

    (2)我们 一般的实现方法:将上面分成16段(依据是波形存在不一样的时候作为分界点),每段单独分析。代码如下(使用51单片机实现)。

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	while(1)
    	{
    		delay(0x00, 749);		// 阶段1
    		delay(0x01, 251);		// 阶段2
    
    		delay(0x00, 749);		// 阶段3
    		delay(0x03, 251);		// 阶段4
    
    		delay(0x00, 749);		// 阶段5
    		delay(0x01, 251);		// 阶段6
    
    		delay(0x00, 749);		// 阶段7
    		delay(0x07, 251);		// 阶段8
    
    		delay(0x00, 749);		// 阶段9
    		delay(0x01, 251);		// 阶段10
    
    		delay(0x00, 749);		// 論僇11
    		delay(0x03, 251);		// 論僇12
    
    		delay(0x00, 749);		// 阶段13
    		delay(0x01, 251);		// 阶段14
    
    		delay(0x00, 749);		// 阶段15
    		delay(0x0F, 251);		// 阶段16
    	}
    }
    

    (3)而采用数据驱动程序的方法:将每个阶段分离出数据,然后用一个函数统一处理。本例中使用数组来存储代表各个阶段的逻辑的数据,接着用一段代码就可解决,来代码如下:

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    #define STAGES		16
    unsigned char code P1_1234[] = {0, 1, 0, 3, 0, 1, 0, 7, 0, 1, 0, 3, 0, 1, 0, 15};
    unsigned int code Dts[] = {749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251, 749, 251};
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	int i;
    
    	while(1)
    	{
    		for(i=0; i<STAGES; i++)
    			delay(P1_1234[i], Dts[i]);
    	}
    }
    

    (4)好处:似乎没有看出了,牺牲了易读性,有得必有失,我们会的得到什么?

    再举几个例子:实现以下波形。对于这个波形,如果我们不采用数据驱动程序的方法,那么相当于重写(重新分阶段,不难但是繁琐),而使用这种高阶的方法后,解释器代码一个字母都不用改变。

    数据驱动程序的代码如下:

    #include <reg51.h>
    
    sbit P10=P1^0;
    sbit P11=P1^1;
    sbit P12=P1^2;
    sbit P13=P1^3;
    
    #define STAGES		8
    unsigned char code P1_1234[] = {0, 1, 3, 7, 15, 7, 3, 1};
    
    void delay(unsigned char d, unsigned int t)
    {
    	unsigned int i;
    
    	P1 = P1 & 0xF0 | d;
    	for(i=0; i<t; i++);
    }
    
    main(void)
    {
    	int i;
    
    	while(1)
    	{
    		for(i=0; i<STAGES; i++)
    			delay(P1_1234[i], 500);
    	}
    }

    (5)总结:

    虽然数据驱动代码这种高阶的方法不是万能,但是对于相似的编程要求,则给我们提供了一种可复用的方法,避免一些简单却繁琐的工作任务。

    还有, 用这种方法记得写注释,不然不仅别人看不懂, 就连几天后的你再次回顾时,都不知道是怎么写出来的。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,355
精华内容 4,542
关键字:

单片机高级编程