打印
[应用相关]

单片机初始编程

[复制链接]
341|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

大多数情况下,程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中,16位指令指针寄存器)。在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。PC中存储的***都是下一步要执行的指令地址。改变PC的内容,就可以改变程序执行的顺序,从而实现跳转。

在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就确定了,当器件的功能被确定下来后,其控制字也就被确定了。

然后用文本编缉器(如Notepad、Winedt 等)写软件.

编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后, 就可以写(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别种格式的文件,只要将此文件调入即可写片。

使用特权

评论回复
沙发
公羊子丹| | 2025-4-2 07:44 | 只看该作者
初学者了解程序计数器(PC)是非常重要的,掌握了它,能更好地理解程序的执行流程。

使用特权

评论回复
板凳
周半梅| | 2025-4-2 07:45 | 只看该作者
我之前写过一个小程序,通过修改 PC 的值实现了简单的跳转,调试的时候能明显看到程序流程的变化。

使用特权

评论回复
地板
帛灿灿| | 2025-4-2 07:46 | 只看该作者
对于初学者来说,使用仿真器进行调试的确能帮助理解程序的执行,能看到每一步的变化和寄存器的内容。

使用特权

评论回复
5
童雨竹| | 2025-4-2 07:47 | 只看该作者
如果程序出现异常,调试的时候特别注意 PC 的值,通常是问题所在,可以帮助定位到出错的位置。

使用特权

评论回复
6
万图| | 2025-4-2 07:48 | 只看该作者
使用 Notepad 编写代码确实方便,但更推荐用专门的编辑器(如 Keil)来编写代码,自动高亮和语法提示能大大提高效率。

使用特权

评论回复
7
Wordsworth| | 2025-4-2 07:49 | 只看该作者
关于 HEX 文件,很多编程器都能识别它,但要确保编译器的设置与硬件编程器兼容。

使用特权

评论回复
8
Bblythe| | 2025-4-2 07:50 | 只看该作者
单片机程序调试中,最难的就是理解 PC 的变化,特别是跳转指令(如 JUMP, CALL)时,要特别小心。

使用特权

评论回复
9
Pulitzer| | 2025-4-2 07:51 | 只看该作者
我通常会在编程前先画出硬件的连接图和对应的地址映射,这样在编程时就不容易出错。

使用特权

评论回复
10
Uriah| | 2025-4-2 07:52 | 只看该作者
说到调试,仿真器真的能节省不少时间,尤其是硬件和软件结合的时候,能精确模拟实际运行的情况。

使用特权

评论回复
11
Clyde011| | 2025-4-2 07:53 | 只看该作者
编写程序时一定要考虑到 中断 机制,很多硬件交互都需要在中断服务程序中处理,调试时要特别注意 PC 在中断后的变化。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

238

主题

2014

帖子

2

粉丝