单片机学习思路

更新时间:2024-06-15 04:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。 7个运算符+,-,*,/,|,&,!。 4个逻辑关系符||,&&,!=,==.

3个数据类型unsigned char, unsigned int, unsigned long。 3个进制相互转化,二进制,十六进制,十进制。 1个void函数。

1个一维数组code(或const) unsigned char array[]。

在main函数循环中用switch语句实现多任务并行处理的任务切换,再外加一个定时器中断

1、 单片机内部是由运算器,寄存器,IO口,复位电路,晶振电路,程序存储器ROM,数

据存储器RAM等部分组成

2、 单片机一个最重要的特性:程序下载进单片机的内存后,可以识别管脚上的高低电平信

号,管脚也可以输出不同时间长度的高低电平 3、 单片机内存包括ROM和RAM两部分。ROM的优点是掉电后存储的内容不会丢失,缺点

是除非在烧录(下载)过程中,否则上电后它存储的内容也不能更改。RAM的优点是上电后存储的内容可以被程序指令随时更改,而且还没有更改次数限制,缺点是掉电后内容会丢失。

4、 程序包括指令和数据两部分。指令是指程序中的判断,跳转,赋值等指令,这些内容是

程序烧录进单片机时就固定下来的,不可更改的,所以存储在ROM中。数据也分两种,程序指令可更改的数据和程序指令不可更改的数据。程序指令可更改的数据存储在RAM中,程序指令不可更改的数据存储在ROM中。那么谁在幕后进行这些分类存储?是编译器软件和下载器(烧录器)。编译器除了把C语言翻译成机器语言之外,还帮我们分好了类,分配好了存储的地址和位置,下载器(烧录器)再根据这些信息把程序存储到内存中。

5、 管脚。它是单片机与外部电路进行能量和信息交互的桥梁。有电源,复位,晶振和IO

口这4种类型管脚。

1) 电源管脚。是给单片机内部电路供电的接口。单片机有两种常用的供电电压,一般

不是3.3V就是5V,有的单片机两种电压都兼容。 2) 复位管脚。单片机上电后需要外部电路给它一个瞬间高电平或者低电平的复位信号,

才能启动工作。这类外部的复位电路通常是用电容和电阻组成的充电电路来实现,也有一些系统是用专门的复位芯片来实现。

3) 晶振管脚。任何单片机想要工作必须要有晶振。单片机执行程序指令是按一个节拍

一个节拍来执行的,晶振产生固定频率的脉冲。现在很多单片机都把晶振集成到内部了,不用再外接晶振。

4) IO口管脚,IO口能识别按健的输入,也能驱动继电器的开关,也能跟外围器件进行

通信。

5) 电平。单片机IO口管脚检测到的电压低于或等于0.8V时是低电平,程序里读取到

的是0数字。检测到的电压高于或等于2.4V时是高电平,程序里读取到的是1数字,当然IO口输入的最大电压不能超过单片机的供电电压。单片机输出的低电平是0V,单片机输出的高电平等于它的供电电压值。

6) 时间。跟外围芯片通信的时序节拍需要时间,驱动发光二极管闪烁需要时间,工控

自动化的某些延时需要时间。单片机的时间来源自两方面。第一方面源自指令的周期时间。单片机是根据节拍来执行程序指令的,所以每执行一条指令都要消耗一点时间,只要让程序执行一些无实际意义的指令,并且通过调整所执行指令的条数就可以得到所需要的时间长度。第二方面源自单片机内部自带的定时器。假如设置定时器每20毫秒产生一次中断,现在要获取10秒钟的时间,只需程序统记500次定时中断就可以了。

6、 平台软件和编译器软件

C语言通过编辑和编译成为HEX格式的机器码。 51单片机的平台软件是keil,编译器是C51。

PIC单片机的平台软件是MPLAB,8位单片机是PICC编译器,12位单片机是PIC18编译器,16位单片机是C30编译器。 7、 第一步:新建一个工程文件夹。先在电脑D盘目录下新建一个文件夹,取名为“stc89c52rc”。

说明:1)文件夹以及后面所取的文件名不要用中文,请全部用英文,数字,或者下划线这些字符;2)新建的文件夹请直接放在某盘的根目录下,而不要放到某个已有文件夹的目录下。

第二步:启动keil软件。

第三步:关闭默认被打开的已有工程。点击上面”Project”选项,在弹出的下拉菜单中选择“Close Project”即可。

第四步:利用工具向导新建一个工程。点击上面”Project”选项,在弹出的下拉菜单中选择“new uVision Project...”,在弹出的对话框中,选择保存的目录是刚才第一步新建的文件夹“stc89c52rc”目录下,输入跟文件夹名称一样的文件名“stc89c52rc”,然后单击“保存”按键,此时会弹出一个选择单片机型号的对话框,双击”Atmel”这个厂家,在展开的下拉选项中选中“AT89C52”这个型号,然后点击“OK”,此时会弹出一个英文询问框“是否要复制STARTUP.A51这个文件到工程里?”我们单击“否”即可。

