初学单片机编程方面的小问题(一)

作者&投稿:索农 (若有异议请与网页底部的电邮联系)
单片机编程小问题~

这个应该是软件SPI(同步串行口)发送数据的过程。数据是按位发送。
ch代表的是要发送的数据
SDA_16是发送数据线
SCLK_164是时钟线。

SDA_164 = ch&0x80; 取最高位发送
SCLK_164 = 1; 时钟信号置一(上升沿发送数据)

每发送一完位ch数据左移一位 (准备下一位发送的数据,而且有延时作用)
SCLK_164 = 0; 时钟置0
这个段落应该循环8次(或N次)发送一个字节(或N位)的数据。

单片机2,程序中,缺少死循环,程序跑飞了。

加上一个 while(1);,再试。

程序启动后,是从0000h开始执行的,0000h里是AJMP MAIN, 程序就跳转到MAIN继续执行.而主程序MAIN所在的地址是0100H,也就是说,程序直接从0000H跳转到了0100h.
HERE:AJMP HERE 是死循环,但是如果有中断产生,程序会跳到中断入口地址,比如定时器0溢出了,程序就会跳到000BH 在这里正好有一条 AJMP IT0P的指令
所以紧接着就会跳到,你写ITOP这个标号的地方.执行完中断后程序又会回到刚才的死循环中,等待下次中断再跳出.
SP是堆栈指针,不是程序指针.

不是这样吧 我觉得执行完AJMP MAIN 这句后,就到MAIN: MOV SP #60H 这le,
以后就顺序执行MOV SP #60H这句后面的程序吧
但愿不误人子弟
仅供参考
HERE:AJMP HERE 就是等带外来的中断,比如时钟计时到


学习单片机编程的就业方向
keil 以及protel 需要学好;C语言是必须的,有精力就还要C++,以及visual c++都得学 模拟电路,数字电路的基础也得好。当你单片机很熟练了之后,建议你学ARM,或者FPGA。将来就业主要是进电子公司 做驱动电路,做芯片设计等

单片机编程是要读什么专业的???
电子科学与技术、电器工程与自动化控制、机械电子工程、自动化等等,一般有控制和自动化的都会学的,但是都学是书本的基础,单片机主要还是要靠动手实践的。多做些小项目,学得比较快。回答者:love21307 - 魔法师 四级 8-6 08:51 这个回答得好。

单片机入门学51还是32
a. 教材和书籍: 有很多经典的单片机教材,例如《51单片机原理与应用》等。b. 在线课程: 有许多在线学习平台提供相关的单片机课程,例如MOOC平台、学堂在线等。c. 社区和论坛: 在各大技术社区和论坛上,有很多热心的开发者分享单片机开发经验,例如GitHub、知乎、CSDN等。4. 学习的挑战 学习单片机编程...

想自学单片机编程,能推荐几本书么?
单片机编程推荐书籍:51:《单片机的C语言应用程序设计》作者:马忠梅 PIC:《PIC单片机入门与实战》作者:张明峰 AVR:《AVR单片机嵌入式系统原理与应用实践》作者:马潮 这就是我学以上单片机总结出来的最好的教程,我也买过很多单片机将的书,但随着时间的推移和自身感受,这三本个人觉得经典。是单片机入门的...

单片机好学吗
它需要你有一定的电子和编程基础,同时还需要你有耐心和毅力去不断学习和实践。只要你愿意付出努力和时间,我相信你一定能够掌握这门技术。我还想分享一些学习单片机的建议和经验:从基础开始:学习单片机之前,建议你先掌握一些基础知识,如C语言编程、电路基础等。这些基础知识会为你后续的学习打下坚实的...

单片机编程用什么软件
摘要:单片机的编程需要用到专门的编程软件,一般常用的单片机编程软件有Keil编程开发环境、Notepad++、AltiumDesigner、Sscom、下载工具等,其中主要使用的编程软件还是Keil编程开发环境,它的使用方法并不难,学习单片机编程的时候也会学到单片机编程软件的用法。下面为大家介绍单片机编程用什么软件以及单片机编程...

单片机怎么深入学习,特别是编程。
不积跬步,无以至千里。单片机就是控制io口,达到控制外设的目的。1,首先c语言编程功底要提高,多写写游戏啊,软件之类的,至于移植到到单片机,分分钟的事情吧,比如贪吃蛇这种。2,单片机基础,一定要学透,而不是停留在基础,基础也可以学的很好,假设led,你知道所有led控制的方法吗,位控制,端口...

学习单片机,需要哪些基础,入门都学哪些东西
1、电路基础:一些数字电路、模拟电路基础。毕竟以后要自己设计电路,这些知识是很有用的。2、C语言基础:C语言开发,相比汇编最大的优点就是移植性要好。学习51单片机,C语言编程当然需要有些基础。3、一些单片机的基础知识:虽然是初学者,但是一些基础理论知识还是应该知道的。4、一些焊接等动手能力,...

怎样开始学习单片机的编程?
第二阶段:就是了解二进位数字、十六进位数和软件方面的内容。尽管有很多高级语言可用于单片机的编程,但我觉得初学还是以汇编语言为好,更有利于和硬件结合,掌握硬件结构。知道汇编语言、机器语言、指令、 程序等概念后,从MOV指令开始,学习汇编语言和编程,在此如51的MCU汇编语言系统有11条指令,简单又好...

