您的位置:

有c语言基础怎样学习单片机,学单片机需要学会全部c语言么

本文目录一览:

如何学习c51单片机

1,楼主,你首先要学习C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。

2,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。

3,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。

4,编译环境、编程软件KEIL。

5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很激动,这时你真正学会了单片机,你成功了!!!!!。

6,单片机C语言举例:

sbitSPEAK=P1^5; //IO口定义为蜂鸣器控制

如果蜂鸣器正极接电源,SPEAK=0;蜂鸣器就会响,你看就是这么简单。

unsiggnechartemp;//定义TEMP为单字节变量。

sfrPORTAP1;//将P1口定义为PORTA

总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。

如何自学单片机?

1、熟悉单片机的原理,结构; \x0d\x0a2、学好数电,模电,为设计电路打好基础; \x0d\x0a3、熟练使用C语言,多学习别人的程序;\x0d\x0a4、对操作系统原理有一定的了解; \x0d\x0a5、Protel至少要有点基础;\x0d\x0a6、要实际动手调试电路的能力。\x0d\x0a\x0d\x0a学习单片机的步骤 \x0d\x0a\x0d\x0a当前的单片机种类很多,但是 51 是最基础的,因此单片机的学习最好也是从 51 开始,不仅容易上手,而且相当实用。然而 51 单片机毕竟过于基础,后来的很多单片机在功能上都有很大的扩展,因此按照我们实验室多数人的路线接下来大多数人会学习 AVR 单片机, AVR 单片机在功能上较 51 有很大提升,集成了 A/D 、快速 PWM 等很多实用的功能,而且和很多大型的单片机在功能上有很多类似之处,因此如果以后还想掌握其他单片机 AVR 无疑是一个很好的跳板。 \x0d\x0a\x0d\x0a学习的过程 \x0d\x0a\x0d\x0a学习单片机最终要的是当然是练,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一种说法称之为先实践后理论的学习方法。 \x0d\x0a\x0d\x0a因此我的观点如下,单片机的硬件结构首先要有一个基本的了解,最起码要知道各引脚的功能、区别,能自己动手搭一个单片机的最小系统,然后就可以直接从程序入手,程序最好还是用 C 语言编程,从简单的跑马灯做起,逐渐深入,陆续可以做一些数码管、液晶、 DS1302 、 DS18B20 等电子元器件的应用,在深入就可以结合一些具体实例扩展一些中断、串口通讯等功能。还有一点要声明的是单片机里用到的 C 语言其实很有限,课堂上学习 C++ 的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉的自己的 C 语言基础不是很好而对单片机望而止步! \x0d\x0a\x0d\x0a学习的工具 \x0d\x0a\x0d\x0a 软件方面方面, 51 单片机用的是 KEIL 软件,这个软件在学校图书馆软件下载和其他网站上都有,具体用法自己查找相关资料, AVR 的软件就比较多了,我用的是 CVAVR ,另外还有 ICCAVR 等多款编译软件,这要看个人喜好了,建议有了一定的 51 基础再学。另外就是烧写软件,烧写软件的作用就是将编译器生成的 HEX 文件烧写至单片机里,这要配合下载线实用,如果有并口的话最好用并口下载线,软件最好用广州双龙的 SLISP 软件,如果是笔记本没有并口的话则要自己买一个下载器了,名称为 USBASP ,网上电子市场有卖 20 块钱左右,软件会随光盘自带。 \x0d\x0a\x0d\x0a 硬件方面,首先是要有单片机,对于单片机有一点要注意, 51 单片机最好买 89S51 、 89S52 这两种型号,上面我所说的烧写程序是 ISP 方式,这两种单片机支持 ISP 下载,所以如果买其他型号的烧写程序可能会不太方便, AVR 单片机常用的就是 ATmega16L 其它型号的区别也不是很大,甚至有些兼容。至于单片机开发板,目前的价格都很贵,从一百到几百不等,不过像上次学校里广告的那个六十多块钱的最好还是免了,没什么作用。能买一块当然好,没有的话也不要紧,自己动手买个电路板搭一下也很方便,引出 ISP 接口,烧写程序十分容易,然后将 I/O 口引出扩展也很方便。 \x0d\x0a\x0d\x0a学习单片机的其它几个注意点: \x0d\x0a\x0d\x0a1 .理论与实践并重 \x0d\x0a 对一个初学单片机的人来说,如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,也许用不了几天就会觉得枯燥乏味以致半途而废。所以学习与实践结合是一个好方法,边学习、边演练,循序渐进,这样用不了几次就能将所用到的指令理解、吃透、扎根于脑海,甚至 “ 根深蒂固 ” 。也就是说,当你学习完几条指令后 ( 一次数量不求多,只求懂 ) ,接下去就该做实验了,通过实验,使你感受到刚才的指令产生的控制效果,眼睛看得见 ( 灯光 ) 、耳朵听得到 ( 声音 ) ,更能深刻理解指令是怎样转化成信号去实现控制的,通过实验看到自己所学的成果不仅有一种成就感也能提升你对单片机的兴趣。说句实在话,单片机与其说是学出来的,还不如说是做实验练出来的,何况做实验本身也是一种学习过程。因此边学边练的学习方法,效果特别好。 \x0d\x0a 2 .合理安排时间持之以恒 \x0d\x0a 学习单片机不能 “ 三天打鱼、两天晒网 ” ,要有持之以恒的毅力与决 4 心。学习完几条指令后,就应及时做实验,融汇贯通,而不要等几天或几个星期之后再做实验,这样效果不好甚至前学后忘。另外要有打 “ 持久战 ” 的心理准备,不要兴趣来时学上几天,无兴趣时凉上几星期。学习单片机很重要的一点就是持之以恒。 \x0d\x0a\x0d\x0a3 .遇到问题耐心检查 \x0d\x0a\x0d\x0a单片机有软硬件两方面的内容,有时一个程序怎么调都不出效果,然而从理论分析却又是对的,这是就要仔细找原因了,学习单片机经常碰到很多问题,有时一两天都不能解决,这是就要有耐心,从底层找起,相信每找出一个错误都会有一个新的收获。切不可轻言放弃!!! \x0d\x0a 4 .对只短暂学过一遍的知识,充其量只比浮光掠影稍好。因此,较好的方法是过一段时间后 (1-2 个月 ) 再重新学一遍,学过的知识要经常运用,这样反复循环几次就能彻底弄懂消化,永不忘却。 \x0d\x0a 5 .要进行适当投资购买实验器材及书籍资料 \x0d\x0a 单片机技术含金量高,一旦学会后,给你带来的效益当然也高,无论是应聘求职还是自起炉灶开厂办公司,其前景都光明无限。因此在学习时要舍得适当投资购买必要的学习、实验器材。另外还要经常去科技图书店看看,购买一些适合自己学习、提高的书籍。一本好的书籍真的很重要,可以随时翻阅,随时补充不懂或遗忘的知识。

