导航:首页 > 操作系统 > 对单片机实验的改进建议

对单片机实验的改进建议

发布时间:2022-05-24 17:46:25

单片机学习的建议,初学者的我

楼主,
单片机的定义:
就是相当于电脑CPU的简化版。根据CORE(内核)可分为:
如8051内核称为51系列单片机;
如arm7内核称为ARM7系列单片机;
如arm920T.940T/926内核称为ARM9系列单片机;
因为现在所有8/16/32位(51系列,MSP430系列,ARM系列;
此外还有MSP430和AVR、PLC等
学习方法:
1,你首先要学习C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。
2,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。
3,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,编译环境、编程软件KEIL。
5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很激动,这时你真正学会了单片机,你成功了!!!!!。
6,单片机C语言举例:
sbit SPEAK = P1^5; //IO口定义为蜂鸣器控制
如果蜂鸣器正极接电源,SPEAK =0;蜂鸣器就会响,你看就是这么简单。
unsiggne char temp;//定义TEMP为单字节变量。
sfr PORTA P1;//将P1口定义为PORTA
7,当你过渡到ARM时,你就要学习LINUX和WINCE这两个最基本的操作系统运用在单片机上。
8,同样的理,你也要买ARM2410/2440为代表的开发板,慢慢按照说明书一步一步地操作,练习,不停地做实验,就学会。
9,当然,你得打一份工作,关于我上所说的,开始工资不要要求太高,等你做完几个项目后,你真正学会了,才跟老板或上司提,这样继续或或另寻高就才有资本。
10,你也抽点时间看看《郭天祥十天学会单片机和c语言编》一书,巩固一下理论知识。
总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。

② 单片机应用设计中提高系统可靠性的措施有哪些

这个问题太笼统,这个需要具体问题具体分析。多的就不说,以我的经验和一般情况说下面几点。
1、中断问题。
中断函数要写得尽量短,而且要保证是顺序执行,一定不能在中断中有等待的语句,比如在中断函数中要等待某个标识位置位while(Flag == 0);之类的语句是不可取的,因为会在中断中执行的时间过长导致长时间不能进入别的中断,程序会跑飞现象。
2、敏感代码问题。
可能某些代码的地方,我们不希望执行某部分代码过程被中断给打断,那么我们会在执行该部分代码时禁止中断,执行完毕后再开启中断。那么必须要保证该部分代码执行的时间要尽可能的短,保证短到什么程度由CPU特性决定。
3、阻塞问题。
如果应用比较大,要实现的功能和执行的任务很多,那么程序中尽量避免使用等待阻塞之类的语句,如while()判断标识位的语句,最好是用if()语句判断,如果if()条件不成立会接着往后执行,看有没有别的事情做,如果没有则再返回接着进行if判断。
4、中断优先级问题。
有些CPU支持中断嵌套,而有些CPU不支持中断嵌套,不管CPU支不支持中断嵌套,要合理安排中断优先级关系,比如51单片机中使用定时器中断刷新LED(或LCD)显示,同时串口中断接收数据,默认状态下定时器比串口中断优先级更高,那么最好把串口中断优先级设置得比定时器更高更保险一些,相比之下漏掉一个串口数据比少刷新一次LED(或LCD)后果更严重。
5、代码框架结构问题。

其实这才是最核心的问题,如果你的CPU要实现很庞大的功能,如CPU要完成串口收发、I2C数据存储、LCD显示、Flash读写、USB接口通讯、按键识别、IO口电平监测等等等等的功能,那么自己直接裸机写程序那是不太现实的,必须要选择移植一个成熟的代码架构或操作系统,如选择状态机代码架构,操作系统如uCos、eCos、RT-thread等等。这种方法对CPU的处理速度、Flash空间、RAM空间的需求是挺高的,如果是51、52之类的单片机那就不要考虑算了。51、52之类的单片机那就根据自己的需要自己设计一个简单的代码架构即可。

③ 单片机开发要注意什么

一、 如何提高C语言编程代码的效率

邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”

他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。他说:“对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。”

二、 如何减少程序中的bug?

对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管理参数有:

1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。

2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。

3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。

4.过程参数。指系统运行中的有序变化的参数。

三、如何解决单片机的抗干扰性问题

邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干 扰最重要的是处理好复位状态.一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。

四、 如何测试单片机系统的可靠性

有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:

1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。

2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。

3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。

4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。

邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。”

④ 51单片机系统的不足之处及进一步改进措施能具体地列举几个不足点及其解决措施吗

相对于早期的51单片机,如今增强型的芯片包括速度、功能都有了大幅度的提升,甚至已经出现了单时钟周期指令的51芯片,与其它非51核单片机相比并无明显差异,虽说许多非51核芯片理论上速度快些,但精简指令集从某种意义上讲,还不如51单片机来得简洁。从程序汇编的角度讲,51单片机易读性更强。所以我反而觉得,在功能和速度相同的情况下,非51核的单片机在指令系统方面倒有必要进行提升。本人拙见仅供参考

⑤ 单片机高手们给个建议

以下,是我回答另一位单片机初学者的问题,可能不全针对你的问题,但是,提供的是一种思路,希望你能从我的回答中提取到一种学习单片机的思路,而不仅仅在表象:

,一个资深的高级单片机工程师,也不能完全记住液晶,模数数模转换,液晶借口,IIC总线,但是这不影响他们成为高级单片机工程师.
因为他们明白了,受人之鱼,不如受人之渔.
他们不用记住具体的某个单片机的个AD怎么编写,因为每个单片机的AD可能不一样,比如,今天你学会了STC51的AD,以后让你做AVR的怎么办?所以,一个单片机工程师所要做到的是,给你一个单片机,你能迅速找到单片机的资料,你想用哪个功能,就去看这个功能外设的寄存器,了然于胸之后,就能写出具体的底层.
他们也不用记住液晶接口怎么写,因为今天你可能是这种电路,明天又是另一种电路,他们要做的,是知道这种的液晶的时序是什么,或者是控制芯片是什么,然后根据PDF资料写出程序.
所以,你要做的是,不要完全按照书上写的实验,你在写过一次之后,要回过头去看你的单片机资料,去看你的液晶资料,去看IIC总线的时序,然后凭借这些资料给你提供的信息,完全摒弃开发板的资料,自己从0做起,开发一次,只有这样,你才能真正掌握单片机的内含.
有个领导曾经说过,别人咀嚼过的馍馍没味道,所以你要自己做到了解单片机,了解你的外设,了解一些总线的时序,然后根据这些自己开发,这样,你才会遇到很多的困难,才能在困难中成长起来.
按照书上写的去做,也许你思考了,但是,同时,你也失去了犯错的机会,要知道,对于初学者,能犯些错误是很可贵的.

所以,针对你提出的问题,我发表一下我的见解:
我建议你,自己去做个简单的板子,买点元件,自己来做,现在的元件,板子等等成本也不是非常的贵,大概300左右能做一块不错的板子,当然,比买现成的开发板是贵的,但是,你从做电路,自己写程序这一过程中所收获的东西,也是比你买现成开发板学习中要多的,因为你会有自己的思考,而不在有依赖性,因为你会在开发的过程中,犯一些错误,这将加深你的印象.
所以,我赞成你的想法.

另外,我不建议你去搜罗网上给出的什么原理图,你要学会自己设计原理图,自己写程序,当然,这一过程会很慢,但是,你能从中学习到很多很多的东西.借鉴别人的东西,你得到的最多的是印象,而自己设计过程中,你得到的是本质.

⑥ 一个老工程师给单片机初学者的几点建议

这个搜一下啊就能找到。

在错误的道路上日夜兼程,最终也无法成功。所有,方法和思路绝对是第一重要的。一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇。但是,今天在这里我可以很负责任的告诉你,本章节讲到的学习单片机的方法,都是我们学习单片机的无数经验和教训总结出来的瑰宝。因为我们披荆斩棘,开辟了道路,所以可以告诉你路在何方;也因为我们摸过烧红的铁块,烫了手,所以可以把教训告诉你。希望各位都能站在我们的肩膀上,成为巨人。

注意事项

  • 在错误的道路上日夜兼程,最终也无法成功。因此,方法和思路绝对是第一重要的。

  • ⑦ 谈谈对单片机课程的理解认识意见和建议

    1. 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

    2. 概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

    3. 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

    4. 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

    5. 一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

    6. 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。

    7. 一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。

    8. 一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

    9. 不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。

    10. 它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

    11. 各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

    12. 现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

    ⑧ 单片机实验注意事项

    单片机开发规则与注意事项

    随着大规模集成电路技术的发展,单片微型计算机也随之大发展,各种新颖的单片机层出不穷。单片机具有体积小、重量轻、应用灵活且价格低廉等特点,广泛地应用于人类生活的各个领域,成为当今科学技术现代化不可缺少的重要工具。

    单片机系统的开发融合了硬件和软件的相关技术。要完成单片机系统的开发,用户不仅需要掌握编程技术,还需要针对实际应用选择合理的单片机芯片和外围器件,以此为基础,设计硬件电路。

    正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。

    要完成单片机系统的开发,用户不仅需要掌握编程技术,还需要针对实际应用选择合理的单片机芯片和外围器件,以此为基础,设计硬件电路。

    单片机开发规则与注意事项

    设计满足要求的最精简的系统

    正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。

    看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位信号,重新复位单片机。更新看门狗的具体形式多是给看门狗芯片相关引脚提供一个电平上升沿或读写它的某个寄存器。使用看门狗电路将在单片机发生故障进行死机状态时,重新复位单片机,像EN8F154本身就带有看门狗。

    确定系统的复位信号可靠

    一般在单片机的数据手册(Datasheet)中都会提到该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上电在同一时刻发生,即芯片一上电,复位信号就已产生。不然,由于没有经过复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。

    确定系统的初始化有效

    系统中的芯片以及器件从上电开始到正常工作的状态往往有一段时间,程序开始时延时一段时间,是让系统中所有器件到达正常工作状态。究竟延时多少才算合适?这取决于系统的各芯片中到达正常工作状态的时间,通常以最慢的为准。一般来说,EN8F154的延时20-100毫秒已经足够。对于系统中使用嵌入式MODEM等“慢热”型的器件来说,则应更长。当然,这都需要在系统实际运行中进行调整。

    当然,仿真是单片机开发过程中非常重要的一个环节,除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部份供给各种信号、数据,进行调试的办法。

    ⑨ 单片机项目实践中会遇到那些问题,怎么解决呢

    初用单片机注意的几个问题

    1:时间处理的建议:
    单片机处理的最多的事情是时间问题.每个模块,建议用时间去管控,在每段程序的入口处给一个时间监测的标志,一定的时间到才放行.这样处理可以提高系统的时效性,对系统各个模块进行时效性安排.需要及时处理的事情可以将时效级别提高,即在同一段时间内循环进入该程序段查询的次数会多,分配的时间多.然后看门狗只在主程序循环.

    ⑩ 如何提高单片机,

    单片机控制大部分是面向硬件的,关于这些物理硬件的控制,最重要的就是调节速度和精度,表现在单片机内部算法上,我认为就是时间和空间的合理运用,而这些对算法的要求是什么呢,或者说作为单片机开发者来说,应该怎么样考虑自己的单片机程序呢?

    第一,程序结构

    我知道你肯定不会想去仔细研究数据结构,那太抽象了。在这里我直接告诉你,基于“状态机”的程序结构更加适合单片机,确切的说是有限状态机。状态机编程技术将直接促使你解决程序的时间问题,并且程序结构可大可小,普通状态机和层次式状态机能让你对绝大多数项目手到擒来。当然状态机编程技术也是需要学习的,但这比你直接去学数据结构要轻松的多。

    第二,使用适合的算法

    我们编程时要明白一个道理,再多复杂的算法也不能证明你的程序是一个好程序,那什么才是呢?是简洁明了和可靠稳定。大道至简放在编程上不是一句空话,同样一个冒泡排序算法,有的人写出来死板的很,有的人却能独具效率,这是对算法的理解高度不同。我认为与其学习更为复杂的控制算法,不如加深自己对现有算法的理解。通样的PID算法程序,有的人能加上积分分离,有的人能用上环境自适应,这里面差别不可谓不大啊。

    最后希望你能早日从自己的工作中形成自己独到的理解,精益求精。

    阅读全文

    与对单片机实验的改进建议相关的资料

    热点内容
    三台服务器配置IP地址 浏览:171
    如何用命令方块连续对话 浏览:275
    win7linux共享文件夹 浏览:302
    命令符打开本地服务 浏览:597
    android应用程序源码 浏览:699
    安卓开发工程师简历怎么写 浏览:57
    热水器水量服务器是什么意思 浏览:115
    stk卫星编译 浏览:478
    对后台程序员的要求 浏览:759
    ios大文件夹图标 浏览:624
    生的计划pdf 浏览:711
    oppoa93加密便签在哪查找 浏览:21
    两个数字的加减乘除运算编程 浏览:227
    给手机加密码忘记了怎么办 浏览:601
    单片机运算符 浏览:297
    移动端微信商城源码 浏览:443
    编程猫下一个背景在哪里 浏览:359
    javaclasstype 浏览:240
    乐高编程和乐高课的延伸 浏览:357
    苹果手机怎么切换app美国账号 浏览:865