各位单片机高手,哪位帮我分析一下下面这个程序,问题出在哪儿?谢谢

作者&投稿:况亲 (若有异议请与网页底部的电邮联系)
各位单片机专家帮我分析一下这个程序 谢谢啦~

你先从mian函数开始,就是开始的时候给P1口为0xfe;就在while的死循环里面让二极管发亮,delayms(200);这函数是延时函数,就是延时让我们能看到发光二极管两。如果不延时的话,指令执行的时间太短我们看不到发光二极管两的,起码要1ms才能让我们肉眼能看到。
P1=LED;就是把LED赋值给P1口,让发光二极管发亮。。。
你自己慢慢分析就知道了。学好分析以后对你很有用 的

你的程序有点小错误!
CJNE R1,#6,MAIN
INC R1
AJMP LOOP
这个地方出了毛病,因为CJNE为不相等转移指令,所以呢,程序运行到它的时候都会转到MAIN ,然后R1又重新负值:0
所以程序不会运行到INC R1指令,也不会运行,AJMP LOOP 指令,所以,你实验的时候总是循环把数值7FH给P1口输出! 也就是说只有第一只灯亮!
本人认为这部分应该改为:
CJNE R1,#6,LOOP
INC R1
AJMP MAIN
试试看吧!!!!!

首先给你解释一下“<<”位移符的作用:
因为你的P1=0xfe,二进制数据就是11111110,左移一位之后为11111100,0往左移了一位,但是最低位系统自动以0补齐,而0x7f的二进制数据位01111111,所以if语句是永远进入不了的。
当然,针对此问题,C51给出了一个解决方案:
使用_crol_()函数可解决此问题,它的用法是:P1=_crol_(0xfe,1),它就是左移一位,但是低位用1补齐,而且当P1=0x7f(01111111)时,再移动一次,0又回到了低位,其他数据也是1,又变为了初始数据0xfe。
希望我的回答能帮助到你。

不会进if(p1==0x7F){}
如果把第一个P1<<=1改为P1>>=1就能进了.

P1永远不会等于7f


哪位单片机高手帮我解释一下下面程序中的LJMP什么意思?
ljmp是长跳转。因为30H之前有中断入口地址,所以不能随便占用,需要跳过去,我个人都是跳转到0100H,根据个人爱好,呵呵

哪位单片机高手帮帮忙啊... 请说详细一点
一个语法错误如下:void T1_time()interrrupt 3中的关键字应为interrupt 其它错误:1.两个中断中的655536应为65536 2.T1中断中你重装的是TH0和TL0,应该是TH1和TL1。

哪位单片机高手可以给我推荐一款初学者用的开发板?我是什么都不会的那 ...
你是单片机的初学者,不适合购买网上功能很多的那种学习板,最好是购买那种比较简单的学习板,价格在40元左右的那种。这种学习板主要功能包括:跑马灯;计数器;按键中断;串口通信;初学这些,以后你就知道该作什么了。

哪位单片机高手帮我编一个 按一下按键高输出电平 再按一下就低电平...
include <reg52.h> sbit key=P1^0;sbit OUT=P1^1;void main(void){ while(1){ if(key==0){ OUT=~OUT;while(key==0);} } }

请哪位懂单片机的高手帮我看一下这四个警告是什么意思啊?
warning C206: 'matrikeyscan': missing function-prototype说的是没有函数原型,要么头文件有问题,要么自定义有问题。WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS说的是有东西没用上。WARNING L1: UNRESOLVED EXTERNAL SYMBOL和WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL都是由...

