二、实验用单片机开发板介绍
该开发板集成了单片机系统最常用,最关键的功能单元,包括字符液晶显示,图片/汉字显示,数码管显示,实时时钟,步进电机控制,继电器控制,ADC转换,E2PROM操作,串口通信等等,提供C51例程大全。
基本配置
1、STC89C51单片机,支持串口在线下载程序,也就是你不用买单片机烧写器也能够随时烧写程序到你的单片机里,随时观察你修改的程序运行状况。
2、4位8段数码管显示(可做计数器,定时器,频率计,流水灯,电子钟等各种显示实验)
3、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为STC单片机下载程序的接口)
4、独立的+5V直流电源供电(避免了因用USB口供电容易烧坏电脑主板的隐患)
5、蜂鸣器(可以让单片机发声,唱歌,让单片机变成电子琴)。
6、模数转换芯片ADC0832(两路可调AD输入,串行接口控制,转换效率高,是我们常用的模数转换器件)。
7、ULN2003步进电机驱动控制,可控制继电器和驱动步进电机(这是迈进工控自动化的第一步,对步进电机的操作是在单片机学习中所必须要面对的,也是必须要掌握的内容,机械精确定位,必须使用步进电机,数码相机调焦,扫描仪等设备都大量使用步进电机)
8、SPI串行实时时钟电路(DS1302)以及备用电源(熟悉SPI总线,用DS1302可以做一个万年历电子时钟,待机电流非常小,扣式电池的备用电源能保证时钟芯片工作几年时间,掉电时间照走,相比用定时器做的时钟,它的时间准,且不用计算,闰年自动生成,重新上电,数据不乱),对于类似像时钟芯片的操作也是我们必须要掌握的。
9、继电器控制,学习如何使用弱电控制强电,这在电器安全控制,远程控制方面非常有用。
10、AT24C02外部EEPROM芯片(IIC总线元件实验),该芯片的FLASH保存的数据可以保证10年不丢失。
11、字符液晶1602LCD接口。(采用接插件方式方便插拔,可显示两行 每行16个 共计32.任意ASCII码字符 它的功能应用比数码管丰富很多 显示的信息量也很大,可设计为仪器设备的控制面板人机交互模块)。
12、图形点阵液晶12864LCD接口(采用接插件方式方便插拔,可显示任意汉字和图形是目前单片机图文显示最常用的显示器件,我们的实验板支持带字库的12846液晶,开发程序更方便。12846液晶不随板赠送)。
13、4*4矩阵键盘(熟悉矩阵键盘编码,解码扫描原理,可做为人机交互信息输入接口)。
14、单片机32个IO口全部引出,方便用户进行自由扩展,增加新功能。
15、可安装锁紧装置,方便主芯片的安装及卸取
16、大部分元件采用贴片封装,有效的节省了系统空间。功能模块电源切换采用软件控制,无需跳线跳接,具有极强的系统综合控制功能。
17、光盘中含本实验板所有例程。赠送破解版KEIL编译,调试,仿真软件,STC单片机程序下载软件,电路板设计软件PROTEL 99SE,PROTEL 2004DXP等及所有电路图、实验板详细使用教程等。
标配组件
单片机开发板标准配置
1、主机开发板一套(配齐板上所有元件)
2、串口通讯电缆一条(兼程序下载线)
3、1602字符液晶一块
4、光盘一张DVD(开发板全套资料)
可以单独销售电路板及电子元件,用户可自己焊接调试。
三、IC解密之单片机算术运算指令
单片机算术运算指令汇总,不带进位位的单片机加法指令
ADD A,#DATA ;例:ADD A,#10H
ADD A,direct ;例:ADD A,10H
ADD A,Rn ;例:ADD A,R7
ADD A,@Ri ;例:ADD A,@R0
用途:将A中的值与其后面的值相加,最终结果否是回到A中。
例:MOV A,#30H
ADD A,#10H
则执行完本条指令后,A中的值为40H。
下面的题目自行练习
MOV 34H,#10H
MOV R0,#13H
MOV A,34H
ADD A,R0
MOV R1,#34H
ADD A,@R1
带进位位的加法指令
ADDC A,Rn
ADDC A,direct
ADDC A,@Ri
ADDC A,#data
用途:将A中的值和其后面的值相加,并且加上进位位C中的值。
说明:由于51单片机是一种8位机,所以只能做8位的数**算,但8位运算的范围只有0-255,这在实际工作中是不够的,因此就要进行扩展,一般是将2个8位的数**算合起来,成为一个16位的运算,这样,能表达的数的范围就能达到0-65535。如何合并呢?其实很简单,让我们看一个10进制数的例程:
66+78。
这两个数相加,我们根本不在意这的过程,但事实上我们是这样做的:先做6+8(低位),然后再做6+7,这是高位。做了两次加法,只是我们做的时候并没有刻意分成两次加法来做罢了,或者说我们并没有意识到我们做了两次加法。之所以要分成两次来做,是因为这两个数超过了一位数所能表达的范置(0-9)。
在做低位时产生了进位,我们做的时候是在适当的位置点一下,然后在做高位加法是将这一点加进去。那么计算机中做16位加法时同样如此,先做低8位的,如果两数相加产生了进位,也要“点一下”做个标记,这个标记就是进位位C,在PSW中。在进行高位加法是将这个C加进去。例:1067H+10A0H,先做67H+A0H=107H,而107H显然超过了0FFH,因此最终保存在A中的是7,而1则到了PSW中的CY位了,换言之,CY就相当于是100H。然后再做10H+10H+CY,结果是21H,所以最终的结果是2107H。
带借位的单片机减法指令
SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data
设(每个H,(R2)=55H,CY=1,执行指令SUBB A,R2之后,A中的值为73H。
说明:没有不带借位的单片机减法指令,如果需要做不带位的减法指令(在做第一次相减时),只要将CY清零即可。
乘法指令
MUL AB
此单片机指令的功能是将A和B中的两个8位无符号数相乘,两数相乘结果一般比较大,因此最终结果用1个16位数来表达,其中高8位放在B中,低8位放在A中。在乘积大于FFFFFH(65535)时,0V置1(溢出),不然OV为0,而CY总是0。
例:(A)=4EH,(B)=5DH,执行指令
MUL AB后,乘积是1C56H,所以在B中放的是1CH,而A中放的则是56H。
除法指令
DIV AB
此单片机指令的功能是将A中的8位无符号数除了B中的8位无符号数(A/B)。除法一般会出现小数,但计算机中可没法直接表达小数,它用的是我们小学生还没接触到小数时用的商和余数的概念,如13/5,其商是2,余数是3。除了以后,商放在A中,余数放在B中。CY和OV都是0。如果在做除法前B中的值是00H,也就是除数为0,那么0V=1。
加1指令
INC A
INC Rn
INC direct
INC @Ri
INC DPTR
用途很简单,就是将后面目标中的值加1。例:(A)=12H,(R0)=33H,(21H)=32H,(34H)=22H,DPTR=1234H。执行下面的指令:
INC A (A)=13H
INC R2 (R0)=34H
INC 21H (21H)=33H
INC @R0 (34H)=23H
INC DPTR ( DPTR)=1235H
说明:从结果上看INC A和ADD A,#1差不多,但INC A是单字节,单周期指令,而ADD #1则是双字节,双周期指令,而且INC A不会影响PSW位,如(A)=0FFH,INC A后(A)=00H,而CY依然保持不变。如果是ADD A ,#1,则(A)=00H,而CY一定是1。因此加1指令并不适合做加法,事实上它主要是用来做计数、地址增加等用途。另外,加法类指令都是以A为核心的
评论
查看更多