全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > LED照明 >

单片机(裸机)程序一般怎么写?

时间:2023-09-05 16:48

人气:

作者:admin

标签: 一般  裸机  单片机  程序   

导读:单片机(裸机)程序一般怎么写?-裸机(单片机)程序主要是相对于基于操作系统的程序开发而言,就是没有操作系统的基础上开发具有特定功能的代码。...

裸机(单片机)程序主要是相对于基于操作系统的程序开发而言,就是没有操作系统的基础上开发具有特定功能的代码。

比如我们要用51单片机控制一个LED灯的闪烁,不采用操作系统,通过51汇编代码或者C语言代码实现,这就是裸机程序。

实现硬件裸机程序的一般步骤

1.搞清楚自己需要要实现的功能

根据需求,理清思路,结合硬件,思考需要怎么实现,用到什么相关资源。

2.查看原理图,了解硬件的用途及工作原理

弄清楚硬件和CPU的连接关系,用到哪些相关外设。

3.细读datasheet,尤其是寄存器

主要是看寄存器如何设置。硬件不能正常工作90%是寄存器设置有问题。

4.写代码

裸机程序其实就是寄存器设置。一般先初始化硬件,后实现具体需求功能的业务逻辑代码。

5.测试,解决问题

自测问题,查找BUG,解决问题。

实例讲解

这里我们基于tiny4412开发板硬件,实现对电路板上led2 闪烁功能为例讲解。

下面我们按照上面一般步骤走:

1.要实现的功能

控制led的亮与灭,可以使用GPIO控制

2.查看原理图,了解硬件的用途及工作原理

查看原理图,找到LED相关部分电路,如上图。我们要实现LED2的亮灭,LED2左端要是低电平才能亮,高电平灭。所以LED2 脚必须是低电平,led2才会亮。

然后我们通过LED2 标签,找到LED2连接到SOC的 GPM4_1引脚。所以剩下就是GPM4_1脚的设置问题。

3.细读datasheet,尤其是寄存器

单片机 GPIO(General Purpose Input Output)可以控制一根外部管脚的电路,可以输出高低电平,可以检测外部管脚电平。一个GPIO脚接口至少有两个相关寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。数据寄存器的各位都直接引到芯片外部,而对数据寄存器中每一位的作用,即每一位的信号流通方向时输入还是输出,则可以通过控制寄存器中对应位独立的加以设置。

其中关于GPM4_1脚相关的寄存器描述如下:

  • GPM4[1],GPM4CON寄存器,地址是0x1100_0000 + 0x02E0,7:4位,设置为0x1,设为输出模式。
  • 设置GPM4[1]为输出高电平,需要设置GPM4DAT寄存器的bit1为1。
  • 设置GPM4[1]为输出低电平,需要设置GPM4DAT寄存器的bit1为0。

问题来了,怎么设置一个寄存器?

arm处理器的就是属于内存映射。也就是说访问寄存器就像访普通内存一样。

这实际上就是内存映射机制的方便性了。这里就是通过内存寻址访问到寄存器,可以读/写操作。也就是只要我们知道某个寄存器的地址,就可以通过汇编指令或者C语言指针变量读写该地址数据就行。

4.写代码

a)初始化

  • 设置GPM4_1为输出模式,GPM4CON[7:4]位位设置为0x1
  • 设置GPM4DAT寄存器的bit1为1,led2灭

b)功能

  • 实现led2闪烁循环逻辑程序

以上就是单片机程序,或者裸机程序开发一般步骤,适用所有MCU,SOC裸机程序开发。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信