有C语言基础,没有硬件基础能学单片机吗?请高手给些建议,谢

1,楼主,你已经有C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。8/16位单片机基本上是在KEIL或IAR embedded workbench软件环境下编程、调试和仿真。32位ARM系列有的用IAR embedded workbench,也有用ADS,更多的用WINCE或LINUX操作系统。所以上面的讲的都是你现在的优势。

2,听起来单片机比较陌生,不是因为你不懂,而是不知道方法和流程。现我简单说说,仅供参考;

3,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。

4,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。

5,编译环境、编程软件KEIL。

6,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很秀激动,这时你真正学会了单片机,你成功了!!!!!。

7,然后再学会看电路图,电路图其实很简单,就是一根线从一个地方连接到另一个地方,你写代码时,只记住单片机是哪一个管脚,然后对它写代码即可。

总结:实验很重要,你要多参与这样的项目开发,方能进步。

已经有c语言基础,但是还是看不懂单片机的c编程...如何是好

根据你的问题,我把单片机的C语言程序分成3块:

1、纯粹的应用级运算或数据处理类的函数或子程序。比如获得一个四则运算的结果等。这部分程序代码以你的基础肯定能读懂,因为C51和PC机上的C语言都是一样的。

2、针对单片机自身的硬件控制程序等。这部分软件其实内容不多,如果了解单片机的结构及各主要模块的功能就能理解个大概:比如定时器怎么用、怎样设定初值、怎样启动,又比如如何在单片机的端口输出高电平或是输出低电平等等。

3、针对单片机以外的硬件控制子程序或函数。比如8个8位的LED数码管,如何扫描控制其显示内容,如何采集单片机系统中的哪个按键被按下了等。这部份软件就需要你去了解单片机最常用的外围电路的工作原理后才能理解。

总之,需要有一定的硬件基础才能读懂单片机的C语言,至于方法:

1、系统的学习单片机的基本结构和原理。无论针对哪个应用最基本的内容都是相似的。熟悉后拿来任何一个程序都能快速的将其拆分,明白各模块大致的用途。

2、有针对性的去了解单片机以外其它的电路的功能及实现原理。这一点可以边应用边学习,任何人都不敢说所有的硬件都了解,都是边学边用。

怎么用c语言学习单片机编程?

单片机嵌入式特点就是难而且重实践。如果你想学单片机,去买一个板子回来学。如果你基础比较好,模电数电微机原理都学过,你可以选一款复杂的单片机,如果你是菜鸟小白对计算机什么常识都没有,80C51是你最佳的选择。当初我什么都不会,也不懂嵌入式,上手就学ARM9,虽然有人带但学的确实很痛苦,但是学过来之后,学校开了飞思卡尔单片机(16位的)学起来感觉就很轻松。如果你入门,以搞定原理为主,没人带你自学的情况下有许多概念确实不好理解,要多琢磨多上网查资料,再不行就百度知道。。。。还有就是读板子配套的实例代码,配合单片机的参考手册,弄懂各个寄存器都是怎么配的为什么这么配,注意总结,比如点亮流水灯,都要经过哪些步骤?每个步骤配置哪些寄存器?配置后怎么点亮?你自己去总结。然后试着改写你的实例代码,不断编译不断改写,看看哪有问题哪里需要修改,最后改出你想要的现象来,不要想刚开始学就一步登天自己独立写出什么程序来,首先以模仿为主,弄清概念和原理,然后再尝试自己写