单片机程序问题 本人初学单片机看到一个例程不知道是什么意思,屏大家帮忙分析一下

作者&投稿:蒯甄 (若有异议请与网页底部的电邮联系)
有条单片机的程序,keil里显示有错误,不明白是什么意思大家帮忙看一下吧~

13行少分号

你好像写了 L2 = 0 点亮了灯;
写个 L2 = 1 试试。

这个是最简单的单片机点灯程序,而且是最浪费单片机资源的一种程序,不过也是最初学习者便于理解的一种方式:
第一:定义LED1,LED2及LED3分别连接到P1.0 \P1.1及P1.2口线上。
第二:进入主程序后,初始化变量i=0;(便于等会延时使用)
第三:LED1=0;如果是单片机P1.0口接LED的负极,则这个时候,LED被点亮了。
第四:for(i=0;i<30000;i++);这个语句是延时语句,因为在这个语句中,未执行任何动作,假如单片机每执行一条语句需要用时2us,那么,这里for循环了30000次,就是30000*2us=60000us=60ms,在这60ms里,LED1=0;一直成立,也就是灯一直点亮;
第五:LED1=0;这个时候,就将LED1灯熄灭了。熄灭了多久呢?也就是后面的那个for循环时间决定的!
至于后面的LE2及LED3分析一样,希望你可以看懂了。等你学会单片机后,估计这样的延时你再也不会丢main函数里执行,而是定时器中断里去执行,不用一直等待for循环来浪费时间,为什么浪费时间呢?等你学会中断的概念就明白的。希望对你有用。


丰都县18456302340: 单片机程序问题 -
支券蝎毒: 1、你没有启动AD2、你怎么也的有检测一个转换结束状态才能读取AD值吧3、看看硬件是不是有问题.选择的通道对不对?4、用万用表量一下输入有没有变化.

丰都县18456302340: 单片机初学者程序问题 -
支券蝎毒: 子程序中,把0039H压入了堆栈,然后RET,就返回到了0039H.而0039H,是 ADD A,#04H 的第二个字节 04H 的存放位置,在此处取指令,就把 04H 当成了指令,即 INC A.所以,最终 (A)=31H.

丰都县18456302340: 单片机中程序执行问题. -
支券蝎毒: 这个问题吗.用我的话来说吧,没有受过正规教育. 一般的单片机程序,都要有一个大的循环,在没有外部输入的情况下,程序一直在这里面转进行检测是不是有外部输入. 如果没有就不停地转,否则检测到了外部输入,就进行对应的处理或动作,当处理结束后便返回了外面的大循环继续转圈圈.就是那么一个过程,假如不转圈了(就是看门狗的引入问题了),说明程序或者跑飞或者挂了.然后进行复位.就是那么回事.

丰都县18456302340: 一条单片机程序问题
支券蝎毒: 单片机置1(高电平)是灭灯,置0(低电平)是亮

丰都县18456302340: 单片机程序出现这种错误咋办 -
支券蝎毒: 你这不是单片机程序有错误,而是仿真图有问题.你的仿真图中有单片机,加载程序了吗?如果加载了,删掉,再运行,如果还是提示这些,就说明是仿真图的问题,查找仿真图的错误.如下图,画红圈项为空白,就删掉了加载的程序.

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

丰都县18456302340: 有关单片机程序的问题 -
支券蝎毒: sw=sw&0x3c是sw的值与0x3c按位作与运算,结果送回sw. 即sw的中间4位有效,前面两位和后面两位都清0;0xf8是16进制数f8,相当于二进制的11111000,或者十进制的248 其实程序的作用就是P3.3作为一个开关,控制P1.2的通断

丰都县18456302340: 单片机程序问题 -
支券蝎毒: AD转换,一般是将外接的0~5V的电压,变换成为0~255.如果想要用这些二进制数字,显示出来5.00V,除以51,则是很正常的.如果还有什么不明白,可到我的空间来留言.

丰都县18456302340: 一个简单的单片机c语言程序问题 -
支券蝎毒: #include <reg52.h> /*C52单片机寄存器、端口定义.比如程序中的p0,p1就定义在reg52.h中.*/#include <absacc.h> /*用“#include<absacc.h>”即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、...

丰都县18456302340: 我是单片机初学者,有个问题希望帮忙解决一下,这个程序显示不好使, -
支券蝎毒: 看样子是几个字符循环显示.没看到硬件所以给你点提示吧!1dis_buf和子函数的p 是否有效,2p 是不是应该放在循环外面3显示屏是否需要初始化?

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