学单片机之前要学什么?C语言和单片机有什么关系?

发布者:fnfeecjknquc最新更新时间:2023-01-05 来源: zhihu关键字:单片机  C语言  数字电路 手机看文章 扫描二维码
随时随地手机看文章

学习单片机之前要学什么?提起这个就想起我当年开始学习单片机的血泪史了。

08年我加入学校的电子实验室,为08年的全国电子大赛做准备。

08年的电子大赛分类3类,硬件设计类、单片机软件类、产品的调试动手类

现在的大赛应该有所改动。

我选择的是软件类,选择这个的原因是我觉得这个更加的神秘,就是这个神秘感让我对软件更加的有兴趣。

刚开始真的是一窍不通,我买了一本C语言书,独自学习了2个月,做了3本笔记,然后又学习了1个月的数字电路,到这个时候,我都快奔溃了,3个月过去了,还是啥都不懂!

这个时候我已经做好放弃的准备了,最后想想:自己选的路,跪着也要走完。

正好那段时间每天也闲的蛋疼,就抱着边玩边学的态度,说出来你可能不信,不知不觉就把单片机的IO口、定时器、中断、串口通讯这些学会了。

那一刻,我就在想原来单片机开发也没有这么神秘!哈哈!

回顾一下自己的这个学习过程,到现在还是非常的难忘,相信很多的伙伴们可能还和我当年一样,坚持了一段时间,没有进展,一直处于一个入门前期的困惑当中。

其实单片机就是一个工具,在学习这个工具之前还是需要有别的知识作为铺垫。

比如说基本的数字电路基础简单的C语言编程基础

一、电路基础和C语言基础要学习的内容

1.数字电路基础需要学习什么?

掌握电阻、电容,三极管的基本用法,掌握单片机的高低电平的概念基本上就差不多了。

最好的学习渠道就是开发板的原理图,把开发板原理图搞懂基本上就能做一些项目了。

2. C语言编程基础

C语言基础的学习,必须要掌握一些基本的语法,和变量的定义。

具体的学习路径,可以到小破站找无际单片机编程比较系统全面,也是针对单片机来讲的。

学完单片机、电路基础、C语言的知识以后,就可以开始着手做一些项目了,前期先通过小项目开始,比如说电子时钟啥的。

二、C语言和单片机有什么关系?

通过前面的讲解,相信大家已经有一点概念了。

下面再给大家深入讲解下C语言和单片机的关系。

单片机支持C语言汇编来编写程序。

1. 通过C语言来编写

C语言编写的程序,最终需要通过keil工具编译成单片机可以识别的.hex文件的过程:

C程序源码->C编译器->汇编代码->汇编编译器->机器码(.HEX 或.BIN)

2.通过汇编来编写

单片机的程序早期都是汇编代码,汇编代码最接近硬件底层的低级语言,运行的效率比较高。

但汇编语言很很多比较明显的缺点:不方便阅读,移植性差,开发难度大等,随着技术的不断进步,大家就开始逐步的的使用C语言来代替汇编语言,(比较低端的芯片还是需要汇编来开发)。

所以,一般产品开发都是使用C语言,汇编一般是用来做很小的产品,或者单片机的启动文件。


关键字:单片机  C语言  数字电路 引用地址:学单片机之前要学什么?C语言和单片机有什么关系?

上一篇:一个月可以学会单片机嘛?单片机编程学多久?
下一篇:学单片机需要多少C语言基础,C语言单片机编程教程

推荐阅读最新更新时间:2024-11-10 20:45

