单片机编程,51单片机编程方法
老铁们,大家好,相信还有很多朋友对于单片机编程和51单片机编程方法的相关问题不太懂,没关系,今天就由我来为大家分享分享单片机编程以及51单片机编程方法的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
用c++怎么编写51单片机程序,可以这么样编写吗
可以的。在51单片机的嵌入式C语言中,指针同样是被支持的。所以在单片机上一样可以使用指针操作,具体使用方法,与标准C语言并没有不同。不过需要注意的是,使用指针代表着间接寻址,相对变量的直接寻址,速度要稍慢一些。而单片机运算速度较慢,大量使用指针有可能会降低执行效率,影响效果。所以除非必要,还是少用指针。
单片机项目的开发流程
单片机项目开发流程:
一、项目评估:出初步技术开发方案,据此出预算,包括可能的开发成本、样机成本、开发耗时、样机制造耗时、利润空间等,然后根据开发项目的性质和细节评估风险,以决定项目是否落实资金上马。
二、项目实施:
1、设计电原理图:在做这一步时要考虑单片机的资源分配和将来的软件框架、制定好各种通讯协议,尽量避免出现当板子做好后,即使把软件优化到极限仍不能满足项目要求的情况,还要计算各元件的参数、各芯片间的时序配合,有时候还需要考虑外壳结构、元件供货、生产成本等因素,还可能需要做必要的试验以验证一些具体的实现方法。设计中每一步骤出现的失误都会在下一步骤引起连锁反应,所以对一些没有把握的技术难点应尽量去核实。
2、设计印刷电路板(PCB)图:完成电原理图设计后,根据技术方案的需要设计PCB图,这一步需要考虑机械结构、装配过程、外壳尺寸细节、所有要用到的元器件的精确三维尺寸、不同制版厂的加工精度、散热、电磁兼容性等等,为最终完成这一步常常需要几十次回头修改电原理图
3、把PCB图发往制版厂做板:将加工要求尽可能详细的写下来与PCB图文件一起发电邮给工厂,并保持沟通,及时解决加工中出现的一些相关问题。
4、定购开发系统和元件:要考虑到开发过程中的可能的损耗,供货厂商的最小订货量、商业信誉、价格、服务等,具体工作包括整理购货清单、联系各供货厂商、比较技术参数、下定单、跑银行汇款、传真汇款底单、催货等等。
5、装配样机:PCB板拿到后开始样机装配,设计中的错漏会在装配过程开始显现,尽量去补救。
6、样机调试:样机初步装好就可以开始调试,当然需要有软件才能调,有人说单片机的软件不是编出来而是调出来的,所以这个过程需要用到电烙铁、刻刀、不同参数的元件、各种调试和仿真软件、样机的模拟工作环境等。常常会因为设计阶段的疏忽而不得不对样机动手术,等整个调试终于完成之后,往往样机的板子已经面目全非。
7、整理数据:到了这一步,项目开发的大部分工作都已经完成了,这时候需要将样机研发过程中得到的重要数据记录保存下来,比如更新电原理图里的元件参数、PCB元件库里的三维模型,还要记录暴露出来的设计上的失误、分析失误的原因、采用的补救方案等等。
8、V1.1如果项目进入生产阶段或确有需要,可以根据修正后的技术方案按各个步骤重做一台完善的V1.1版样机。9、编写设备文档包括编写产品说明书、拍摄外观图片等,如果设备需要和电脑通讯,还得写好与电脑的接口标准和通讯协议说明
51单片机编程方法
1.定义的变量不要太多。低128位为用户定义变量的存放区域(默认时),也可以把变量放在高128位,但容易出错,尽量少放,最好不放。通过*.M51可以查看内存变量的存放,最好不要超过110个字节,否则程序无法运行或出错。
2.如一个变量多处使用可定义为全局变量。例如循环变量i、j,尽量减少参数传递。
3.静态变量最好放在程序存储区,用code定义。
4.变量应定义为无符号数,像标志位等仅占一位的变量应定义为bit。
5.子程序在main()主程序之后的应事先声明,放在前面的不用声明。
6.变量、子程序定义但没使用,系统给出警告。
7.虽然局部变量和全局变量不同名,但运行时可能被全局变量改变。
8.程序在编译后,有可能产生非常大的文件。比如原来5k,编译后变成10k,这是C汇编时程序空间分配太随意造成的。可首先屏蔽一部分程序编译,然后再去屏蔽再编译,可恢复,或一部分一部分复制到另一个文件中编译。
9.如产生脉冲信号用到定时器,要去掉脉冲信号时,应先关定时器,再按要求把电平置为高电平或低电平。
10.可使用软件实现“看门狗”功能。比如:一个程序运行一个循环需要50ms,则定时器可定位100ms,当超过100ms时,程序将复位,在程序循环最下面都重装定时器或重置定时器参数。
11.为了提高所求值的精度,可多次测量,然后排序,去掉最大值和最小值,求平均值,或直接求平均值。
12.可使用一个定时器进行多个定时。一般来说,两个定时器对大一点的程序就不够用了,假如几个定时时间分别为10ms、200us、50ms,则定时值可定位200us,另设两个变量即可。在需要多个定时时,找到他们的最小公约数定时即可。
13.我们往单片机中写程序时,写的是*.hex,不要被它的大小所迷惑,对于8k的单片机,小于20k的程序都可写进去。
如何把程序写入单片机
这样把程序写入单片机。
1.ISP(In-SystemProgrammer)编程器:这种编程器可以通过JTAG、SWD、ICSP等调试端口或者Bootloader启动模式将程序下载到单片机芯片中。这种方法需要专门的硬件支持,但是速度较快,对芯片本身没有任何限制。
2.UART下载:将单片机的TX和RX引脚分别连接至电脑上的USB转串口模块的RX和TX引脚上,再通过该转换模块与电脑建立串口通信,通过串口下载程序。这种方法需要单片机内部带有UART模块,并且通过跳线帽或软件配置实现进入下载模式。
3.并行端口下载:使用并口编程器,在PC机和单片机之间通过LPT端口连接,通过特定软件将程序写入到ROM或者Flash中。这种方式已经逐渐被淘汰。
4.USB下载:比如ST公司提供了一套非常方便的USB触点烧录工具STM32CubeProgrammer,不仅支持实时查看Flash或RAM的存储状态,还提供了丰富的自定义选项。同时在芯片板子上内部集成了USB设备接口,以便连接到外部主机。
总的来说,选择何种下载方式需要根据单片机型号、开发板的具体情况及编程环境等综合考虑。
关于单片机编程到此分享完毕,希望能帮助到您。