单片机

关于单片机软件框架的一点思考

耗尽温柔 提交于 2020-01-29 23:45:44
软件产品的文档很重要,其实我想说,任何东西都要有说明书,不然别人是很难使用的。最近一段时间有在看OSAL这个为操作系统,看了很就也不会用,其原因嘛,我实例有限,另外就是TI自己的文档不够全面,仅仅是zigbee好蓝牙的芯片中使用,其他mcu的平台基本上没有现成比较好的,有的网友移植了,也没有好好说明,导致osal的这个使用率没有rtos的高。 其实我个人认为,小项目使用裸机(定时器+状态机),稍稍大一点项目就使用RTOS。 还有一种是时间片的框架,我反而认为不太好,适合玩玩,因为这个框架,说实在的,用一个硬件定时器来模拟多个软件定时器,这样硬件定时器的资源其实是过度利用了,而且每一个软件定时器的回调函数要十分精简,否则,定时器就会不准,而且我觉得定时器的定时中断太频繁了,对很多系统来说反而不好。目前至少我是这么认为的。如果有网友可以有一个比较好的实际项目使用了这个软件定时器,可以分享一下。 来源: https://www.cnblogs.com/CodeWorkerLiMing/p/12241603.html

单片机学习培训

泪湿孤枕 提交于 2020-01-28 16:17:03
随着社会的发展,科技进步。单片机好像变的比较低端。但是为什么还要学习单片呢?我们知道学习任何东西都需要基础,有了基础才能灵活运用。在此单片机就是我们学习嵌入式的基础。当然单片机还是运用在了我们生活中的任何一个角落。只是我们在没有入门的情况下,不了解它吧。好了,我自己做了一份资料,进行单片机培训。现在比较齐全的资料是51单片机,后面还会添加stm32 单片机的。希望能狗帮助大家。具体细节请加我的QQ(微信)号:2627718945 。 肯定很多人都好奇怎么教学呢?我现在选择的方式是线上教学。通过实时互动的方式,有疑问随时可以提出来,我们共同解决,提速你的学习过程。其实遇到问题才是我们提高的开始。 还有一些同学向我提出来的问题。 1、现在学习单片机还有用吗?会在哪里用呢? 其实这两个问题很好回答的。学习单片机肯定是有用的,第一是基础。第二是我们可以很容易接触到的科技。某宝上很便宜就可以买到开发板然后进入科技创作了。这个入门了,就可以进入更高级的系统开发了。当然若是学习能力很强直接可以系统开发的战友除外哈。哈哈哈哈 单片机现在用在我们生活中的方方面面,医疗,交通,玩具,等等很多。大家可以百度一下。 4、我不列举了,同学们想学习就联系我吧。哈哈哈哈 欢迎大家的到来。 来源: CSDN 作者: 炉子热 链接: https://blog.csdn.net/luzire/article

基于树莓派的智能安全门(单片机)

浪尽此生 提交于 2020-01-28 04:41:52
原文链接: https://shumeipai.nxez.com/2017/03/10/raspberry-pi-diy-cool-security-door.html 先用单片机+薄膜键盘做密码键盘的输入,通过串口把获取到的按键值发给树莓派去识别和操作。这里用了#号键作为密码输入结束的确定键。单片机程序和树莓派程序调通后,打印外壳,焊板子(因为体积关系不可能直接塞个直插封装的单片机下去,所以就买了比较方便焊接体积又相对小的DIP封装的单片机,这里用了STC15系列的单片机,可以省掉晶振的焊接) 单片机读键盘数据的代码如下(单片机使用的是STC15W404AS型号) ​ #include "STC15W404AS.h" #include <intrins.h> #define key_port P1 //键盘接口定义 sbit key_port_0=key_port^0; sbit key_port_1=key_port^1; sbit key_port_2=key_port^2; sbit key_port_3=key_port^3; sbit BEEP=P5^5; //蜂鸣器 sbit OPEN=P5^4; //开门按键 /******************************* STC15W404单片机一毫秒延时函数 **************************

stc单片机自动下载程序原理和代码实现

