51单片机c语言编程从入门到精通(51单片机c语言编程入门教程)

http://www.itjxue.com  2023-03-07 16:01  来源:未知  点击次数: 

51单片机 串口设计c语言程序简单设计

第一题,已经测试成功:

#include reg52.h

#define uchar unsigned char

#define uint unsigned int

uchar flag, a;

sbit d = P0^0;

void init()

{

TMOD = 0x20; //设置定时器1为工作方式2

TH1 = 0xfd;

TL1 = 0xfd;

TR1 = 1; //开定时器1

REN = 1; //开串口通信.

SM0 = 0; //设置串口通信方式1

SM1 = 1;

EA = 1; //开总中断.

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

}

void delay(uint z)

{

uint x, y;

for(x = z; x 0; x--) for(y = 110; y 0; y--);

}

void main()

{

init();

a = '4';

while(1) {

if(a == '1') {

d = 0; delay(400);

d = 1; delay(400);

}

else if(a == '2') {

d = 0; delay(200);

d = 1; delay(200);

}

else if(a == '3') {

d = 0; delay(100);

d = 1; delay(100);

}

else if(a == '4') {

d = 1;

}

}

}

void ser() interrupt 4

{

if (TI == 1) {

TI = 0;

}

else if (RI == 1) {

RI = 0;

a = SBUF; //中间变量.

flag = 1;

}

}

如何快速的学会单片机C语言编程

1、重点是:多看,多写,多练,多思考。

2、单片机有很多种,每种的侧重都有不同,在自己想深入的单片机方向选择一本经典教材,然后将心沉入教材,开始用功学习。切记不要只看书,要读懂书中例子程序,且动手编程实现它。

3、学习编程语言最好的方法是读程序,读程序是学习C语言入门最快,也是最好的方法。我们大家都应该有个体验。读了之后就要写,这一点来不得半点懒惰。如果你C语言功底扎实,按照选定教材钻研几天便可上手开发单片机软件。

(1小时学会C语言51单片机)C语言入门教程

51作为学习入门,确实是最最基础的了,不过至少它可以让一个新手明白控制是怎么回事,反馈是怎么回事,程序是怎么下载进去运行,又是怎么控制到io输入输出的,如何去访问寄存器,掌握一套在嵌入式领悟最最基本的开发方法和学习思路。这部分如果有兴趣,建议学习时间不要超过两个月。

1.c语言,及部分汇编代码

2.用一个月时间看完做完郭天祥的十天学会51单片机

3.买一块开发板

4.学习能够看懂看会原理图

5.掌握搜集资料,datasheet查找阅读英文手册的能力

6.自己动手动手动手做一个简单的功能

最后,我其实不建议51入门,可以直接stm32,虽然他还是单片机。不过十年前我当初也是51入门的,乐此不疲。至于忽悠你什么协议,内核,我觉得让一个大一嵌入式新手学这些,无疑没有基础就想建高楼,所以踏踏实实从基础开始,大学就是注重基础,学习能力!

学习51单片机怎样才能熟练掌握使用编程?

自学MCS-51单片机心得体会

无论是作为一名业余的电子爱好者还是一名电子行业的相关从业人员,掌握单片机技术无疑可以使您如虎添翼,为您的电子小制作或者开发设计电子产品时打开方便的大门! 而且现在学习单片机技术的热潮正在不断升温,时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机学习专栏,对于想学习单片机的朋友来说帮助很大,可以说现在的单片机学习环境是最好的,经过一段时间的努力,采用单片机来开发设计电子产品已经不再是专业电子工程师的“专利”!作为一个普通的电子爱好者完全可以通过一番努力后熟练掌握!国外的电子爱好者采用单片机来设计小制作非常普及,一些智能机器人、智能自动装置内部都离不开单片机的身影~~~

现今单片机学习环境真的是太好了,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也非常充足,相关的器材又多有便宜,相比而言,本人当初的学习条件就只可以“寒碜”二字来形容了:

