凉山特产网 加入收藏  -  设为首页
您的位置:梁山特产网 > 知识百科 > 正文
51控制单片机。求高手帮忙
51控制单片机。求高手帮忙
提示:

51控制单片机。求高手帮忙

1、你先要明确你的爬虫的结构及其动作要求,再根据传感器数量、动作单元数量(也就是你的伺服舵机数量)来决定单片机所需的端口数量
2、再明确AI的控制逻辑,这个决定了单片机的处理能力需求及片内程序空间的容量
3、最小系统搞不定这个课题,单片机的驱动能力有限,你需要根据你伺服的电流、电压的需求来设计单片机对它的驱动电路
4、软件方面建议用C语言,这个在处理复杂问题上要比汇编更容易实现
不过我最推荐的做法是:使用Arduino来进行控制,这样有很多现成的软、硬件模块可以直接使用,如果你有一定的动手能力,那用ATMega系列的单片机自己动手搭建Arduino最小系统来做为主控件,驱动单元可以买现成的或是去Arduino.cc找现成的电路来自己制作
这不是个小工程,需要时间和耐心,把它完成,一定很有意思

你好,菜鸟想一个关于51单片机的问题,谢谢
提示:

你好,菜鸟想一个关于51单片机的问题,谢谢

【1】上拉电阻,上拉是动词(引用英语概念)。表示把电阻一端连接到管脚,另一端连接到供电端。另一个说法是下拉电阻,则另一端接地。
【2】排阻,表示一排若干电阻做成一个元件,各阻值一般相同。目的就是为了缩小体积。有两大类:一类是多只电阻的一端全部搞到一起,他们有一个公共端。分多种(4位,5位,8位……),常用的9个脚(8位):比如你用的P0口正好就用8个电阻。他们一端各自连到IO口。另一端就是公共端了,直接接到电源端,就是上拉排阻的意思,用起来方便。接到地,就是下拉排阻的意思。另一类是,一排电阻两端分别独立引出来。体积更小。你在电脑主板上可以看到。
【3】AT89S52的 P0口 做普通IO口时,是OD开漏输出。必须上拉电阻。外接总线设备,且用MOVX或MOVC指令时,它不需要上拉。这是由内部结构决定的。

51kan tv 是什么
提示:

51kan tv 是什么

很多用户是在找世界杯直播地址的时候被强推的51kantv,原本其实这是转播插件,PPTV等在线直播买的都是中央台的版权,所以要通过51kantv(实际是 szPlayer)来“偷”CNTV(央视的在线播放程序),大家去找C:\Program Files\szPlayer\ 这个目录,里面提供51kantv卸载程序;
但是与之同时也有很多的恶意病毒伪装成51kantv,这跟我们之前遇到的很多桌面图标类似,51kantv的实现手段也类似,都是通过篡改注册表新生成的51kantv病毒图标.51kantv删除之后又会重新生成,也是有病毒程序保护键值的.51kantv手动搞起来非常繁琐.所以世界杯期间找直播地址要非常小心了.还是用腾讯或者cntv的直播看吧.
对于正常的51kantv文件是无病毒的;但涉及未经证实的版权问题,我们在此不提过多建设性建议

51单片机的编程问题?
提示:

51单片机的编程问题?

1:C51编译器如何区分位地址和字节地址 是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如: C51语句: P0 = 1; P0声明为sfr,因此编译成:mov 80h,01h,将把0x01数据送入0x80单元,由于0x80单元物理上对应P0端口,因此,P0.0脚将输出高电平(其实是呈现高阻态,P0口独有的),其他.1-.7脚输出低电平。 C51语句: P0_0 = 1; P0_0声明为sbit,因此编译成:setb 80h,这将把位地址空间的0x80地址的bit的值置1。这个位正是P0口的bit0,执行后,P0.0将输出高阻态。而P0.1-.7不会变化。 2:C51为什么要嵌套汇编 51单片机一个显著优点就是指令执行时间固定,因此可以适应时序要求严格的场合。例如符合ISO7816协议的cpu卡的读写,对时序要求比较严格。其实就是用io脚做出来的同步半双工串口。支持cpu卡的程序一般比较庞大,需要用c51来组织,但是由于c编译的不确定性,必须把底层程序封装成汇编语言模块嵌入到工程中。这就带来几个问题:如何声明函数、参数如何传递等。限于篇幅,不能说得很细。下面举例: 汇编程序单独保存一个文件,加入到工程中,函数如下: _proc_a: mov a, r7 inc a mov r7, a ret 用c语言在.h文件中声明: extern unsigned char proc_a(unsigned char val); 调用时形如: retvalue = proc_a(0x11); 说明: a:汇编程序如果带参数,则需要在汇编程序前多加一个下划线。而声明它的地方不用加(伟福编译器这么要求的)。 b:函数的形参中第一参数用R7传递,函数返回值用R7返回,这是C51的通用规范。其他参数都有相应规定。函数可以返回一个位,用psw的c位返回。c:上面的语句,执行顺序是把0x11给R7,然后跳转子程序,子程序将它加1后送回。 d:函数跳转到汇编程序时,本区的R0-R7,A,B,PSW,DPTR等寄存器可以供子程序使用,不必考虑调用后是否要恢复这些常规资源。上例中,A的值被函数使用了,编程者不必恢复调用前的值。

51单片机,简单问题
提示:

51单片机,简单问题

一般情况下我们都是以1作为高电平,0作为低电平,因为这样符合我们日常生活中的认识。但是芯片的高低电平有时候不是这样的,单片机是以1作为高电平(这时也是高电压),0作为低电平(低电压)。

但是并不是所有的逻辑电平都是这样(1为高,0为低)的。比如RS-232C标准规定的逻辑电平与TTL数字电路(例如 单片机)的逻辑电平就不兼容(不一定相反,只是电压高低规定不一样)。所以设计电路时最好仔细看看芯片的参数。

可以把高电平理解为高电压,低电平理解为低电压,但是各种芯片的高低电压不一样。如有的芯片高于3.3V就为高电平,有的要高于5.5才为高电压。

不知对你是否有帮助?