导航:首页 > 操作系统 > 单片机高效

单片机高效

发布时间:2022-07-12 06:22:44

① 如何高效学习单片机

如何高效学习单片机http://jingyan..com/article/0bc808fc41f7a81bd485b9b7.html
参考
学习单片机有自己的单片机开发板比较好,吴鉴鹰单片机开发板目前的主流

② 如何高效学习单片机,顺便推荐一款单片机学习板给我,谢谢

如果是你说的单片机是51的话,有一丢丢基础的话,可以建议你用最小系统板加外设模块自己拼,做起东西来灵活,可更换,没基础确实可以买套开发板配着教学视频学一遍,郭天祥的一套就可以,我51就是看他视频学的。

我认为初学单片机最重要的,是实践,如果没有实物,只是跟着视频打打程序,很快就会失去兴趣,我周围有太多因为这个原因而放弃的人了。

③ 如何高效的使用单片机的DMA

有DMA功能的单片机很少的,特别是8位单片机,基本来说是没有DMA功能,PIC24系列部分单片机有DMA功能,可以选用。8位单片机,比如51,也可以借助8237实现DMA功能。

④ 如何写一段简洁高效的单片机C语言子程序,实现这样一个功能

1、首先调用,设置状态静态寄存器初值,计数静态寄存器初值;2、调用一次,检测一次,对比前次的静态变量,不同则计数增1后反回,相同则清除计数返回;3、再调用一次,检测一次,对比前次的静态变量,不同则计数增1后反回,相同则清除计数返回;4、最后调用一次,检测一次,作对比,相同则清除计数,不同则修改要更新的变量,改变状态静态变量,清除计数器,返回。

⑤ 目前性能最好的单片机是哪一款

比台湾单片机还便宜的日本NEC8位高性能单片机
NEC
78K0/Kx1+系列MCU中所采用的SuperFlash技术允许开发者升级程序,而且能用作非易失性数据存储器.这使得闪存能替代外接的EEPROM,在电源关断状态时存储数据,减少了整个系统的元件数量.
78K0/Kx1+系列MCU对所有的K1
MCU系列成员共享外设指令,包括广泛使用的78K0/Kx1+系列.该器件的特性包括有时钟监视器的安全保险(FailSafe)电路和独立于主时钟的内部时钟,看门狗计时器和片内振荡器,器件和系统加电重置(POR)功能及低电压指示器(LVI).此外,一些有44或更多引脚的78K0/Kx1+系列MCU具有用来进行软件开发的片内调试器功能,能用真实的MCU来进行软件开发,使开发更加接近实际情况.
78K0/Kx1+系列MCU工作速度20MHz,CPU处理速度比10MHz的78K0/Kx1系列MCU增加了100%.78K0/Kx1+系列MCU有片内安全功能,能检测到由电磁干扰或静电所引起的误操作,使系统更加安全和可靠.
NEC的MCU最大特点:
1.高性价比!全线产品比PIC便宜近30%!个别产品的价格甚至比台湾的价格还低.
2.内置高精度的环行震荡器,在-40---85度的时候精度可达到0.1%.
3.仿真工具仅仅售人民币1000元整,而且可以仿真NEC全系列(包括8位,16位,32位单片机),还带烧写功能
内置双Ring-OSC(8MHz,240KHz),上电复位清零电路,低电压侦测电路和独立源看门狗电路
FLASH
ROM(8K-128K)
产品内置支持LIN-BUS的UART
2-4路串行口(内含2路UART,1路I2C,高端产品有1-2路带自动转发功能的CSI)
10pin-80pin
多路10BITA/D
低功耗,宽电压范围,超高抗干扰
支持在线编程(ISP)
单电压编程,支持自编程和BOOT区切换
低价位开发工具,便捷的开发环境
应用于智能仪表,智能家电,工业控制,汽车电子领域
UPD78F9202(10P
4K
,8个I/Q,4路A/D)
UPD78F9222(20P
4K
,17个I/Q,4路A/D)
UPD78F9212,(16P
4K
,13个I/Q,4路A/D)
UPD78F9234(30P
8K
,26个I/Q,4路A/D)
UPD78F0511(44P
16K
,37个I/Q,4路A/D)
UPD78F0537(64P
128K
,55个I/Q,8路A/D)双串口

⑥ 如何更高效地实现51单片机流水灯

要高效实现51单片机的流水灯,就用定时器来控制好了,这样做效率最高。

⑦ 如何写出高效的单片机C语言程序代码