STC12C5A60S2 AD转换C语言示例程序(ADC查询方式)
STC12C5A60S2 C语言示例程序(ADC查询方式) #include reg51.h #include intrins.h #define FOSC 18432000L #define BAUD 9600 typedef unsigned char BYTE; typedef unsigned int WORD; /*Declare SFR associated with the ADC */ sfr ADC_CONTR = 0xBC; //ADC control register sfr ADC_RES = 0xBD; //ADC high 8-bit result registe
[单片机]
用89S51单片机P1^0出1KHZ和500HZ的音频信号
用89S51单机P1^0出1KHZ和500HZ的音频信号要求1KHZ信号响100ms,500HZ信号响200ms 交替进行P1^7接一 开关 进行控制当开关闭合响警报信号当开关断开时警报停止编写程序如下 #include reg52.h #define uchar unsigned char sbit K =P1^7; sbit out =P1^0; void main ( ) {while ( 1) {if (K ==0) uchar i ; for (i =200;i >0;i --) {m _500HZ ( ); } for (i =200;i >0;i --) {m _1KHZ ( ); } } } } void m _5
[单片机]
AVR单片机的CPU内核结构及汇编语言
学单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。 下面就以ATmega16为例,介绍一下AVR单片机结构和汇编语言。 AVR单片机的CPU内核结构 如上两图,左图是虚线框内AVR CPU的内核结构,右图是AVR单片机内核结构的方框图,可以看出AVR单片机的数据总线(CPU字长)是8位的,也就说它是8位单片机。 AVR采用了Harvard结构,具有独立的数据和程序总线,CPU在执行一条指令的同时,就将PC中指定的下一条指令取出,构成了一级流水线运行方式,实现了一个时钟周期执行一条指令,数据吞吐量高达1MIPS/MHz。 AVR CPU内核由几个重要的部分组成,它们分别是: A
[单片机]
AVR<font color='red'>单片机</font>的CPU内核结构及汇编语言
51单片机(STC89C52RC)光电耦合控制继电器实验
单片机控制继电器一般是两种方式:一是单片机-三极管(PNP)-继电器,二是单片机-光电耦合器-三极管(NPN)-继电器,后者由于采用了光电隔离,故起抗干扰能力相对前者要强.前者选用PNP型主要是考虑控制逻辑,采用低电平触发的控制逻辑能够防止单片机复位时候产生的误动作.后者NPN是为了控制的方便,但也是遵循这样的控制逻辑.   本次实验采用材料有: STC89C52RC    51单片机 NEC/Ps2002B    晶体管光电耦合器 9013         NPN型三极管 SRD-06VDC-SL-C 松乐6V继电器   电路图我就不画了,可以google,MCS-51直流继电器接口关键字.在这里主要碰到的问
[单片机]
基于51单片机的自行车里程表
一.硬件方案 本设计的硬件主要由51单片机+最小系统+LCD1602液晶显示模块+霍尔测速模块+电机模块+电位器调速模块+蜂鸣器模块+LED指示灯模块+按键模块+时钟模块+AT24C02存储芯片: 二.设计功能 (1)采用霍尔传感器非接触式测电机转速; (2)电机(3v直流小电机)的速度可通过电位器调节速度,来模拟自行车速度快慢; (3)采用DS1302时钟芯片准确计时,AT24C02掉电存储设置的数据; (4)采用LCD1602液晶显示,年月日、时分、星期、总里程、当前速度; (5)按键可以设置时间、轮胎半径和超速报警值; (6)四个按键功能:设置时间、加、减、设置半径,加减键同时按下可清零里程。 三.设计原理图 (1)
[单片机]
基于51<font color='red'>单片机</font>的自行车里程表
基于MGLS12864与SPCE061A单片机的硬件接口电路设计
  引言   在许多单片机应用系统中,液晶显示器LCD被广泛地应用于终端显示人机接口中。点阵式LCD不仪可以显示字符、数字,还可以显示图形、曲线及汉字,并能够实现多种动画显示效果,使人机界面更加友好,使用操作更加灵活方便。MGLS12864是市场上比较常见的内藏HD612 02控制器的图形液晶显示模块,具有功耗低、体积小、重量轻、结构简单,使用方便的优点。SPCE061A是继SPCE500A等之后凌阳科技推出的一款16位结构的微处理器。CPU内核采用16位μ’nSP微处理器芯片,比MCS-51系列单片机集成度高、性价比高、使用更加灵活方便。   本文阐述了点阵式液晶MGLS12864的结构特点及其控制器HD61202的指令系统,并
[单片机]
基于MGLS12864与SPCE061A<font color='red'>单片机</font>的硬件接口电路设计
STC89C52单片机 LCD1602液晶显示屏
LCD1602显示 VVcat #include reg52.h typedef unsigned char uchar; typedef unsigned int uint; sbit RS = P3^5; sbit RW = P3^6; sbit EN = P3^4; //判断液晶忙,如果忙则等待 void Read_Busy(){ uchar busy; P0 = 0xff; RS = 0; RW = 1; do{ EN = 1; busy = P0; EN = 0; }while(busy & 0x80); } //写LCD1602命令一个字节 void Wr
[单片机]
GD32 MCU碰到IIC总线卡死怎么办?
大家在使用MCU IIC通信时,若碰到设备复位或者总线干扰等情况,可能会导致IIC总线卡死,表现上总线上SDA或者SCL其中一根线为低电平,IIC总线一直处于busy状态。此时若代码上一直等待总线空闲,则可能导致软件死机,为解决该问题,本视频提供了软件配置释放IIC总线的方法。 首先为大家介绍发生IIC总线卡死的两种情况:(1)主机在发送 START 信号后, 控制 SCL 产生 8 个时钟脉冲,然后拉低 SCL 信号为低电平,在这个时候,从设备输出应答信号,将 SDA 信号拉为低电平。如果这个时候主机异常复位, SCL 就会被释放为高电平。此时,如果从机没有复位,就会继续 I2C 的应答,将 SDA一直拉为低电平,直到 SC
[单片机]
GD32 <font color='red'>MCU</font>碰到IIC总线卡死怎么办?
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved