C51大神进来帮忙下。。。

作者&投稿:钟学 (若有异议请与网页底部的电邮联系)
【求助】C51大神来详细解释一下这一句类型转换代码~

void(*reset)(void)是函数指针,指向一个不带参数且返回值为void的函数的入口地址,(void(*)(void))是类型转换,把它后面的0这个数转换成函数入口的地址,在赋给reset。在接下来的程序中,只要*reset()就能调用这个函数。在你这个例子中,执行*reset(),程序指针pc的值变成0x0000,也就是从头开始执行,那么就无所谓函数返不返回了,因为返回没有意义。程序从0x0000开始执行,又重新执行一遍变量的初始化,各个寄存器的值重新赋值。所以这句话原本是调用一个从地址0开始的函数,但是地址0是整个程序的开始,所以相当于复位。
(汇编代码参考:
CLR A
PUSH A
PUSH A
RET

不用中断,不好实现啊
主程序:发光二极管的亮和灭
外部中断:检测按键状态(或者用 计时中断 来检测按键状态)
work()函数放在中断程序中

while(1)中改为一下

for(x=0;x<35;x++){
P1=tab[x];
delay20ms();
}


速求51单片机大神帮忙
这个程序主要是考验对定时器的使用,PWM频率是1KHZ,定时时间最长是1s\/1000=1ms,在这1ms的时间内改变P1.0的状态,每次改变10%,就是改变1ms\/10=100us的时间,当占空比超过100时可以考虑关闭定时器,直接使P1.0输出高电平,低于0时,方法一样,直接输出低电平,至于显示你采用的是数码管可以做个段...

C51大神进来帮忙下。。。
while(1)中改为一下 for(x=0;x<35;x++){ P1=tab[x];delay20ms();}

求51单片机大神帮忙看看一小段代码
XBYTE[0xE000] = 0xff; 是指向地址为0xE000的外部端口输出数据 0xff 同样 XBYTE[0xC000] = (1<<dspcom);是指向地址为0xC000的外部端口输出数据 数据是1左移dspcom位,若dspcom=0 则数据为1 即0000 0001 若dspcom=2 则数据为2 即0000 0010 若dspcom=3 则数据为4 即0000 0100 ...

51单片机 求 大神帮忙!
执行XRL A,@R0是03H异或上37H,结果存放在A中,为34H,(17H)仍为37H 执行CPL A是对34H取反,结果存放在A中,为CBH

怎么开通51大神们帮帮忙
需要有种子密码,设置种子密码是为了防止一些人在51上恶意的发一些垃圾东西,而51的种子码需要级别超过5级以上才可以领取,每天可以领取10个。

寻找51单片机大神帮助解决问题。。急。。
有可能是液晶的复位脚,没稳定好。先延时一段时间再显示。试试。

51单片机 大神谁能帮我解读一下下面的编程 #include<reg52.h> #define...
include<reg52.h>\/\/包含52头文件 define unit unsigned int\/\/宏定义 无符号整型 define uchar unsigned char\/\/宏定义 无符号字符型 sbit duanx=p2^6;\/\/数码管段选引脚(估计是锁存器,这就是典型的不规范取名)sbit weix=p2^7;\/\/数码管位选引脚(从程序看,估计也是锁存器,不规范+1)uchar show...

熟悉51单片机及DAC0832芯片的大神们进来帮帮忙,为啥我按这个电路搭出...
检查一下运放输出负载是否太大拉不动(换一个阻值大10倍看有没变化;不行的,再把负反馈电阻换大,同时测量输入端2脚的变化是否线性;再不行,断开DAC输出,单独用电位器调运放输入端)

求51单片机大神指导。
做双机通信实验时候可用3根杜邦线连接2块开发板的RXD TXD 和GNd, 注意的是RXD和TXD要交叉连接. 然后就是串口程序了

求51单片机大神帮忙看个程序
f(com==13) \/\/数字D键,计算总价 这里少一个"i",应该是if

枞阳县15718179980: C51大神来帮个忙E:\710.C(5): error C129: missing ';' before 'LED' -
邗苛盐酸: 你第三行定义的是unchar,而在第五行使用的是uchar,所以会报错.

枞阳县15718179980: c51运算中的自加(++)是什么意思啊求大神帮助 -
邗苛盐酸:[答案] 如i++,就是使用i之后,i 加1,++i 就是未使用i 之前,i 先加1,同理:i--, --i 希望能够帮到你!

枞阳县15718179980: C51汇编题目,程序我已经编好,求大神帮看下,有没错误,有错误帮改下 -
邗苛盐酸: .”,应该是那50个存储单元中最大值的那个地址大的错误有两点: 1、你定义的xdata_st和xdata_rlt不对;&gt: (unsigned char xdata*) 0x1200 2、“该最大值所存放单元的地址存入.,1200h的地址,你定义11200h干什么,而你保存的 temp: *(xdata_rlt+1)=(unsigned char)(temp) *(xdata_rlt+2)=(unsigned char)(temp&gt? 外部地址定义要加xdata修饰;8) 是地址吗?地址是16位的,而temp不仅不是地址,还只是8位数据. 小的错误就很多了,比如行尾少了分号

枞阳县15718179980: 如何在C51中实现带进位的循环移动大神们帮帮忙 -
邗苛盐酸: 在C语言中要带进位的循环移动有什么用啊,用C语言还要去操作CY干什么啊.要循环移动的话直接用_crol_()或者_cror_()这两个函数就可以了啊! 查看原帖>>

枞阳县15718179980: 请大神帮忙看看我的C51程序错在哪里?查询方式键控八路流水灯.谢谢 -
邗苛盐酸: 我帮你简化一下: #include#define ui unsigned int #define uc unsigned char sbit key=P3^4; void delay(ui time) { ui i; for(i=time;i > 0;i--); } uc led[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0xFF}; void main(void) { uc key_num=0; P1=0...

枞阳县15718179980: 各位大神帮我编写一个c51单片机延时程序,功能:按一下开关LED亮10秒后熄灭. -
邗苛盐酸: 用定时器计时10就可以了,检测到按键按下后启动定时器,在定时器的中断函数里判断到了10秒就关闭LED

枞阳县15718179980: 大神来指导下,keil c51 v9.52安装不成功怎么破?用注册机生成的许可号也不得.如图,这是什么原因? -
邗苛盐酸: 提示很明显啊,你没有管理员权限,导入license需要管理员权限,使用管理员用户登陆操作就可以了.

枞阳县15718179980: 求大神做一个C51单片机的程序.问题如下:实现8位共阴数码管循环显示数字20121111,顺便求图.不胜感激!
邗苛盐酸:;项目五 ;任务2 ;点亮8位8段LED数码管 ;CA 共阳 - Common Anode 共同正极 ;CC 共阴 - Common Cathode 共同负极 PORT_O0 EQU P0;DIGITRON字符输出 PORT_O1 EQU P2;DIGITRON字位输出 ORG 0000H LJMP MAIN ORG 0030H ...

枞阳县15718179980: 小弟不胜感激,哪位大神指导哪里错了? 用C51变了个程序,结果编译出错了. -
邗苛盐酸: 我试了,没问题啊unsigned char ledchar[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xFB,0xB0};...

枞阳县15718179980: 求大神帮我写一个keil的C51程序.adc0832的数据给单片机,再由can控制器sja1000 -
邗苛盐酸: 例程有很多,不过我用的是mcp2510,电平转换用1050,工作可靠,如果要程序,我可以提供

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