单片机编程开发技巧经验分享

发布者:chwwdch最新更新时间:2018-11-19 来源: eefocus关键字:单片机  编程  开发技巧 手机看文章 扫描二维码
随时随地手机看文章

 工作了7个月之久,对单片机的编程也开始慢慢熟悉起来,以前总是知道单片机就是定时器,状态机,中断这些东西结合起来效率是相当高的,但是自从接手开发GPF这个芯片之后,我发现了另外一种单片机的开发技巧,高手请绕道。


我们都知道,在程序中,延时会影响单片机的实时性能,导致效率明显降低,但是在GPF这个芯片的开发中,系统延时和初始化被供应商做到了一块,所以调用程序,必须要做一定的loop才能使得程序能够正常的跑起来,其实我也不知道她们为什么要这么做。


在工作中,改一份源码不是随随便便就可以改的,当时做了这么一个程序,源码我就不公开了,写个案例解释:


void test()


{


int i = 0 ;


int tick ;


int BatteryStatus = 0;


int Voltage ;


int count = 0 ;


int Voltage_value ;


char ch ;


scanf("%d",&BatteryStatus);


while(1)


{


delay_20ms();


switch(BatteryStatus)


{


case

 1:


if(count == 50)


{


printf("0x%x\n",0xE1);


count = 0 ;


};break ;


case 2:


if(count == 50)


{


printf("0x%x\n",0x90); //发通用'1'信号


count = 0 ;


};break ;


default:


break ;


}


count++ ;


#if 0


ch = getch(); //假设我在这设立一个按键


if(ch == 'q')


{


printf("%x",0x48);


break ;


}


#endif


}


}


在while循环中,首先进去是延时20个ms,然后count计数器加加,当加到50次也就是一秒钟了,然后清零。此时若按下按键,不会受到干扰,程序正常运行,效率依然很高。如果这时候delay_20ms改成delay_1000ms,程序扫描按键每次就要等待1s钟,影响效率。计数值可以自我估计一下,不需要太准,这样的程序在延时不需要太精准的可以实现和定时器差不多一样的功能。


关键字:单片机  编程  开发技巧 引用地址:单片机编程开发技巧经验分享

上一篇:单片机PWM调制技术
下一篇:单片机连接蓝牙4.0心得分享

推荐阅读最新更新时间:2024-03-16 16:17

“Silicon Labs C8051F单片机技术研讨会”西安登场
专业电子元器件代理商 益登科技 今日宣布, 将与 高 效能模拟与混合信号 IC 领导厂商 Silicon Laboratories 携手合作,于 11 月 28 日 在西安举办 “C8051F 系列单片机技术研讨会 ” ,向用户呈现这些产品独特的功能。 据了解, C8051F 系列单片机因为其极高的指令运行速度,高性能的模拟功能和高集成性,受到用户的广泛欢迎。 随着 C8051F 系列单片机新产品的不断推出,一些新的应用也涌现出来。 此次研讨会将致力深入剖析 C8051F 的各种技术,介绍新近推出的 Ethernet 系列、 OTP 系列、 Automotive 系
[焦点新闻]
PIC18F458单片机休眠状态工作方式与激活
/*该程序实现PIC18F458的休眠状态工作方式,并由实验板上的按键产生"电平变化中断"将其从休眠状态中激活。休眠与激活的状态由与D口相连的8个LED显示。休眠时高4个 LED发光,低4个LED熄灭; 激活以后高4个LED熄灭,低4个LED发光*/ #include "p18f458.h" unsigned long i; /*系统初始化子程序*/ void initial() { INTCON=0x08; /*全局中断禁止,"电平变化中断"只执行唤醒功能*/ /*清除B口电平变化中断标志*/ TRISA=0x00; /*A口设置为输出*/ TRISB=0XF0; /*RB1输出,RB4输入*/ TRISD=0
[单片机]
关于工业机器人编程初学者应该知道的问题
 学什么? (1) ▼    PLC是自动化的灵魂,是一种专门为在工业环境下应用而设计的数字运算操作的装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或式的输入和输出,控制各种类型的或生产过程。 举个通俗的例子:PLC就像是人的大脑,而PLC编程就是语言命令,向大脑灌输语言命令,于是PLC这台大脑就开始指挥手脚开始做活了,再通俗一点就是 你要求你下属把车间的组装起来,你的要求命令的语言便是编程。 那么编程有哪些语言?通常有梯形图语言、指令表语言、功能模块图语言、顺序功能流程图语言、结构化文本语言,听着是不是很
[机器人]
大神自制51编程
AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。 对于很多像我这样一些不算太年轻的从80年代组装7管半导体收音机入门的电子爱好者来说,面对 单片机 似乎显得有点怯场,但是事实上我以为他甚至比组装一个收音机更简单: 以下是它的硬件电路图
[单片机]
大神自制51<font color='red'>编程</font>器
单片机与计算机之间的串行通信原理图和PCB图
图1 单片机与计算机之间的串行通信原理图
[模拟电子]
<font color='red'>单片机</font>与计算机之间的串行通信原理图和PCB图
浅谈STM32单片机学习---PWM输出
首先熟悉一下定时器的PWM相关部分。看图最明白: 其实PWM就是定时器的一个比较功能而已。 CNT里的值不断++,一旦加到与CCRX寄存器值相等,那么就产生相应的动作。这点和AVR单片机很类似。既然这样,我们要产生需要的PWM信号,就需要设定PWM的频率和PWM的占空比。 首先说频率的确定。由于通用定时器的时钟来源是PCLK1,而我又喜欢用固件库的默认设置,那么定时器的时钟频率就这样来确定了,如下: AHB(72MHz)→APB1分频器(默认2)→APB1时钟信号(36MHz)→倍频器(*2倍)→通用定时器时钟信号(72MHz)。 这里为什么是这样,在RCC模块学习记录里有详细记载,不多说。 因此图中的CK
[单片机]
浅谈STM32<font color='red'>单片机</font>学习---PWM输出
单片机电子秒表时钟 数码管显示
电子秒表时钟 数码管显示 可设置时间 可用于秒表暂停、清零蜂鸣器按键音 单片机源程序如下: #include reg51.h #include delay.h #include intrins.h unsigned char code LED ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //定义共阴极LED7段显示码 unsigned char dispbit ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义数码管位码 unsigned char hour=23,min=58,sec=52,
[单片机]
<font color='red'>单片机</font>电子秒表时钟 数码管显示
ACTEL推出第三代FPGA编程工具
Silicon Sculptor 3 的数据吞吐量大,并具备更高的并行编程能力, 可从先前版本进行无缝升级 Actel 公司宣布推出 Silicon Sculptor 3 现场可编程门阵列 (FPGA) 编程工具,提供庞大的数据吞吐量,且使用容易,并同时能降低整体的拥有成本。 Silicon Sculptor 3 包含一个高速 USB 2.0 接口,可让用户在一台 PC 上连接多达 12 个编程器。此外, Silicon Sculptor 3 与 Silicon Sculptor II 的适配模块兼容,因此能保护客户已有的投资,可从先前的工具版本无缝升级至这个最
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved