51单片机编程常见问题

作者&投稿:台寇 (若有异议请与网页底部的电邮联系)

单片机延时问题20问
1、单片机延时程序的延时时间如何计算?若使用循环语句,通常无法精确计算,但通过软件仿真可以大致了解时间长短。为了实现精确延时,通常需借助定时器功能,延时时间与晶振频率相关。常见晶振频率如11.0592 MHz、12 MHz或6 MHz,选择12 MHz晶振易于实现标准波特率,且一个机器周期为1 μs,便于精确控制。2...

单片机初学者的常见问题总结
四、将单片机开发板断电,确保LED2是灭的。第一步:将开发板断电 图 11 第二步:点击【下载\/编程】图 12 第三步:给单片机开发板上电,如图 11所示,按下电源开关(右下角蓝色开关),确保LED2点亮,上电瞬间,程序会自动下载。当程序下载成功后,如图13所示。图 13 7、通讯显示乱码 图 14 解...

单片机汇编语言的几个疑问
单片机的执行其实是单一线程的,一般只有两种情况会偏离原来的流程,一种是中断服务子程序,注意别忘了使用RETI;还有就是普通子程序,别忘了使用RET;再加上注意出栈、入栈操作,而且该操作因成对并保证先进后出原则,这样的话才真正做到模块化编程,调试时才能不理睬其它部份,单独调试某个模块,提高效率...

单片机常见故障及处理
2.引脚电平变化触发中断,和外部INT中断,在总中断GIE清零的时候,不会进入中断程序执行。3.单片机进入休眠时,要唤醒,常常使用引脚电平变化中断或者外部INT中断。若是前者,按键按下时会唤醒,按键抬起时也会唤醒。如果这个时候还有别的中断,如初始化了定时器,GIE置位了,两种中断就会冲突 4.如果PIC单...

有关单片机的初级问题
1.如果参数在调试的时候就确定了,不会因为每一个产品的特殊性而做修改,即统一的参数,那就直接固化在单片机的ROM,不用修改。2.如果对于不同的产品,其参数各自不同,那就是上面各位网友的建议了:使用24CXX、28CXX系列的EEPROM来保存参数,这样可以实时修改,在断电后不会丢失;或者29CXX系列的Flash...

单片机点灯的问题及解决方法?
在进行单片机点灯实验时,可能会遇到以下一些常见问题以及解决办法:1. 点灯不亮或亮度不稳定:首先,检查电路连接是否正确,包括电源、单片机输出引脚、灯的连接。确保电源电压正常,并确保单片机输出引脚已经正确设置为输出模式。如果还是无法点亮灯,可以确认灯是否正常,或者使用示波器检测信号是否正常。2. ...

关于51单片机编程保护现场的基础知识问题
1、只要有中断的情形,最好都要保护现场 2、状态标志位,可能改变的寄存器都要保护 3、每次保护的寄存器当然不一定相同,这个要视情况而定的。但是记住状态标志位一定要保护!就是在状态寄存器中的标志位!最后,这些情况指的都是汇编的情形。如果你用的是C语言,那么,这些事情编译器都自动帮你做好了...

单片机编程时出现undefined identifier是什么意思? 大哥们教教我吧...
有时候,大小写也是一个常见的错误源。例如,如果你定义了一个无符号整型变量为"unsigned char num",但在后续代码中误写为"NUM",就会导致编译器找不到这个标识符。对于单片机编程的基础,尤其是C语言部分,理解一些关键字的含义至关重要。例如,"short"和"long"用于表示不同长度的整型数据,"unsigned...

基于单片机的电子时钟毕业答辩常见问题
基于单片机的电子时钟毕业答辩常见问题:1 可以围绕硬件电路提问 如:电子时钟显示器的接口驱动能力?是属于静态显示还是动态显示?采用的显示编码是共阳极还是共阴极的?电子时钟功耗有多大?有没有采取降低功耗的措施?2 也可以围绕软件提问 如:如何实现秒、分、小时计时的?主程序的功能有哪些?除了主...

