在protues8里打开比这个版本低的文件时,显示缺少库,没有其他的错误,可以不可以编译,怎么能编译?能不能忽略库?
各位大侠,下面的程序本人在STC89C51上能够通过,马达正常运行。但烧录在STC15F101W里面后,步进马达不转,只是震动,不知什么原因,请大家帮忙分析一下,谢谢!
用单片机控制一个加热管,现在纠结用可控硅加光耦控制好,还是用固态继电器好,除了固态贵一些,使用方便一些是不是和可控硅没啥区别
为什么在LED点阵显示的时候里面的 通过 595 发送 2 个字节的数据 的函数中SER = dat >> 7; //从最高位开始发送 dat <<= 1;一位一位的给dat了那单片机是怎么得到的,还有就是显示的时候怎么一直用不到段选的数组求大佬帮忙看看,谢谢!谢谢!#include "reg51.h"#include "intrins.h"typedef unsigned int u16;typedef unsigned char u8;sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4;u8 ledduan[]={0x000x000x3E0x410x410x410x3E0x00}; // 类 似 于 动态数码管的段选 u8 ledwei[]={0x7f0xbf0xdf0xef0xf70xfb0xfd0xfe}; // 类 似 于动态数码管的位选void Hc595SendByte(u8 dat){ u8 a; SRCLK = 1; RCLK = 1;for(a=0;a<8;a++) //发送 8 位数 { SER = dat >> 7;dat <<= 1;SRCLK = 0; //发送时序_nop_();_nop_(); SRCLK = 1;} RCLK = 0;_nop_(); _nop_(); RCLK = 1;}void main() { u8 i=0;while(1) { for(i=0;i<8;i++) { Hc595SendByte(ledwei); LED1(ledwei); delay(10); } }}
求助各位大神,我有个硬件电路使用了2片74hc245做扩展输入,4片74hc573做扩展输出,所有的数据线都接在P1口,片选信号线接在P3口。我现在的思路是这样的,在2ms定时中断中,每20ms控制一个片选信号,比如0-20ms控制1号245芯片,采集输入信号,21-40ms控制2号245芯片,以此类推,到41-60ms控制573芯片,输出信号。 求助各位大神有没有更好的思路,或者方式。 输入输出数据线都用P1口是因为单片机I/O口不够了,而且硬件电路已经搭建好了。
高手看一下,下面这程序我想让步进电机正转10-15秒后再反转10-15秒再正转,周而复始。程序需要怎样修改?谢谢!/@@*1、本程序用于测试4相步进电机常规驱动 2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来3、速度不可以调节的过快,不然就没有力矩转动了可以按照给的原理图接线*/#include <reg52.h>unsigned char code F_Rotation[4]={0x040x080x100x20};//正转表格unsigned char code B_Rotation[4]={0x200x100x080x04};//反转表格void Delay(unsigned int i)//延时{ while(--i);}main(){ unsigned char i; while(1) { for(i=0;i<4;i++) //4相 { P3=F_Rotation[ i]; //输出对应的相 可以自行换成反转表格 Delay(750*10); //改变这个参数可以调整电机转速 } }}
要求用汇编语言实现这样一个功能:在任何时候,若按下按键后,数码管必须显示键值,并延时3s后,恢复原来的显示内容与功能。并且此功能不影响其它显示和功能键。因为外部中断有其它用处不能用,该怎么实现?
我在网上看到的程序给单片机定时器T0打开和给定时器高位和低位赋值:TMOD=0X01;EA=1;ETO=1;TH0=0Xfc;TL0=0X18;TRO=1;程序中备注TH0=0xfc;TL0=0x18;中的0xfc和0x18是表示给定时器0的赋值1ms的,师傅在讲课时说th0=(65536-50000)/256tl0=(65536-50000)/%256然后通过判断执行20次等于1ms,怎么不一样,这个是怎么得出来的,还有定时器高位和低位之间是什么关系?搞不清!
大端模式和小端模式对单片机开发的影响,是不是只对union类型有影响,大端模式和小端模式在单片机中怎样存储的?
请问怎么两个单片机通讯啊STC的,比如U1输出一个低电平让U2检测,U2检测到了延时5秒钟输出高电平给U1。我把IO口连在一起不起作用啊下面是U1if(p37==1){p01=0;delayms(35);p01=1;p37=0;}// }复制代码下面是U2while(1){if(p37==0){delayms(5000);p37=1;}}复制代码
最近再做汽车CAN通讯遇到问题在商家给的协议里出现了这个CAN通讯格式报文名称 ID 频率 类型 字节 100ms请问这里的100ms在ID和数据之间,是表达什么意思ID和数据不是在一个数据帧里吗商家说这是频率,周期,不太没那个白请问哪位大神能帮忙解答一下
比如 梯形加减速算法 指数型加减速算法,小白最近在学步进电机,可是不是太会 网上也找了一些文档,可是没有程序,不知道框架怎么写 大神能分享一下吗?
这两天在学习红外的发射程序写法,有的文章说发送高、低电平,有的说高电平时发射,低电平时不发射;实现38KHz有的说需26次,有的说13次(相同的晶振12);弄得稀里糊涂,想请明白人用最简单明确的语言帮助弄清几个概念:1、一个方波由一个高电平和一个低电平构成,如果高、低电平时间相等,那么单片机定时器必须中断2次。以晶振12为例,一个机器周期=1微秒, 1/38=26.3微秒, 也就是需中断26.3次才能实现,13次高转低,13次低转高,所以取13,单片机的定时初值是FFF3,对吗?2、引导码由9ms高电平+4.5ms低电平组成,9ms高电平时打开(使能)发射管,4.5ms低电平时关闭发射管,对吗?3、后面的32位代码也同法发送,即:“0”: 发射管打开0.56ms 再关闭0.56ms, “1”:打开0.56ms,再关闭1.69ms,对吗?4、16位用户码是指特定的遥控器(相当于发射器)代码,后面的8位操作吗和8位反码是指这个遥控器上的键值代码,对吗?5、由上可知,38KHz的调制信号只作用于高电平,调制高电平,与低电平无关,信号中的低电平相当于延时,对吗?
如题,液位传感器拟采用电容式TM601芯片,需要实现能监测容器内液面高度的变化,并记录液面变化和时间的关系。能导出类似excle表格的数据或者在显示屏上显示液位为Y轴,时间为x轴的2D曲线图。求指导一下