学习单片机最好用什么书?谢谢
嘿嘿 俺来帮你回答 学习单片机最好用硬件描述比较详细的教材为好,这样可以为今后的编程打下一个良好的基础。推荐书籍:1 教材: 单片机原理及应用技术 作者:苏家健、曹柏荣、汪志锋 出版日期:2004-11 版次:1 ISBN:7-04-014565-0 出 版 社:高等教育出版社 备注:教育科学“十五...

壶关县13333763393: 单片机初学者的一个小问题,求帮帮忙!! -
益冠复方: 程序有些问题,做如下修改:#include"reg51.h"#include"intrins.h"unsigned char key=0;typedef unsigned int u16; typedef unsigned char u8;sfr led=P2;sbit k1=P3^0;sbit k2=P3^1;sbit k3=P3^2;void delay(u16 i){while(i--);}void moshi1(){u8 i;led=...

壶关县13333763393: 问几个关于 “单片机” 入门的问题,基础的,C语言之类的! -
益冠复方: 我也刚刚学会单片机,很能对你的感觉深有感触,现在我来回答你的问题.1 是的,51单片机是单片机的入门级单片机,简单易学,而且应用广泛.2 不一定要学汇编语言的,学会了c语言,同样可以灵活使用单片机,而且c语言使用简单方便....

壶关县13333763393: 51单片机编程让新手最容易出错的几点总结 -
益冠复方: 新手容易出错的地方可能有:1、数据类型,unsigned char在单片机中是最常用的数据类型,不是C语言中的自字符串或字符类型,新手很容易搞错.2、关键字的使用,单片机中有很多内部关键字,比如特殊功能寄存器、中断等等,如:P0,SBUF、interrupt、using等等,这些都不能作为用户的变量用,新手常常不太注意.3、中断的使用,比如独立按键接到外部中断上,编程时一般利用中断来处理,程序上不会明显看到“键”的显示,新手会很迷茫,怎么没有按键处理?4、 while循环的使用,单片机C语言中,至少有一个while(1)循环,一保证程序运行在可控状态下,新手往往忽略掉,从而造成程序乱飞.

壶关县13333763393: 51单片机编程的一个小问题,关于DJNZ direct,rel等指令.初学汇编,不太懂. -
益冠复方: 指令说明时用 rel 只是告诉你,这条指令跳转范围只有+-127字节,在使用时,还是要写绝对地址,不过这个地址要在本指令+-127范围内. 编译器在编译时会把 F3-当前地址值 写入指令.

壶关县13333763393: 关于单片机编程的小问题
益冠复方: 楼主理解错了, DDR和PORT没规定一定谁先谁后的, 寄存器没有人的思维, 如果楼主看过数据手册的IO的硬件结构图就会知道,这两个寄存器同时决定这个IO的状态, 就如芯片复位后两个寄存器都是0,即输入状态,如果楼主有兴趣可做个实验,在除了PC口以外的任意口通电(注意这个口不要接任何其他元件),不要对这个口的DDR和PORT任何操作,直接读PIN可读出此口已被置1, 如果按上图看,先写PORTC=0x01,而复位后的DDRC=0x00也就是说那个瞬间上拉输入,再写DDRC=0x01状态就是输出了, 欢迎追问

壶关县13333763393: 单片机入门问题
益冠复方: INT1:外部中断1的外部脉冲或电平触发引脚 INT0:外部中断0 的外部脉冲或电平触发引脚 T1:定时器/计数器1外部脉冲的输入端 T0:定时器/计数器0外部脉冲的输入端 EA/VP:EA是片外存储器选通端,EA有效时,将访问片外存储器.VP为编程信号输入端 X1,X2:应该是接的晶振 RD,WR:读写有效信号 RXD,TXD :单片机的串行口传送,接收有效信号 ALE/P:ALE地址锁存有效信号,用于锁存第八位地址,P也是编程时用的,PSEN访问外部程序存储器时用的 其中的ALE/P、PSEN、RD、WR主要的外扩存储器时用的,如果不外扩,基本上是没有用,当然给单片机编程时可能用.

壶关县13333763393: 单片机初学的一些问题! -
益冠复方: 买个开发板,也就100块多点,要有电脑用来写程序,光看书真的太抽象了,学不到太多的东西,要自己体会,你写的程序多了,你就会知道单片机哪个脚控制哪个电子元件,那些电子元件是怎样连接的,电路方面搞熟悉后,你自己就可以设计一些简单的电路,配上自己写好的单片机程序,就能实现自己预期的效果,慢慢地越做越深. 有问题可以再咨询, 预祝你成功!!

壶关县13333763393: 单片机编程中的简单基础问题 -
益冠复方: TIME[2]=0x13; 如果是在声明区的话是重复定义,如果是在程序中的活,就是一条赋值指令而不会发生重复定义的错误

壶关县13333763393: 我是新手最近在学习STM32的单片机,在编程的时候遇到了一个问题,希望能够得到大家的解答 -
益冠复方: for循环没有放到while(1)死循环里面,所以for执行完之后程序会把main函数重新执行一遍,就出现你仿真的这个了.

壶关县13333763393: 单片机编程问题 新手求教 -
益冠复方: ;这是我编的程序,希望对你有帮助,如果有什么不明白,都可以问我,我知道的一定为你解答; ;P1.0接一个示波器,P1.0~~P1.3各接一个开关,各个开关依次对应频率1000Hz 100Hz 10Hz 1Hz; ORG 0000H LJMP MAIN ORG 000BH LJMP ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网