单片机。。哪位高手帮我把这个程序每句解释一下,谢谢了。
include <reg51.h> \/\/头文件 Sbit p2.0=p2^0 \/\/位定义,此处编译应该通不过,改为sbit P2.0 = P2^0;unsigned char i; \/\/定义字符点亮i,通过i实现占空比电平时间控制 void TIMERD_IRS(void) interupt1 \/\/定时中断 { TH0=(65536-250)\/256; \/\/计数器高字节重载值 TL0=...

哪位高手给看看这个单片机C程序有什么问题,按键按了之后没有反应。是...
sbit KEY1 = PO^O ; \/\/控制频率十位;sbit KEY2 = PO^1; \/\/控制频率个位;sbit KEY3 = PO^2 ; \/\/控制占空比十位;sbit KEY4 = PO^3; \/\/控制占空比个位;你上面写的程序O和0混了。还有 void keyscan() interrupt 0 \/\/外部中断0 { float TF0,TZ1;TR0=0; \/...

哪位高手解答下 单片机用P0口驱动“共阳极数码管” 需要上拉电阻吗...
P0口驱动共阳极数码管,不需要上拉电阻。只需要数码管阳极接电源正,P0.7 -- P0.0接数码管的dp -- a,就可以驱动。单片机P0输出低电平点亮数码管。所说的上拉电阻指的是在信号线上接个电阻到电源上。通常在开漏输出的口线上需要上拉电阻。

哪位高手知道 单片机精确延时1秒得C语言子程序 谢谢了
下面几个是单片机的延时程序(包括asm和C程序,都是我在学单片机的过程中用到的),在单片机延时程序中应考虑所使用的晶振的频率,在51系列的单片机中我们常用的是11.0592MHz和12.0000MHz的晶振,而在AVR单片机上常用的有8.000MHz和4.000MH的晶振所以在网上查找程序时如果涉及到精确延时则应该注意晶振的...

单片机蜂鸣器工作原理是什么?哪位高手可以指教一下
工作原理:蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅...

红花岗区17150794809: c8051F340单片机程序分析,各位高手帮帮忙啊!一定加分加很多很多分!帮忙解析一下啊! -
学善茵莲: TH0 = (-SYSCLK/1000) >> 8 保存的是SYSCLK/1000的高八位,因为SYSCLK/1000本身一般为16 bit的值,TH0是8bit...

红花岗区17150794809: 请各位帮我分析一下用单片机设计一个数字频率计的思路,能详细一点就更好.思路,原理. -
学善茵莲:[答案] 就是利用定时计算1秒内标准1HZ的频率,然后测量你要测的频率

红花岗区17150794809: 一段单片机汇编程序看不懂,哪位能帮忙分析下,谢谢! -
学善茵莲: 1,单片机复位时堆栈指针在内存(RAM)07H地址处,08H-1FH是寄存器区,而寄存器区是单片机使用较频繁的区域,为了避开这个区域,有时需要调整堆栈指针的位置,使之指向大于1FH的位置,8051单片机的内存只有128(80H)个字节,堆...

红花岗区17150794809: 单片机高手来帮我解释这个程序 -
学善茵莲: ORG 30H HA1S: MOV A,#00H ;累加器A清0 HA1S1: JB P3.5,HA1S1 ;等待按键 MOV R2,#10H ;R2=10H LCALL DELAY ;延时 JB P3.5,HA1S1 ;按键有效继续,无效转HA1S1 HA1S2: JB P3.5,HA1S2 ;等待按键 MOV R2,#10H ;R2=10H ...

红花岗区17150794809: 单片机高手帮忙解答哈,初学者来请教,帮我解答一下问题 -
学善茵莲: 1、T1作为波特率发生器只能工作在方式2(即自动重装载模式),你所说的两个模式是不一个概念,一个是定时器工作模式,一个是串口工作模式.2、SMOD当然也可以设为1,为1时波特率加倍.

红花岗区17150794809: 有没有高手帮我解答下单片机的题目.谢了~! -
学善茵莲: 1. 8051 是( 8 )位单片机; 8051的片内用户RAM是( 128 )B. 2.8051的PSW中RS1 = 1、RS0 = 0 ,工作寄存器R0~R7的地址为( 10H~17H ). 3.在8051中若SP = 30H,执行指令POP ACC后,SP =( 29H ). 4.8051复位后,SP的值...

红花岗区17150794809: 单片机高手们给个建议 -
学善茵莲: 以下,是我回答另一位单片机初学者的问题,可能不全针对你的问题,但是,提供的是一种思路,希望你能从我的回答中提取到一种学习单片机的思路,而不仅仅在表象:,一个资深的高级单片机工程师,也不能完全记住液晶,模数数模转换...

红花岗区17150794809: 请单片机高手解答 -
学善茵莲: 首先检查液晶有没有坏,若没坏,在检查一些控制其使能端的连接线,有没有连接错.若还没有...

红花岗区17150794809: 求单片机高手帮我解答一下
学善茵莲:1.8031扩展存储器,你用的2764和6264都是8KB的,这儿不好画图!我简单说说!首先P0 口是地址数据分时合用的,你用一片L4Ls373锁存一下接到2764和6264的低八位地址线上,单片机的ALE端接373的锁存端,2764和6264的高5位地址...

红花岗区17150794809: 请各位高人将单片机详细工作原理介绍一下,越详细越好!
学善茵莲: 单片机,实际是一种通俗的说法,是因为可以集成在一个板上,故通俗说成单片机.但单片机实际有更为专业的说法,叫MCU,也就是微型处理器,其实就是执行代码,以便控制IO口和寄存器.字数限制,写不完.

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