langxia 发表于 2020-10-27 08:45:49

51单片机学习

51单片机学习随笔




版权

   51单片机感觉还是很好触摸的,二十多块买了一个最小系统板,一个keil uVision4,再有一个stc-isp就基本可以先简单的玩一玩学一学了。在学习过程中我遇到了一些问题,简单的记一下随笔。
    一、最小系统板(电源+单片机+晶振+复位电路)使用流程
1.安装接口驱动。
2.安装编译软件,用注册机破解。
安装好后遇到问题:Keil报错failed to execute 'd:\Keil\C51\BIN\C51.EXE'

错误是因为直接拷贝的安装目录,里面的TOOLS.INI配置文件仍然保留了他电脑的路径,与你放置Keil的实际路径不符。

解决办法:

找到自己的keil安装目录,下面有个TOOLS.INI文件。用记事本打开这个文件,找到:
PATH="d:\Keil\C51"
或类似字样,将PATH=后面的内容改为自己keil实际安装的目录,最后一个文件夹是C51。


我的keil装在了C:\Keil这个目录,那么最后类似于这样:

PATH="C:\Keil\C51"


然后保存TOOLS.INI。重启keil即可生效(务必要重启keil)。
3.安装烧写软件,因为用的是STC公司的主控芯片所以直接用其公司的stc-isp-15xx-v6.82、


做完以上三步就可以写程序下载到单片机里使用了,不过单片机连接到电脑前最好先确认下主控芯片有没装反,记住豁口朝的位置,装反会导致主控芯片烧坏。


二、51单片机最小系统版学习顺序
认识了解51单片机----->C语言基础----->单片机最小系统组成----->使用LED灯----->使用数码管----->定时器\计数器----->使用键盘----->中断系统----->串口通讯----->IIC总线的EEPROM----->数模转换……
1.认识了解51单片机
单片机技术发展过程可分为三个主要阶段:
   ①单芯片微机形成阶段
    1976年,Intel公司推出了MCS-48系列单片机 。8位CPU、1K字节ROM、64字节RAM、27根I/O线和1个8位定时/计数器。

特点是:存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。
   ②性能完善提高阶段
    1980年,Intel公司推出了MCS-51系列单片机:8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。

特点是:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种 。

③微控制器化阶段

1982年,Intel推出MCS-96系列单片机。
芯片内集成:16位CPU、8K字节ROM、232字节RAM、5个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K。片上还有8路10位ADC、1路PWM输出及高速I/O部件等。

特点是:片内面向测控系统外围电路增强,使单片机可以方便灵活地用于复杂的自动测控系统及设备。
“微控制器”的称谓更能反应单片机的本质。



单片机工作的基本时序

机器周期和指令周期
   (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。 
   (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。 
   (3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 
   (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。



stc89C52主控芯片原理图
https://img-blog.csdn.net/20171008202559938?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2h5XzAwMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center



2.c51语言基础
C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。

单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。

(1)刚开始使用时主要需要记住两个c语言扩充定义:
①sfr:特殊功能寄存器声明。
②sbit:特殊功能位声明。
(2)常用运算符:
+   -   *   /(加 减 乘 除)
>   >=<<=(大于大于等于小于小于等于)
==!=         (测试等于测试不等于)


&&||!      (逻辑与    逻辑或逻辑非 )


>><<         (位右移    位左移)
& |             (按位与    按位或)
^ ~             (按位异或按位取反)

(3)最常用的基本数据类型:
unsigned char       占8位       表示0~255
unsigned int         占16位   表示0~65535
signed char         占8位         表示-128~127


(4)c51包含的头文件
通常有:reg51.h   math.h   ctype.h   stdio.hstdlib.habsacc.h
常用有:reg51.h(定义特殊功能寄存器和位寄存器);
            math.h   (定义常用数学运算);

heming2216 发表于 2020-10-27 08:49:23

硬件小白 发表于 2020-10-27 10:04:45

好文章,学习学习

天涯哥 发表于 2020-10-27 13:34:46

mj8abcd 发表于 2020-10-27 16:21:11

墙头草 发表于 2020-11-5 21:26:58

学海无涯 发表于 2020-11-10 08:49:51

看看,加强记忆。

思南 发表于 2021-2-9 09:50:51

交流学习下
页: [1]
查看完整版本: 51单片机学习