站长的单片机技术是通过看书、动手自学学会的。 又因为站长的专业不是电子专业,所以单片机对于我来说是完全陌生的——最初我对单片机的概念都不清楚,还弄了一年多时间的单板机(i8085)——直到后来在图书城“蹲点”(当时上网还是件奢侈的事情,何况我也没电脑),才总算明白什么是单片机。 当时(7年前,我还上高中的时候),可以供选择的单片机种类并不如现今这么多,因此通常说起单片机就是特指MCS-51,因此我也就学了它。不过,正是因为用它的人多,所以能够获得的资料也多,元件也比较好购,因此我的自学之路才得以顺利走下去。 当时那个穷啊,不敢买新零件,只能在废旧家电上拆,参数不匹配也将就着用,而且还多亏了商铺老板看我可怜而以6折的价给了我一片i8051和一片2864,要知道当时这两个东东加起来有七十多块啊,够我三个月的零花钱了(都高中了,三个月才这么点零花钱!)。 元件基本上差不多了,没有电脑写程序怎么办呢,好在我买的那本书上提供了指令的机器码,所以我就先用笔在纸上把汇编源程序写出来,然后根据书上的指令表把源程序手工翻译成机器码,就是10001111这样的代码,写在源程序旁边。这就是我的“编辑环境”和“编译器”! 程序也有了,可是怎样把它弄到存储器里去呢,买编程器是不现实的,一来没有电脑,二来,当时一只编程器上千元的价格也只能让我啧啧摇头。

那怎么办呢……想来想去,找来找去,最后我利用以前做小实验的那几块面包板,拼在一块合适大小的木板上,然后把存储器按照要求插好,用插线连好电源和地,用电阻做出高低电平,然后通上电,再根据地址和数据的状态,用镊子把那些连线一根一根插到高或低电平,核对之后再把WR引线接一下地,这样就可以写入一个字节,写下面的字节的时候就重复以上这些步骤就行了。若是程序要改动一点,那个工作量就“非常庞大”了。

这就是我的“编程器”! 我写的第一个MCS-51单片机程序——点亮一只LED,以及后来的流水灯程序等,就是在这样的条件下来完成的。 现在,一个最廉价的仿真器也才人民币几十元,一块功能多些的单片机实验板也才上百元,简直就是学习者的天堂了。 网络也给爱好者提供了很多很好的资料,例如平凡的单片机网站。平凡的单片机网站上有非常详细的51单片机基础知识教程,写得非常生动朴实,对初学者来说帮助极大,其它还有不少网站也提供这些内容,还有专供爱好者讨论交流的论坛。 学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,学习单片机永远记住一句话:实践是检验真理的唯一方法。多动手做,哪怕是从点亮一只指示灯开始,也要动手去做,否则就会永远停留在书本上。 从51系列开始学单片机是个不错的选择:

1.书多、资料多

2.掌握51技术的人多,碰到问题能请教的老师也就多了

3.51系列的实验芯片AT89C51价格低廉而且很容易买到,AT89C51芯片而且可以反复擦写1000次以上,对于初学者来说真是太合适了,就算以后考虑工业运用,也可以先学透51后再学其他类型的单片机,毕竟技术是相通的。

4.相关的器材很廉价,具有绝大多数功能的下载型仿真器才几十元,最简单的专用编程器也才几十元,如果有能力自己做编程器就更便宜。 学习单片机的第一步是看书,单片机是一个知识密集的东东,不看书是绝对不行的,北航出版社(北京航空航天大学出版社)出版了大量单片机方面的好书,可以直接登录他们的网站进行邮购。本人认为第一本书应该是8051单片机的基础原理书。我看的第一本书是咬牙买的兵器工业出版社的《8051/8098单片机原理几接口设计》,这本书不是别人向我推荐的,也不是教材,但它比较系统地介绍了51芯片的基础知识,我正是通过这本书入门的,可以很系统地了解51单片机。对比我后来买的其它51方面的书籍,我还是推荐这本。虽然这些书籍一开始不一定能懂,不过确实很有用,很有嚼头,可以先大致看一遍,不消化的可以以后在试验实践中反复研究。 学习单片机的第二步是购买工具,单片机芯片必须借助编程器才能写入程序,本人用的编程器是一种性能较好的TOP2003通用编程器,通用编程器的特点是专为开发单片机和烧写各类存储器而设计的通用机型,它的编程可靠性高,支持的器件品种很多,不过这些商品化的设备价格偏高,不太适合初学者,或者说有一定程度上的浪费。 本人向初学者推荐一类廉价的编程器,注意,我说的是“一类”,而不是一种特定型号的。

这种编程器一般具有以下特点:

1.没有外壳,而是以裸露的线路板直接销售

2.通常支持常用的单片机和一些其它的芯片,例如存储器等

3.通常不是USB接口,一般采用串行或并行接口连接电脑

4.价格一般在一两百元左右

本站暂时不打算做这样的编程器,但若朋友们有需要,本人也可以考虑做一些提供给大家。

不过从长远的方面考虑,购置一台通用编程器还是有必要的,需要了解的朋友可以搜索一下“单片机编程器”。 学习单片机的第三步是反复编程实践,一个好的实验平台非常重要,实验平台的类型有许多,那些专业的产品动辄几千元,不是普通爱好者能承受的,也完全没有必要使用那样的产品。象编程器一样,有廉价实验板作为替代,有的产品比那些专业器材更好,例如本站推出的MCS-51 Study Board V3.0和V5.0板,就是非常贴近实际使用的设计,如果给它们配上适当的软件,是完全可以直接作为工业控制板而安装在机械设备中使用的。 仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,所以站长在自学单片机的时候没有用过仿真器,碰到程序出错的时候,只好苦思冥想,或者在程序中插入一些驱动端口的指令,然后再接上一些发光二极管做简单指示,一般调试一个程序,反复烧写几十次芯片是很经常的。 具备了必要的工具以后就可以开始学习单片机了,对单片机进行编程可以采用汇编语言或者C语言,汇编语言的特点是代码紧凑,对初学者的电脑水平要求低、上手快,但是程序编写工作量大,站长网站的程序范例就是采用汇编语言编写的,这里说的C语言是专用于51单片机的C语言,它的特点是编写效率高,但是对使用者的电脑水平要求高,最好是已经会C语言了,站长网站上也有单片机C语言教程,是磁动力工作室网站明浩站长编写的,站长不会C语言,所以是从汇编语言开始学编程的。我认为初学单片机的人最好懂一些汇编语言,汇编语言可以直接控制单片机的资源,比如具体的单片机引脚、内存地址,掌握这些也是很有必要的,学会汇编语言可以打下比较好的基础,很多参考书也是这么说的,如果你是专业单片机开发人员,那么C语言效率高,更适合你。 自学汇编语言,首先要学会看懂别人的汇编语言程序,可以将汇编语言的指令翻译成自己容易理解的功能描述性文字,详细注释在程序后面,这样便于自己以后引用或者别人容易看懂。站长看到别人写的一些汇编程序的注释都非常少,这非常不利于初学者学习和互相交流,所以只要是站长写的程序都做了非常详细的注释。 学习汇编语言可以参考相关的书,汇编语言有100多条指令,但是常用的指令也就二三十条,可以先记住常用的汇编指令,如果一时记不住可以打印在纸上慢慢熟悉,然后对别人的汇编程序再加以试验验证,最后还可以在自己理解的基础上对汇编程序的相关参数修改再反复试验。 最后告诉朋友们一个秘密:学习单片机没有捷径!

求51单片机c语言教程 pdf

单片机学习方法:

网上单片机资料很多:

上面去搜搜看单片机的学习资料,都有入门级的

另外书店里面入门级的书也很多,可以买一本(北航出版的比较好)

1.入门时先了解单片机的构造啊原理啊

2.如果没有实验板自己搭建单片机的最小平台是比较难的

网上有个叫proteus的软件,可以用于单片机的仿真,就是说你编的程序可以在这个软件里运行,效果挺逼真的,可免费下载.

3.单片机的编程软件有keil或者wave,推荐前者,可以用c语言编写也可以汇编语言,c语言比较好学,推荐入门学习c语言,(可以买c和汇编语言都有介绍的单片机的书)

4.然后用keil编写程序在proteus上跑起来,如果你能点亮经典的单片机流水灯实验,那你就已经入门了

另:单片机的开发板或者最小系统可以买,电路水平高的话也可以自己搭建起来,51单片机大概6块左右一片自己搭建最小系统很便宜滴,学单片机一定要多做实验,不过推荐还是从仿真入门,仿真成功了后面的就有方向了.

关于C语言入门

【书名】 新概念51单片机C语言教程——入门、提高、开发、拓展全攻略(含光盘1张)

【作者】

【作译者】 郭天祥

【出版社】 电子工业出版社

【ISBN】 978-7-121-07893-4