单片机 关于考研复试的问题
1、串口类型?是全双工通用串口,TTL电平,如果需要和其它主机进行通讯进行电平转换,直接接MAX232就可。2、外部存储器扩展大小?取决与单片机的寻址能力,也就是说,只要你能分配出地址就可以使用。3、指令问题,例如解释MOV A@Ri 指令(基本都有)?MOVX @Ri,A ;累加器A传送到...

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

拱虎19653879045问: 51单片机编程问题 -
田东县再林回答: 1、uint a是16位.SBUF是8位.目前来看,你只能显示0-255.需要考虑接收两个字节再更新到a.2、while(1)里面的display只调用了一遍.所以只有最后送的内容显示在上面.没有扫描成功.改成:while(1){ display(a);} 先看看吧.

拱虎19653879045问: 51单片机编程遇见的问题 求大神指导!
田东县再林回答: 1. 单片机在上电时,大部分寄存器都有一个默认初值(数据手册中都会提到).这些初值标定了一种状态,只有和自己需求不符合的才进行改动,否则都不用写出来. 2.这是使用的中断向量标号,用来确定是那种中断 3.定时器定时完成后,有两种方式,咱自己去查询标志位(当标志位置一时说明计时1/120s到了)或者他自动直接产生中断进入中断函数处理. good luck! 步行者===电子单片机团 qq:1320249827

拱虎19653879045问: 51单片机编程的一些问题 -
田东县再林回答: _nop_();是单片机C语言中一个空指令与汇编语言中的NOP是相同的,时间为一个指令周期,晶振的12个机器周期,12MHz晶振则执行这条指令用时1us=[12*(1/(12*1000000))]

拱虎19653879045问: C语言51单片机编程问题
田东县再林回答: 不一样的. led<<1; 这句代码并没有改变 led的值 而 led = led << 1; 是修改了 led的值的

拱虎19653879045问: 51单片机程序有一些小问题,求帮助 -
田东县再林回答: 这里定义的是位变量:sbit LSA=P2^2; //138译码器端口控制 sbit LSB=P2^3; sbit LSC=P2^4; 这里赋值什么意思:LSA=m; LSB=n; LSC=p;

拱虎19653879045问: 51单片机,C语言的一些问题. -
田东县再林回答: 在key1_down函数的开始 bit flag这里把flag初始化为零.因为假设没有按下按键,返回的flag就是随机的,那么就可能是1.所以会跑到D2那里

拱虎19653879045问: 51单片机的编程问题 c语言 -
田东县再林回答: //开始文件头自己按需要写出 sbit Key1=P1^?;//需另设 sbit key2=P?; sbit Ou=...

拱虎19653879045问: 51单片机程序问题 -
田东县再林回答: 主循环 sbit LED =P1^1;//LED的I/O口 LED = 1; bit 定时器时标标志; char 时标累积数; while(1) { ... if(定时器时标标志 == 1) { 时标累积数++; if(时标累积数 == X)//根据定时器的时间来确定X的数值,如定时10ms, //那X=50,就可以实现亮500ms灭500ms { LED = ~LED;//进行状态反转 &nbsp肠单斑竿职放办虱暴僵; 时标累积数 = 0; } 定时器时标标志 = 0; } } 定时器中断程序 { TH0 = 0x.. TL0 = 0x.. //定时器初值 10ms 定时器时标标志=1; }

拱虎19653879045问: 51单片机的问题?
田东县再林回答: 这个是因为你使用了一个RTOS,连续的循环导致CPU占用过高,而在DELAY子程序中CPU可以空闲出来做其他的任务. 不仅仅是单片机,包括在PC机上也一样,在单任务操作系统中比如DOS中,你用循环和定时器做延时是一样的,而在windows或Linux中延时一定要用sleep函数,这时,CPU可以被分配给其他的程序,这样CPU占用率就下降了.


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