推荐阅读最新更新时间:2024-03-16 14:36
单片机外中断使用方面的问题及其解决方法
在长期使用51单片机的过程中,我们发现单片机在工业生产现场等干扰较强的环境工作时,有时确已产生定义为下降沿触发方式的外中断,然而用仪器测量已经送入单片机的INTX引脚时,单片机却不能够正常响应中断。在排除了可能由程序导致的问题之后,再检查CPU的当前状态,发现中断级别、中断允许、中断触发方式也都表明应该响应中断。后经分析及测试,发现是单片机INTX引脚内部端口锁存器被置为零所致。当端口被封锁为零时,从该引脚引入的下降沿表示的中断申请将丢失,中断当然不被响应。由于程序中并未使用可将端口锁存器置为零的指令,且这种情况的产生具有一定的随机性,并非经常发生,所以认为这种现象可能是因电路干扰或噪声造成锁存器误动作导致的。同时我们还认为这种误
[单片机]
STC15单片机驱动WS2812B七彩LED(汇编混合编程)
WS2812B七彩LED具有集成度高、使用方便等特点,但是800K的数据速率(IO变化速率高达2.4M),对单片机提出了较高的要求,通常是采用SPI+DMA方式驱动, 也有人采用汇编实现,但是要预先把数据转换为按bit存放,在LED级连数量较多的情况下,需要占用极多的存储空间。 在驱动WS2812B上花费了太多的时间,走了不少弯路,记录下来: 简易数字分析仪采样频率最高只有4M,即测量精度为250ns,而信号宽度要求为400ns和850ns,这样测量的结果存在较大的误差,让人误以为信号跳变无规律, 迷失了方向;解决的办法就是利用STC单片机主时钟的内分频功能,语句:CLK_DIV |= 0x07; 将主频降低128倍,
[单片机]
单片机智能气动泵控制系统的设计
在火炮身管气动擦拭过程中,会遇到气体的计量问题。流量的精确测量是当前测控系统领域的一个重要内容。以C8051F020 单片机 为核心,可以设计一套智能气动泵控制系统,实现对气动泵进行状态检测和控制。 C8051F020单片机功能简介: 8051F020器件是完全集成的混合信号系统级MCU芯片,具有64个数字I/O引脚。其主要特性:1)高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS);2)全速、非侵入式的在系统调试接口(片内);3)真正12位、100ks/s的8通道ADC,带PGA和模拟多路开关;4)真正8位500ks/s的ADC,带PGA和8通道模拟多路开关;5)两个12位DAC,具有可编程数据更新方式;6)
[单片机]
基于51单片机的信号源的设计
一、引言 随着飞机供电系统的发展,交流供电已经成为目前大多数飞机的主要供电方式。目前各 *仍延续着传统“变频器—发电机—拖动台”方式的热台调试技术。其缺点是投资大,修 理成本高,能源消耗大,操作繁杂。针对以上热台调试技术的缺点,我们进行了对航空交流供电系统冷台调试技术的研究。本文所介绍的信号源,是为冷台调试系统供电以及提供检测 信号的环节。 二、信号源主要模拟信号 在研究过程中,根据航空交流供电系统和调试工艺的要求,确定系统主要模拟的信号如 下: 发电机输出三相电压信号:频率、电压可调的三相交流信号:360-440Hz/100-300V,功 率 200VA,调节精度:频率步长≤0.1Hz,电压0.1V。 网上电压信号:频率、电压可
[单片机]
51单片机-液晶屏代码单独文件
同样我们创建好“lcd.c”和“lcd.h”,然后添加进工程文件中。“lcd.c”的代码集合了所有宋老师为我们写好的各种常用函数。 1.lcd.c的代码 #include reg52.h #include lcd.h /* 等待液晶准备好 */ void LcdWaitReady() { unsigned char sta; LCD1602_DB = 0xFF; LCD1602_RS = 0; LCD1602_RW = 1; do { LCD1602_E = 1; sta = LCD1602_DB;//读取状态字 LCD1602_E = 0; } while
[单片机]
单片机引脚与端口,引脚和GPIO的区别
一,引脚与端口: 1.引脚就是芯片外接的引脚啊,一个芯片至少有VCC,GND引脚,象51单片机还有IO引脚,串口引脚等,引脚就是物理外接的一个个管腿啊。 2.端口是单片机内部(CPU单元)和外部IO的接口组,比如说PA端口,有8个引脚,PA0~PA7。端口在IO空间映射有寄存器,这个寄存器反映当前端口的状态,如PA0口上输入的电压是0~5V的信号,单片机在映射进寄存器时会定义一个门限(如1.8V),低于这个门限寄存器中相应位是0,高于这个门限相应位是1。一般端口还有其他控制寄存器,如控制端口引脚输入输出的寄存器,如控制端口引脚复用的寄存器等。当设置端口引脚为输出时,向相应的输出寄存器的相应位写1,该端口的对应IO引脚就会输
[单片机]
AVR单片机isp下载时的常见问题解决方案
isp进行了简单总结,通过在线编程的方式(高压变换的同时不断复位芯片来实现对芯片的编程),可以对MCU的flash、eeprom、熔丝位、加密位等进行修改;该下载线支持时钟在8kHz以上,电压在2.7-5.5v之间的AVR单片机; isp下载出现问题一般是下面几个方面: 对于atmega64、atmega128,除了以上注意的以外,需要注意这两种芯片有专门的isp下载管脚(串口0),而不是复用MISO和MOSI,而且要彼此对应对了(这次自己就对应错了,如RXD0其实应对应MOSI): 最后贴一下isp简易连接图,以供以后参考:
[单片机]
51单片机控制步进电机-让电机转起来
摘要: 本节介绍用简单的方式,让步进电机转起来。其目的之一是对电机转动有直观的感受,二是熟悉整个开发流程 本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关基础教程网上很多,可以自行学习 一、软件清单 需要用到的软件有keil5编译软件、STC程序烧录软件 二、控制原理 根据TB6600驱动器原理,向PUL口发送脉冲,每发送一个脉冲,电机就转一步。通过单片机延时的方式,切换PUL口电平产生脉冲,从而控制电机转动。 三、程序代码 //毫秒延时函数 void delay(unsigned int z) { unsigned int x,y; for(x=z;x 0;x--) for(y
[单片机]