【定价】 69.00元

【出版日期】 2009-01

【页码】

【版次】

【装帧】

【开本】 16

▼内容简介

本书从实际应用入手,以实验过程和实验现象为主导,循序渐进地讲述51单片机C语言编程方法以及51单片机的硬件结构和功能应用。全书共分5篇,分别为入门篇、内外部资源操作篇、提高篇、实战篇和拓展篇。本书内容丰富,实用性强,书中大部分内容均来自科研工作及教学实践,许多C语言代码可以直接应用到工程项目中。本书配套光盘提供13讲近30学时的教学视频和本书实例代码,可使读者更快更好地掌握单片机知识和应用技能。本书作者还可提供与本书配套的单片机实验板。

本书可作为大学本、专科单片机课程教材,适合于51单片机的初学者和使用51单片机从事项目开发的技术人员,也可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考。

▼图书目录

第1篇 入 门 篇

1.1 单片机概述

1.1.1 什么是单片机

1.1.2 单片机标号信息及封装类型

1.1.3 单片机能做什么

1.1.4 如何开始学习单片机

1.2 51单片机外部引脚介绍

1.3 电平特性

1.4 二进制与十六进制

1.4.1 二进制

1.4.2 十六进制

1.5 二进制的逻辑运算

1.5.1 与

1.5.2 或

1.5.3 非

1.5.4 同或

1.5.5 异或

1.6 单片机的C51基础知识介绍

1.6.1 利用C语言开发单片机的优点

1.6.2 C51中的基本数据类型

1.6.3 C51数据类型扩充定义

1.6.4 C51中常用的头文件

1.6.5 C51中的运算符

1.6.6 C51中的基础语句

1.6.7 学习单片机应该掌握的主要内容

2.1 Keil工程建立及常用按钮介绍

2.1.1 Keil工程的建立

2.1.2 常用按钮介绍

2.2 点亮第一个发光二极管

2.3 while语句

2.4 for语句及简单延时语句

2.5 Keil仿真及延时语句的精确计算

2.6 不带参数函数的写法及调用

2.7 带参数函数的写法及调用

2.8 利用C51库函数实现流水灯

第2篇 内外部资源操作篇

3.1 数码管显示原理

3.2 数码管静态显示

3.3 数码管动态显示

3.4 中断概念

3.5 单片机的定时器中断

4.1 独立键盘检测

4.2 矩阵键盘检测

5.1 模拟量与数字量概述

5.2 A/D转换原理及参数指标

5.3 ADC0804工作原理及其实现方法

5.4 D/A转换原理及其参数指标

5.5 DAC0832工作原理及实现方法

5.6 DAC0832输出电流转换成电压的

方法

第6章 串行口通信原理及操作流程

6.1 并行与串行基本通信方式

6.2 RS-232电平与TTL电平的转换

6.3 波特率与定时器初值的关系

6.4 51单片机串行口结构描述

6.5 串行口方式1编程与实现

6.6 串行口打印在调试程序中的应用

第7章 通用型1602,12232,12864液晶

操作方法

7.1 液晶概述

7.2 常用1602液晶操作实例

7.3 常用12232液晶操作实例

7.4 常用12864液晶操作实例

第8章 I2C总线AT24C02芯片应用

8.1 I2C总线概述

8.2 单片机模拟I2C总线通信

8.3 E2PROM AT24C02与单片机的通信

实例

第9章 基础运放电路专题

9.1 运放概述及参数介绍

9.2 反相放大器

9.3 同相放大器

9.4 电压跟随器

9.5 加法器

9.6 差分放大器

9.7 微分器

9.8 积分器

第3篇 提 高 篇

第10章 定时器/计数器应用提高

10.1 方式0应用

10.2 方式2应用

10.3 方式3 应用

10.4 52单片机定时器2介绍

10.5 计数器应用

第11章 串行口应用提高

11.1 方式0应用

11.2 方式2和方式3应用

11.3 单片机双机通信

11.4 单片机多机通信

第12章 指针

12.1 指针与指针变量

12.1.1 内存单元、地址和指针

12.1.2 指针变量的定义、赋值与

引用

12.2 指针变量的运算

12.3 指针与数组

12.3.1 指针与一维数组

12.3.2 指针与多维数组

12.4 指针与函数

12.4.1 指针作为函数的参数