旧街凉风 提交于 2020-01-28 01:44:27
1/stc单片机下载程序的原理 首先我们要理解stc单片机下载程序的原理。在stc单片机中有两个程序区:用户程序区和ISP监控程序区。 这是stc89c52单片机数据手册中的内容。 根据数据手册,我们可以知道,当冷启动或者对ISP_CONTR寄存器送入60H产生复位以后,单片机会从ISP监控程序区开始执行程序。 如果这时候检测到合法的ISP下载命令流(后面会说什么是ISP的合法下载流),则ISP监控程序开始与ISP下载软件通信(如stc-isp),软件也会进入编程模式,向监控程序发送程序码,监控程序接收程序码,并将其写入用户程序区中。成功后,用户程序立即生效,开始运行用户程序。 如果这时候没有检测到合法的ISP下载命令流,单片机就会从用户程序区开始执行程序。 2/冷启动下载 我们刚开始接触stc单片机一般采用的都是冷启动来下载程序。但是这样做有一定的缺点。 首先,单片机频繁的上电掉电会影响单片机的寿命,且一些特殊的外围电路要求一直保持有电状态。 其次,也是我主要想说的一点是,市面上的USB转TTL模块质量参差不齐,绝大多数模块都没有做好隔离,导致电流会从模块的TX和RX倒灌进单片机,如果此时单片机上的电压高于单片机的上电复位检测门槛电压的话,就会导致单片机无法冷启动,进而无法成功下载程序。 我测量了市面上购买的两款USB转TTL模块(PL2303)

51单片机定时器

故事扮演 提交于 2020-01-26 07:06:32
当用"delay.h"这个头文件进行软件延时时,在延时时,CPU时间被占用,无法进行其他任务,导致系统效率低下,因此软件延时只适用于短暂延时,因此引出了定时器。 单片机中有多个小闹钟,可以帮助我们实现延时,这些小闹钟就是“定时器。每个定时/计数器既可以实现定时功能,也可以实现计数功能。可以工作在4种定时器模式下。 定时/计数器 51单片机有T0和T1两个定时器,定时器0有四种工作方式: 方式0 :13位定时 /计数器模式 方式1 :16位定时 /计数器模式 方式2 :8位可重装载定时 /计数器模式 方式3 :两个单独8位定时 /计数器模式定时器1只有三种方式,同上面三种。 实现定时功能,除了使用单片机内部的定时/计数器,还可有以下三种方法: ①使用软件定时 优点 :可随意修改定时时间,一次编写,多次调用 缺点 占用CPU时间,降低CPU的利用率。 ②时基电路 优点 :使用方便, 缺点 :硬件电路连接好之后,定时时间不好改变。利用时间计算电阻和电容的值,延时可能会出现误差 ③可编程芯片定时: 优点 :定时准确,可修改时间,使用灵活,可与单片机扩展连接。 缺点 :电路连接较不方便。 定时/计数器0的工作原理 在定时方式1下,定时/计数器0的核心是一个16位宽的由计数脉冲触发的按递增规律( 即累加方式)工作的循环累加计数器(TH0+TL0) 。从预先设定的初始值开始

AVR单片机教程——UART进阶

社会主义新天地 提交于 2020-01-25 23:27:48
本文隶属于 AVR单片机教程 系列。 在第一期中,我们已经开始使用UART来实现单片机开发板与计算机之间的通信,但只是简单地讲了讲一些概念和库函数的使用。在这一篇教程中,我们将从硬件与软件等各方面更深入地了解UART。 USART组件 一直在讲的UART其实是USART组件的一部分,USART比UART多了同步的一部分,但这一部分用得太少(我从来没用过),而且缺乏实例,所以就略过了。然而,单片机的设计者很机智地把这个鸡肋功能升华了一下,USART组件可以支持SPI模式。SPI是一种同步串行总线,可以支持很高的传输速率。这个功能使得ATmega324PA支持最多3个SPI通道,其中一个是纯SPI,另两个就是SPI模式下的USART。我们将在下一讲中揭开SPI的神秘面纱。 回到UART模式下的USART组件。开发板引出的 RX 和 TX 引脚是属于USART0组件的,因此使用时以下 n 都用 0 代替。 UART共有5个寄存器: UDRn 是收发数据寄存器,收( RXB )和发( TXB )使用不同的寄存器,但都通过 UDRn 来访问。向 TXB 写入一个字节,UART就开始发送; RXB 保存接收到的数据,带有额外一个字节的缓冲(如同下一节要讲的缓冲区)。 UCSRnA 包含UART状态位,如三个中断对应的标志,以及一些不常用的设置位。 UCSRnB 主要用于使能

基于stc15f2k60s2芯片单片机编程(超声波报警)