由于单片机的性能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法
与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。
对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片
机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到最佳,程序设计时必须
遵循以下几点进行优化:

1. 使用尽量小的数据类型
能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变
量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。当然,在定义变
量后不要超过变量的作用范围,如果超过变量的范围赋值,C 编译器并不报错,但程序运行结果却错了,
而且这样的错误很难发现。

2. 使用自加、自减指令
通常使用自加、自减指令和复合赋值表达式(如a-=1 及a+=1 等)都能够生成高质量的
程序代码,编译器通常都能够生成inc 和dec 之类的指令,而使用a=a+1 或a=a-1 之类
的指令,有很多C 编译器都会生成二到三个字节的指令。

3. 减少运算的强度
可以使用运算量小但功能相同的表达式替换原来复杂的的表达式。
(1) 求余运算
N= N %8 可以改为N = N &7
说明:位操作只需一个指令周期即可完成,而大部分的C 编译器的“%”运算均是调用子程序来
完成,代码长、执行速度慢。通常,只要求是求2n 方的余数,均可使用位操作的方法来代替。
(2) 平方运算
N=Pow(3,2) 可以改为N=3*3
说明:在有内置硬件乘法器的单片机中(如51 系列),乘法运算比求平方运算快得多, 因为浮点数
的求平方是通过调用子程序来实现的,乘法运算的子程序比平方运算的子程序代码短,执行速度快。
(3) 用位移代替乘法除法
N=M*8 可以改为N=M<<3
N=M/8 可以改为N=M>>3
说明:通常如果需要乘以或除以2n,都可以用移位的方法代替。如果乘以2n,都可以生成左移
的代码,而乘以其它的整数或除以任何数,均调用乘除法子程序。用移位的方法得到代码比调用乘除法子
程序生成的代码效率高。实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果。如N=M*9
可以改为N=(M<<3)+M;
(4) 自加自减的区别
例如我们平时使用的延时函数都是通过采用自加的方式来实现。
void DelayNms(UINT16 t)
{
UINT16 i,j;
for(i=0;i<t;i++)
for(j=0;i<1000;j++)
}
可以改为
void DelayNms(UINT16 t)
{
UINT16 i,j;
for(i=t;i>=0;i--)
for(j=1000;i>=0;j--)
}
说明:两个函数的延时效果相似,但几乎所有的C 编译对后一种函数生成的代码均比前一种代码少1~3
个字节,因为几乎所有的MCU 均有为0 转移的指令,采用后一种方式能够生成这类指令。

4. while 与do...while 的区别
void DelayNus(UINT16 t)
{
while(t--)
{
NOP();
}
}
可以改为
void DelayNus(UINT16 t)
{
do
{
NOP();
}while(--t)
}
说明:使用do…while 循环编译后生成的代码的长度短于while 循环。

5. register 关键字
void UARTPrintfString(INT8 *str)
{
while(*str && str)
{
UARTSendByte(*str++)
}
}
可以改为
void UARTPrintfString(INT8 *str)
{
register INT8 *pstr=str;
while(*pstr && pstr)
{
UARTSendByte(*pstr++)
}
}
说明:在声明局部变量的时候可以使用register 关键字。这就使得编译器把变量放入一个多用途的寄存
器中,而不是在堆栈中,合理使用这种方法可以提高执行速度。函数调用越是频繁,越是可能提高代码的
速度,注意register 关键字只是建议编译器而已。

6. volatile 关键字
volatile 总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在
哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以死代码消除。一般来
说,volatile 关键字只用在以下三种情况:
a) 中断服务函数中修改的供其它程序检测的变量需要加volatile(参考本书高级实验程序)
b) 多任务环境下各任务间共享的标志应该加volatile
c) 存储器映射的硬件寄存器通常也要加volatile 说明,因为每次对它的读写都可能由不同意义
总之,volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素
更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码
就不再进行优化,从而可以提供对特殊地址的稳定访问。

⑧ 如何编写高效率稳定的单片机代码

要写出高效率稳定的单片机代码:
1、使用汇编语言编写。
2、熟练掌握和灵活应用各种算法

⑨ MSP430有哪些高效能的特性

MSP430单片机简介
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。

MSP430单片机的特点:
1.处理能力强
MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。

2.运算速度快
MSP430 系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如 FFT 等)。

3.超低功耗
MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。 首先,MSP430 系列单片机的电源电压采用的是1.8-3.6V 电压。因而可使其在1MHz 的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。 其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL 和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显着的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。在实时时钟模式下,可达2.5μA ,在RAM 保持模式下,最低可达0.1μA 。