12.4.2 指向函数的指针

12.4.3 指针型函数

12.5 指针与字符串

12.5.1 字符串的表达形式

12.5.2 字符指针作为函数参数

12.5.3 使用字符指针与字符数组的

区别

12.6 指针数组与命令行参数

12.6.1 指针数组的定义和使用

12.6.2 指向指针的指针

12.6.3 指针数组作为main()函数的命令行

参数

12.7 指针小结

12.7.1 指针概念综述

12.7.2 指针运算小结

12.7.3 等价表达式

12.8 C51中指针的使用

12.8.1 指针变量的定义

12.8.2 指针应用

第13章 STC系列51单片机功能介绍

13.1 单片机空闲与掉电模式应用

13.2 “看门狗”概念及其应用

13.3 用软件实现系统复位

13.4 内部扩展RAM的应用

13.5 扩展P4口的应用

13.6 内部E2PROM的应用

13.7 STC89系列单片机内部A/D应用

13.8 STC12系列单片机内部A/D应用

13.9 STC12系列单片机的PCA/PWM

介绍

13.10 STC12系列单片机的SPI接口

介绍

13.11 STC12系列单片机的“576MHz”超速

运行

第4篇 实 战 篇

第14章 利用51单片机的定时器设计一个

时钟

14.1 如何从矩阵键盘中分解出独立按键

14.2 原理图分析

14.3 实例讲解

第15章 使用DS12C887时钟芯片设计

高精度时钟

15.1 时钟芯片概述

15.2 DS12C887时钟芯片介绍

15.3 如何用TX-1C实验板扩展本实验

15.4 原理图分析

15.5 实例讲解

第16章 使用DS18B20温度传感器设计

温控系统

16.1 温度传感器概述

16.2 DS18B20温度传感器介绍

16.3 实例讲解

第17章 太阳能充/放电控制器

17.1 控制器原理图分析

17.2 控制器板上元件介绍

17.3 实例讲解

第18章 VC、VB(MSCOMM控件)与

单片机通信实现温度显示

18.1 VC MSCOMM控件与单片机通信实现

温度显示

18.2 VB MSCOMM控件与单片机通信实现

温度显示

第5篇 拓 展 篇

第19章 使用Protell 99绘制电路图全

过程

19.1 绘制电路板概述

19.2 建立工程

19.3 制作元件库

19.4 添加封装及制作PCB封装库

19.5 错误检查及生成PCB

19.6 布线电气特性设置

19.7 自动布线和手动布线

第20章 ISD400x系列语音芯片应用

20.1 ISD400x系列语音芯片介绍

20.2 ISD400x系列语音芯片操作规则

20.3 ISD400x系列语音芯片应用实现

第21章 电机专题

21.1 直流电机原理及应用

21.2 步进电机原理及应用

21.3 舵机原理及其应用

第22章 常用元器件介绍

22.1 二极管

22.2 电容

22.3 场效应管

22.4 光耦

22.5 蜂鸣器

22.6 继电器

22.7 自恢复保险

22.8 瞬态电压抑制器

22.9 晶闸管(可控硅)

22.10 电荷泵

第23章 直流稳压电源专题

23.1 整流电路

23.2 滤波电路

23.3 稳压电路

23.4 集成稳压模块的使用

23.5 串联开关型稳压电源

第24章 运放扩展专题

24.1 简单低通滤波器

24.2 “电流-电压”转换电路

24.3 光电放大器

24.4 精密电流源

24.5 可调参考电压源

24.6 复位稳定放大器

24.7 模拟乘法器

24.8 全波整流器和平均值滤波器

24.9 正弦波振荡器

24.10 三角波发生器

24.11 自动跟踪对称电源

24.12 可调实验电源

24.13 运放相关术语表

附录A 天祥电子开发实验板简介

A.1 TX-1C 51单片机开发板(配套详细

视频教程)

A.2 AVR单片机开发板(配套详细视频

教程)

A.3 PIC单片机开发板(配套详细视频

教程)

A.4 J-Link全功能ARM仿真器

A.5 三星S3C44B0 ARM7入门级开

发板

A.6 三星S3C44B0 ARM7提高级开

发板

A.7 TX-51STAR 51单片机开发板(配套

详细视频教程)

参考文献

(责任编辑:IT教学网)

更多

推荐word文章