`

浅谈嵌入式入门

阅读更多

嵌入式入门小结

最近,荒废了一段时间的JAVAAndroid,玩了一段时间的89c52单片机。简单小结一下。一是给自己前一段时间的工作做一个记录,自己以后可以回头看看自己跌跌撞撞的入门过程。二是可以给学弟学妹一些经验启示。

提示:以下观点均为个人观点,正所谓所见皆偏,大家如果对我所言有不同的观点,欢迎找我讨论。

 

2013103日,为了完成电路老师作业一个电子小制作,我翻开了《爱上单片机》,不得不说这本书写的挺好,生动活泼,不拘一格这种叙事风格我特别喜欢。在作者的悉心指导下。我最终做出来了八音电子琴。

具体制作过程,详见书。

我遇到的问题

一.程序烧不进去

当时线路都是对的就是烧不进去程序

解决方法:1. stc-isp 时,注意热插拔后才会执行烧录程序。具体操作就是点击烧录后

            VCC的杜邦线,拔出后再插上。

2.把最高波特率和最低波特设为1200(原理暂时不明)

二.用蜂鸣器发音不准确

完成了总线的连接,但是发音效果不理想

解决方法:1.换了个喇叭,不用蜂鸣器。

 

如果是用开发板就可以忽略上面的问题

 

10天做出蓝牙小车

主要实现了,串口通信,最小系统板的焊接,程序的编写,以及线路的连接。

了解了单片机开发相关软件的安装,单片机基础知识,数码管综合使用,中断定时器,电子钟的程序设计,以及串口通信。

具体实现歩奏:看视频动手做(实验室有视频哦~

模块简洁:MCU模块供电模块蓝牙转串口模块驱动模块

注意事项:蓝牙转串口模块上的RXDTXD分别接单片机上的TXDRXD.

          另外再给单片机烧录程序时要把蓝牙与单片机分开

               否则会弄坏蓝牙串口模块

感想:由于中途给单片机烧程序时候没把蓝牙模块分开,导致中间有4天进度缓慢,但也因祸得福,深入了解了蓝牙串口模块。并且总结了经验教训。

 

感悟:嵌入式入门特别坑,尤其是在没有人指导的情况下,遇到问题很难得到专业性指导,但是只要入门后就特别轻松。就像软件模块化一样,你只要了解不同的通信协议,你就可以很轻松的添加各种模块来实现你想要的功能。(例如添加一个wifi模块,就从蓝牙车变成wifi车)

 

接下来几个月只要是对前面的蓝牙小车和wifi小车的电路图,工作原理等资料做进一步的整理。同时做出我们自己的手机端的上位机APP。如果可能的话,再加上一些传感器,使小车更智能。

 

下面附上小车的MCU源码

#include<REG52.h>

 

sbit LED=P1^0;

sbit LED2=P1^1;

 

sbit CHE1=P1^0;

sbit CHE2=P1^1;

sbit CHE3=P1^2;

sbit CHE4=P1^3;

 

char flag=0;//设置标志位

char a;//缓冲接受字符

 

void init();//初始化程序

 

void main(){

                   LED=1;

      LED2=1;

              init();//初始化中断器

              while(1){

                   if(flag==1){

 

                            ES=0;//关闭串口

                            if(a==0x00){

                            CHE1=1;

                            CHE2=0;

                            CHE3=1;

                            CHE4=0;

}

                            if(a==0x01){

                                     CHE1=1;

                            CHE2=0;

                            CHE3=0;

                            CHE4=1;

                            }

 

 

                            if(a==0x02){

                                     CHE1=0;

                            CHE2=1;

                            CHE3=1;

                            CHE4=0;

                            }

 

 

                            if(a==0x03){

                                     CHE1=0;

                            CHE2=1;

                            CHE3=0;

                            CHE4=1;

                            }

 

              if(a==0x04){

                                     CHE1=0;

                            CHE2=0;

                            CHE3=0;

                            CHE4=0;

                            }

 

                            flag=0;//清除标志位

                            ES=1;//打开串口中断

                            }

              }

             

}

 

void communication() interrupt 4

{

              RI=0;//取消本次串口的响应

              a=SBUF;//接受缓冲区的数据

              flag=1;//标记位

             

}

void init(){

              TMOD=0x20;//定时器1设定为方式2 8位数据自动从装

              TH1=0xfd;//对定时器赋值,高8位与低低8位相同

              TL1=0xfd;//波特率设为9600

              TR1=1;//打开定时器1

              SM0=0;//设置串口的工作方式1

              SM1=1;

              REN=1;//允许串口

              EA=1;//开总中断

              ES=1;//打开串口中断

}

 

 

 

 

 

分享到:
评论

相关推荐

    浅谈51系列单片机嵌入式程序设计

    ### 浅谈51系列单片机嵌入式程序设计 #### 1. 引言 随着科技的进步和发展,单片机技术已经成为现代工业自动化控制领域的重要组成部分。51系列单片机因其性能稳定、成本低廉等优势,在工业控制系统、智能仪器仪表等...

    嵌入式软件开发的优缺点浅谈

    嵌入式软件开发有着诸多显著的优点,当然也存在着一些需要克服的缺点,本文将对嵌入式软件开发的优缺点进行浅谈。 首先,我们来探讨嵌入式软件开发的优点。嵌入式软件开发人才稀缺,尤其在当前物联网、人工智能等...

    浅谈C语言基础:入门与实践

    本文将深入浅出地探讨C语言的基础知识,帮助初学者快速入门并实践。 一、C语言简介 C语言由Dennis Ritchie在1972年开发,作为UNIX操作系统的一部分。它具有强大的数据处理能力和高效的程序执行效率,被视作现代编程...

    浅谈技工院校学生入门单片机的方法.pdf

    在文章中提到的51单片机,即8051单片机,是一种经典的微控制器,它在工业控制、家用电器和其他嵌入式系统中扮演着重要角色。它不仅有着丰富的学习资料,而且具有学习成本低的特点。不过,由于51单片机已经较为老旧,...

    linux浅谈和实用功能

    ### Linux浅谈与实用功能详解 #### Linux简介与历史背景 - **历史**: Linux 的起源可以追溯至20世纪90年代初。1990年,芬兰赫尔辛基大学的学生 Linus Torvalds 开始开发一个自由操作系统内核,并将其命名为 Linux...

    浅谈STM32和51单片机的寄存器编程异同.rar

    这篇文档“浅谈STM32和51单片机的寄存器编程异同”将深入探讨这两款芯片在寄存器编程上的区别与相似之处。 首先,我们要理解寄存器编程的基本概念。寄存器编程是直接操作微处理器内部寄存器以实现特定功能的方法。...

    浅谈STM32汇编

    ### STM32汇编入门与实践 #### 一、引言 随着嵌入式系统的不断发展,基于ARM架构的微控制器(MCU)如STM32系列因其高性能、低功耗等特性,在工业控制、消费电子等领域得到了广泛应用。本文将重点介绍STM32汇编语言...

    嵌入式C语言精华文章集锦

    - 为新入门者提供了快速掌握嵌入式领域的指南。 5. **C语言嵌入式系统编程修炼系列** - 分别介绍了背景、软件架构、内存操作、屏幕操作、键盘操作以及性能优化等方面的知识点。 - 深入探讨了每个主题,并提供了...

    浅谈C语言学习的建议

    推荐《C程序设计》(谭浩强著)作为入门书籍,对于有一定基础的学习者,《The C Programming Language》(Brian W. Kernighan & Dennis M. Ritchie著)也是非常不错的选择。 3. **实践操作**:理论知识的学习固然...

    浅谈基于C语言的计算机软件编程.pdf

    C语言之所以成为程序员入门的基础语言,主要是由于其特点: 1. 程序结构简洁方便。C语言语法简单,对于初学者来说需要记忆的内容不多,它主要由顺序、选择和循环三种基本结构构成,提供了丰富的控制语句,书写自由...

    SQLite入门与分析

    在SQLite入门与分析(七)---浅谈SQLite的虚拟机.doc中,主要讲解了SQLite如何通过虚拟机执行SQL语句。SQLite的虚拟机,也称为VDBE(Virtual Database Engine),是SQLite的核心组件。它负责解析SQL语句,将其转化为一...

    浅谈计算机软件开发中JAVA编程语言的应用.zip

    Java由于其简洁的语法和丰富的教程资源,成为初学者入门编程的热门选择。许多大学和在线课程都使用Java作为教学语言,培养下一代软件工程师。 总结,Java编程语言凭借其跨平台、面向对象、高效稳定的特点,在计算机...

    浅谈计算机应用软件开发中编程语言的选择研究中英文对照.doc

    ### 浅谈计算机应用软件开发中编程语言的选择研究 #### 引言 随着信息技术的快速发展,计算机应用软件在日常生活及各行各业中的作用日益显著。对于软件开发企业而言,提高软件开发的效率与质量不仅能够增强其市场...

    【原创】Kinect开发入门资源合集

    此外,还可以参考《微软 Kinect for Windows SDK 使用教程一 (NUI部分)》和《浅谈 Kinect for Windows SDK 之深度数据》这两篇文章,它们分别详细介绍了 SDK 的使用和深度数据的处理。 台湾地区的资料相对更为丰富...

    浅谈C语言的学习方法及应用价值.pdf

    学习C语言不仅是程序设计的入门课程,还是理解计算机操作系统以及深入计算机底层架构的基础。本文旨在探讨学习C语言的正确方法和其在软件开发领域的重要性。 首先,C语言的语法结构简洁高效,非常适合用来描述算法...

    浅谈C语言在机电类课程中的应用.pdf

    第一,C语言很容易被初学者理解并接受,使得非计算机专业的学生也能快速入门。第二,C语言拥有丰富的运算符,包括34种运算符,以及多种数据类型,如整型、实型、字符型、数组类型、指针类型、结构体类型和共用体类型...

    浅谈《C语言程序设计》在高职电子类专业的教学改革.pdf

    C语言是一种通用的高级编程语言,尤其在电子类专业中,它作为一门重要的专业基础课,对于后续的单片机原理、嵌入式系统等课程的学习起着至关重要的作用。然而,由于其自身的复杂性和学生的基础薄弱,使得C语言的教学...

    浅谈学习51单片机的四大误区

    虽然51单片机曾是初学者的首选,但随着技术的发展,如32位Cortex-M系列单片机的普及,它们具有更低的学习门槛,如STM32F系列,其丰富的资源和易于使用的开发工具使得51单片机不再是现代嵌入式学习的基础。...

    浅谈大学四年单片机学习心得

    51单片机是入门者接触的第一个平台,它以其简洁的结构和丰富的资源,为初学者提供了理解微控制器工作原理的良好起点。51系列单片机采用CISC(复杂指令集计算)架构,拥有8位数据处理能力,内部集成了定时器、中断...

Global site tag (gtag.js) - Google Analytics