有关51单片机的几个小问题?
1:我想用51单片机做一个延时,但延时不能影响到程序的执行,就是我要继续执行下面的程序,但不能用执行空语句这种浪费运行时间在做无意义的操作来达到所需的延时时间,有没有办法...
1:我想用51单片机做一个延时,但延时不能影响到程序的执行,就是我要继续执行下面的程序,但不能用执行空语句这种浪费运行时间在做无意义的操作来达到所需的延时时间,有没有办法是一边继续执行,达到延时时间就会响应的,如果用两个51单片机该怎么做? 2:如果我要用多个51单片机来检测,那要注意什么?他们之间会不会有影响。 菜鸟级的人在求救,谢谢!
展开
1个回答
展开全部
第一个问题,很好解决,需要用到单片机和其他微控制器微处理器都有的功能:定时器以及中断。看来你是还没学到定时器呢!好好看看学51单片机课本上的定时器以及中断部分的内容把!简单的操作就是初始化定时器和中断并且开定时器和开定时器的中断和总中断,只要定时器的计数寄存器累加到溢出状态,就进入中断服务子函数操作你想做的操作。在定时计数的期间,你的单片机还可以执行其他的操作,根本不需要浪费单片机的时间。
第二问题,请说清楚你做多单片机检测什么,这些单片机之间需要通信否?距离多远(一个电路板内、还是几米的近距离两电路板通信,还是长距离通信)???
补:
如果两单片机相互之间通信频繁,不建议你直接用I/O口做高低电平另一边检测高低电平的方法。因为那样更加复杂,需要进行时钟的同步,并容易出错。建议用异步串行通信,就是两个单片机的TXD和RXD引脚(即P3.0和P3.1)交叉连接,用串行通信的方式进行通信。
如果只是IO不够可以用8255或者FPGA扩展。
第二问题,请说清楚你做多单片机检测什么,这些单片机之间需要通信否?距离多远(一个电路板内、还是几米的近距离两电路板通信,还是长距离通信)???
补:
如果两单片机相互之间通信频繁,不建议你直接用I/O口做高低电平另一边检测高低电平的方法。因为那样更加复杂,需要进行时钟的同步,并容易出错。建议用异步串行通信,就是两个单片机的TXD和RXD引脚(即P3.0和P3.1)交叉连接,用串行通信的方式进行通信。
如果只是IO不够可以用8255或者FPGA扩展。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询