有3个地方需要解释:

(1)以上新建的保存文件名应该跟我们第一步在D盘新建的文件夹名称一致,因为有一些单片机厂家的平台软件是有这个要求的,所以大家养成这个习惯,以后可以避免遇到一些不必要的麻烦。 (2)上面之所以选择Atmel厂家的AT89C52单片机,是因为朱兆祺51学习板所用的单片机是STC89C52RC这个单片机,而STC89C52RC跟AT89C52是兼容的。

(3)在弹出的询问框“是否要复制STARTUP.A51这个文件到工程里?”中,STARTUP.A51这个文件有什么含义?STARTUP.A51是一个启动程序文件,在单片机进入.c程序执行main函数之前,先去执行这个启动程序,这个启动程序是专门用来初始化RAM和设置堆栈等,如果我们选“否”不添加这个启动程序,编译器也会自动加入一段我们不能更改的默认启动程序。如果选“是”,那么这个文件就会出现在我们工程里,我们可以根据需要进行更改。但是大多数的情况下,我们都不会去更改这个文件的,所以无论你选“是”还是“否”,只要你不更改START.A51这个文件,对我们都是一样的。我本人一般情况下都是选“否”。

第五步:新建一个.c源文件。点击上面”File”选项,在弹出的下拉菜单中选择“New ...”,会看到出来一个名字为”Text1”的文件。再一次点击上面”File”选项,在弹出的下拉菜单中选择“Save”,会弹出一个保存的对话框,还是选择保存在第一步新建的文件夹目录下,文件名取“stc89c52rc.c”,单击“保存”。 有2个地方需要解释:

(1)以上所取的文件名必须带.c这个扩展名,表示此文件是C文件格式。

(2)第五步仅仅相当于在工程文件夹里新建了一个.c格式的C文件,此C文件目前跟工程还没有任何关联。

第六步:把刚才新建的.c源文件添加到工程里,跟工程建立起关联的关系。点击左边”Porject”选项框里面的”Target 1”前面的“+”号(如果没有发现Project,请按以下第2条解释操作),

在展开的下拉菜单下看到“Source Group 1”。右键单击“Source Group 1”选项,在下拉菜单中选择“Add Existing Files to Group ‘Source Group 1’...”选项,弹出一个文件选择对话框,单击选中刚才新建的.c源文件,然后单击一次“Add”按钮,此时虽然对话框没有关闭,但是已经把.c源文件添加到工程里了,这时只要再点击一次“Close”按钮即可把此对话框关闭。这时发现左边的“Source Group 1”前面多了一个”+”号,单击此”+”号展开,发现下面刚才我们新添加进去的.c源文件“stc89c52rc.c”。 有2个地方需要解释:

(1)以上有一个地方,我本人觉得keil软件的用户体验做得不够好,容易引起误解。在弹出一个文件选择对话框时,先单击选中刚才新建的.c源文件,此时单击一次“Add”按钮,已经相当于把.c文件添加进工程了,但是此时keil软件并没有自动关闭对话框,这样很容易让初学者误以为.c源文件还没有被添加进去。 (2)如果没有以上操作的时候没有发现左边Project窗口,请点击左下角的Project选项来切换。

第七步:双击打开左边被添加进工程的“stc89c52rc.c”.c源文件,就可以在此“stc89c52rc.c”文件下输入我们的C语言代码了,请把以下范例代码复制进去,然后再一次点击”File”选项,在弹出的下拉菜单中选择“Save”保存。此时,新建一个工程的步骤已经完成。

解释:

把代码复制到keil4时,中文注释出现乱码怎么办?解决办法如下:

点击左上角\,在下拉菜单中选最后一项“Configuration”,在弹出的对话框中把Encoding的选项改成“Chinese GB2312(Simplified)”.

重新复制一次代码进去就恢复正常了。

第八步:打开一个现成的工程。前面七步已经讲解完了如何新建一个工程,现在教如何打开一个现成的工程。先单击右上角”X”关闭整个keil软件,然后双击桌面”keil uVision4”的图标重新启动keil软件,如果发现此软件默认打开了一个之前已经存在的工程,请先按照前面第三步关闭此工程。然后,点击上面”Project”选项,在弹出的下拉菜单中选择“Open Project...”,在弹出的文件对话框中,找到第一步新建的工程文件夹,单击选中“stc89c52rc.uvproj”这个文件名,然后点击“打开”,就可以打开一个现有的工程文件了。

技巧:重复利用现有工程模板进行程序开发的方法以及代码备份管理技巧

unsigned char的变量占用1个字节RAM,共8位,取值范围是从0到255。 Unsigned int的变量占用2个字节RAM,共16位,取值范围是从0到65535。 Unsigned long的变量占用4个字节RAM,共32位,取值范围是从0到4294967295。

本文来源:https://www.bwwdw.com/article/mkc3.html

Top