4.片内资源丰富
MSP430 系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定时器(Basic Timer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器;16 位定时器(Timer_A 和 Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,P0、P1、P2 端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件 A/D 转换器有较高的转换速率,最高可达200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件I2C串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA模块。MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。 另外,MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的低功耗状态时,中断唤醒只需5μs。

5.方便高效的开发环境
MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OPT 型和 ROM 型的器件是使用仿真器开发成功之后烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。

MSP430单片机家族
MSP430x1xx系列
基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 实时时钟模式 200μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存选项:1KB – 60KB ROM 选项:1KB – 16KB RAM 选项:512B – 10KB GPIO 选项:14、22、48 引脚 ADC 选项:10 和 12 位斜率 SAR 其它集成外设:模拟比较器、DMA、硬件乘法器、SVS、12 位 DAC[5]

MSP430F2xx系列
基于闪存的超低功耗 MCU,在 1.8V - 3.6V 的工作电压范围内性能高达 16MIPS。包含极低功耗振荡器 (VLO)、内部上拉/下拉电阻和低引脚数选择。 超低功耗低至: 0.1μA RAM 保持模式 0.3μA 待机模式 (VLO) 0.7μA 实时时钟模式 220μA/MIPS 工作模式 在 1μs 之内超快速地从待机模式唤醒 器件参数: 闪存选项:1KB – 120KB RAM 选项:128B – 8KB GPIO 选项:10、16、24、32、48、64 引脚 ADC 选项:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外设:模拟比较器、硬件乘法器、DMA、SVS、12 位 DAC、运算放大器[6]
MSP430C3xx系列
旧款的 ROM 或 OTP 器件系列,工作电压为 2.5V - 5.5V,高达 32KB ROM、4MIPS 和 FLL。 超低功耗低至: 0.1μA RAM 保持模式 0.9μA 实时时钟模式 160μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: ROM 选项:2KB – 32KB RAM 选项:512B – 1KB GPIO 选项:14、40 引脚 ADC 选项:14 位斜率 SAR 其它集成外设:LCD 控制器、硬件乘法器[7]
MSP430x4xx系列
基于 LCD 闪存或 ROM 的器件系列,提供 8-16MIPS,包含集成 LCD 控制器,工作电压为 1.8V-3.6V,具有 FLL 和 SVS。低功耗测量和医疗应用的理想选择。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 实时时钟模式 200μA/MIPS 工作模式 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存/ROM 选项:4kB – 120KB RAM 选项:256B – 8KB GPIO 选项:14、32、48、56、68、72、80 引脚 ADC 选项:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外设:LCD 控制器、模拟比较器、12 位 DAC、DMA、硬件乘法器、运算放大器、USCI 模块[8]
MSP430F5xx系列
新款基于闪存的产品系列,具有最低工作功耗,在 1.8V-3.6V 的工作电压范围内性能高达 25MIPS。包含一个用于优化功耗的创新电源管理模块。 超低功耗低至: 0.1μA RAM 保持模式 2.5μA 实时时钟模式 165μA/MIPS 工作模式 在 5μs 之内快速从待机模式唤醒 器件参数: 闪存选项:高达 256KB RAM 选项:高达 16KB ADC 选项:10 和 12 位 SAR 其它集成外设:USB、模拟比较器、DMA、硬件乘法器、RTC、USCI、12 位 DAC[9]

⑩ 怎么才能高效地学好51单片机。。。。。。

开发板,例程,电路原理图,先模仿别人的,然后自己就会有新想法,想实现些什么新功能,然后自己找芯片,设计电路,写程序,去实现。别急着一开始就自己设计

阅读全文

与单片机高效相关的资料

热点内容
pdf手机如何解压 浏览:15
python描述器 浏览:60
战地联盟3解压密码 浏览:805
s型命令 浏览:25
php年薪5年 浏览:71
如何上网上设个人加密账户 浏览:44
linux打开ssh服务 浏览:78
微信位置可以加密吗 浏览:470
算法蛮力法 浏览:438
随机排练命令 浏览:147
python多进程并发 浏览:41
安卓软件安装如何躲避安全检测 浏览:647
奇幻潮翡翠台源码百度云盘 浏览:187
什么软件可以免费pdf转word 浏览:15
php正则表达式大全 浏览:394
androidntp时间 浏览:299
轮机长命令簿英文 浏览:148
oppo铃声设置被加密怎么处理 浏览:548
粤苗app图形验证码怎么填 浏览:899
管家婆架设云服务器 浏览:254