两盒软妹~` 提交于 2020-01-24 17:48:28
按键S7控制上下限,S6加S7减;(运行此程序时按键不好用) # include <stc15f2k60s2.h> # include <intrins.h> void shumaguan ( ) ; void Timer0Init ( ) ; void Delay500ms ( ) ; void Delay2us ( ) ; void anjian ( ) ; unsigned char abile [ ] = { 0XC0 , 0XF9 , 0XA4 , 0XB0 , 0X99 , 0X92 , 0X82 , 0XF8 , 0X80 , 0X90 , 0XBF , 0XFF } ; unsigned char saomiao [ ] = { 0XFF , 0XFF , 0XFF , 0XFF , 0XFF , 0XFF , 0XFF , 0XFF } ; unsigned int distance ; unsigned char high = 30 , low = 10 ; unsigned char a ; void Send_Wave ( ) ; sbit TX = P1 ^ 0 ; sbit RX = P1 ^ 1 ; sbit S7 = P3 ^ 0 ; sbit S6 = P3 ^ 1 ; sbit S5 = P3 ^ 2 ; unsigned int time =

基于单片机的GPS定位模块

好久不见. 提交于 2020-01-24 14:44:43
随着时代的发展,先进的科学技术给人们的生活带来了翻天覆地的变化。各种各样的智能化产品层出不穷,推动着社会的进步。全球定位系统GPS是美国从20世纪70年代开始研制,在1994年建成,以接收导航卫星信号为基础的非自主式导航与定位系统,它以全球性、全能性、全天候性、连续实时高精度的实时时间、三维位置、三维速度为人们的生活带来了方便。随着全球定位技术的不断改进和完善,它的应用领域将会不断地扩大,必将成为信息时代不可缺少的一部分。在我们的生活中GPS定位系统给我们带来了便利,如车载GPS导航仪、GPS手持设备、GPS/GPRS远程终端控制设备等,但是他们的价格比较昂贵。本设计使用低功耗的AT89S52单片机、GPS卫星定位模块和LCD12864液晶显示模块来实现对GPS定位信息的计算和显示。GPS信息主要有GPGSV(可见卫星信息)、GPGLL(地理定位信息)、GPRMC(推荐最小定位信息)、GPVTG(地面速度信息)、GPGGA(GPS定位信息)和GPGSA(当前卫星信息)。在设计中我用软件只对GPRMC(最小定位信息)和GPGGA(GPS定位信息)进行了解析,并将解析后的数据转换成字符,通过LCD12864显示日期、时间、经度、纬度、航向、速度和海拔高度等卫星信息。本设计思路清晰、结构简易、性价比高,对研究GPS定位系统二次开发有重要作用。 1.总体设计方案 1.1系统设计框图

单片机串口调试

╄→尐↘猪︶ㄣ 提交于 2020-01-24 06:22:23
用 串口调试助手 发送一字节的数据,单片机马上会回发同样的数据在串口调试助手上显示,如果回发给串口调试助手的数据不是原始数据,即很有可能是晶振问题。换个11.0592MHz的就可以了。 #include <REG52.H> //sbit LED = P1^0; bit Flag; unsigned int ReData,SenData; void main (void) { SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD|= 0x20; //定时器工作方式2 PCON= 0x00; TH1 = 0xFD; //baud reload value 9600、数据位8、停止位1。效验位无 (11.0592) TL1 = 0xFD; TR1 = 1; ES = 1; //开串口中断 EA = 1; // 开总中断 // LED=1; while(1) { if (Flag==1) { SBUF=SenData; //SUBF接受/发送缓冲器 while(TI==0); TI=0; Flag=0; } } } void ser_int (void) interrupt 4 using 1 { if(RI == 1) //RI接受中断标志 { RI = 0; //清除RI接受中断标志 ReData = SBUF; //SUBF接受/发送缓冲器

环境参数智能监测站设计(说明书篇)

非 Y 不嫁゛ 提交于 2020-01-22 17:01:08
摘要 环境参数监控系统,价格高,功耗较大,移动性较差,需要较高的硬件与软件支持,数据采集端与监控端需要通过很多很长的通信线进行连接,从而使得系统稳定性不高,对于多参数多点监控的场所,传统设备不能满足其节点数量的要求,可行度不高,空间占用率较大。鉴于以上不足之处,我们设计一种多节点组网一监控终端的智能环境参数监控系统,以方便和适应现代化的信息管理模式。该系统采用数字化数据采集,模块化处理,便于系统维护以及数据收集。 本系统设计是从低成本、低功耗、高效率等概念出发,采用12位单片机STM32F103C8T6为处理核心,在数据采集节点端控制一系列的传感器(如DS18B20、DHT11、MQ-135、光敏二极管、雨滴传感器、土壤水分传感器等)来采集环境参数,使用蜂鸣器与STM32F103C8T6连接做为系统的报警器,如有参数超标就发出声响进行警报,同时使用NRF24L01发送数据到监控终端。具有实时性、稳定性、高效性、操作简单等特点,这样便于解决环境参数的采集和监控。本文以STM32F103C8T6超低功耗单片机为核心,设计了多个环境数据采集节点和监控终端即环境参数智能监测站,重点介绍了该系统的设计任务、硬件、软件以及控制算法的设计与实现。硬件方面,介绍了系统各个部分的设计思想、原理电路以及系统总硬件原理图;另外,为了实现系统低成本和低功耗,满足设计要求的前提下