SS8051高级单片机实验手册NEW机械学院.docx
- 文档编号:24108481
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:148
- 大小:636.09KB
SS8051高级单片机实验手册NEW机械学院.docx
《SS8051高级单片机实验手册NEW机械学院.docx》由会员分享,可在线阅读,更多相关《SS8051高级单片机实验手册NEW机械学院.docx(148页珍藏版)》请在冰豆网上搜索。
SS8051高级单片机实验手册NEW机械学院
SS-8051高级单片机
实验手册
北京海天创新电子有限公司
Http:
//
Email:
lclxy@
2005年10月
目录
一.概要…………………………………………………………………………………………………3
二.SS-8051高级单片机实验仪可直接使用的电路单元………………………………………3
三.SS-8051高级单片机实验仪系统配备…………………………………………………………3
附录一:
SS-8051高级单片机实验指导书…………………………………………………4
附录二:
51单片机硬件开发支持…………………………………………………………66
附录三:
微型打印机及其与单片机接口…………………………………………………73
附录四:
ISD4004系列单片语音录放IC资料……………………………………………78
附录五:
HD61202液晶显示控制驱动器的应用资料……………………………………82
附录六:
SS-8051高级单片机实验仪原理图……………………………………………86
一.概要:
一般的单片机实验仪通常为固定线路,再有配合该实验线路的教材,学习者只能依照该实验仪做实验,无法自行创作线路,甚至无法改变外围器件的地址,实验者知其然而不知其所以然。
另一种没有实验仪,初学者就按电路图自行在面包板上或在万用板上焊接电路,花费很多时间在接线及硬件排错上,软件练习往往不够。
有鉴如此,北京海天创新电子有限公司特开发一种开放式组合电路的单片机SS-8051高级单片机实验仪,其特性如下:
1.可做MCS51系列单片机的实验或其它MCU的的实验;
2.可配任何厂家的仿真器,也可以自仿真;
3.系统采用CPU独立和组合均可的方式;
4.提供20多种单元电路;
5.全部电路可由使用者以线连接,弹性组合;
6.无需焊接,节省时间,如同面包板或万用板实验;
7.配备开关电源;
8.可配合各种单片机书籍。
二.SS-8051高级单片机实验仪可直接使用的电路单元
1.微型打印机接口电路;
2.8031/51/2051高级接口电路;
3.8255电路;
4.SRAM电路;
5.74LS138译码器电路;
6.接点延伸区;
7.拨码开关电路;
8.8X8点阵显示电路;
9.动态七段数码管电路;
10.8个LED输出(二组电路);
11.键盘电路;
12.RS232串行通信电路;
13.D/A电路;
14.A/D电路;
15.步进电机实验电路;
16.直流电机实验电路;
17.点阵图形液晶实验电路;
18.ISD4004语音芯片实验电路;
19.7279键盘与数码管显示芯片电路;
20.模拟量输入单元电路。
三、SS-8051高级单片机实验仪系统配备
1.实验机箱一台
2.使用说明书一份
3.连接线若干
4.程序光盘一张
5.仿真器一台
附录一:
SS-8051高级单片机实验指导书
目录
第一部分软件练习
实验一:
从外部数据存储器传送到内部存储器……………………………………5
实验二:
从外部数据存储器传送到内部RAM中…………………………………6
实验三:
求16个学生的年龄之和…………………………………………………6
实验四:
求两省人口之和……………………………………………………………7
实验五:
求八个无符号数的最大值…………………………………………………7
实验六:
求Y=SignX的……………………………………………………………8
实验七:
求两个16位无符号数之积………………………………………………8
实验八:
将一个字节BCD码转换成二进制数……………………………………9
实验九:
将一个字节二进制数转换成十进制数……………………………………9
实验十:
自编实验……………………………………………………………………9
第二部分硬件与接口
实验一:
P1口实验一(输入输出实验、最小系统)………………………………10
实验二:
P1口实验二…………………………………………………………………13
实验三:
外中断实验…………………………………………………………………15
实验四:
定时/计数器实验……………………………………………………………17
实验五:
点阵显示屏实验……………………………………………………………21
实验六:
8255键盘、数码显示实验…………………………………………………23
实验七:
数/模转换实验………………………………………………………………27
实验八:
模/数转换实验………………………………………………………………29
实验九:
微型打印机实验……………………………………………………………32
实验十:
HD7279A键盘显示控制实验………………………………………………34
实验十一:
直流电动机的控制实验…………………………………………………40
实验十二:
步进电动机的控制实验……………………………………………………42
实验十三:
点阵图形液晶显示器的控制实验…………………………………………45
实验十四:
ISD系列语音芯片的单片机控制实验………………………………………53
实验十五:
单片机与PC机串行通信实验…………………………………………63
第一部分软件练习实验
一.实验系统简介:
1.SS-8051高级仿真实验系统的主要特点:
SS-8051高级仿真实验系统的主要特点在于它是一个几乎完全真实的项目开发环境。
它的所有电路单元均是独立的(除了电源和地线之外),复杂的电路可以用排线搭建起来,整个系统给学习者一个真实的开发环境,对于小型的实验和大型的课程设计均可应用,此外还可以作为开发新产品的实验系统。
2.调试软件的启动、操作与退出:
万利调试软件的启动很简单,在WINDOWS操作系统下,只要用鼠标单击“开始|程序|MedWin|MedWin.exe”程序即可启动。
退出调试环境象所有的WINDOWS程序一样,用鼠标单击“文件|退出”菜单或单击右上角的“X”均可退出程序。
万利调试软件的操作与编程器的操作以及硬件开发的整个过程概述可以参考“附录二:
51单片机的硬件开发支持”。
二.操作练习与程序执行:
实验一:
练习从外部数据存储器传送到内部寄存器中
第一部分“软件练习”实验均可以在脱机模拟状态下调试运行,也可以连上仿真器与实验仪在线仿真调试运行。
1.模拟调试状态下:
(以万利仿真器为例)
启动“MedWin.exe”万利仿真器调试软件,进入“模拟调试”状态。
建立一个项目,在项目中添加一个新的文件(以.ASM作为后缀名),将后面的程序清单输入,按Ctrl+F8编译并装载,排除所有的错误直到编译通过。
打开外部数据区窗口(XDATA)、寄存器窗口和特殊功能寄存器窗口,将外部数据区的00H,01H单元的内容改为54H,55H,单步或全速运行调试程序,观察寄存器A,B,DPTR,R1,R2,R3的值是不是如程序所希望的那样变化,最后看R3的值是不是54H+55H=A9H。
2.连机状态下:
本实验要连机运行调试,需在实验仪上进行相应的连线。
先用数据线将仿真器和仿真头连起来,把仿真头缺口朝上插入2单元的51单片机插座(千万注意不要插反)。
然后连接4单元存储电路与2单元单片机电路。
它们之间具体的连线如下表所示(将对应的网络标号用排线连接起来):
2单元
4单元
P00-P07
DB0-DB6
P20-P20
A8-A15
P36
WEB
P37
OEB
ALE
ALE
CEB连GND
3.线连好以后,打开仿真器和实验仪的电源,其余操作和模拟调试状态下相同。
实验的源程序如下所示:
ORG00H;程序从00H处开始运行
AJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVA,#56H;在A寄存器中放置56H,这句程序执行完毕后可以看看A寄存
;器中的值是否为78H
MOVB,#78H;在B寄存器中放置78H,这句程序执行完毕后可以看看B寄存
;器中的值是否为78H
MOVDPTR,#00H;给DPTR赋值00H,表示是数据寄存在00H的地址
MOVXA,@DPTR;将外部数据区00H的数据放进寄存器A
MOVR1,A;将A中的数据放入R1寄存器
INCDPTR;将DPTR增1,变为01H
MOVXA,@DPTR;将外部数据区01H的数据放进寄存器A
MOVR2,A;将A中的数据放入R2寄存器
ADDA,R1;将A中的数据与R2中的数据相加,和在A中
MOVR3,A;将结果保存在R3中
HERE:
AJMPHERE;死循环
END;程序结束标志
实验二:
练习从外部数据存储器传送到内部RAM中
本实验也可以在模拟调试和连机状态下两种方式下进行实验。
在连机实验时的连线与“实验一”完全相同。
程序运行之前,将外部数据存储器(XDATA)和内部数据存储器(DATA)窗口打开,并在XDATA窗口从00H单元开始连续键入30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,40H,41H,42H,43H,44H,45H,然后程序单步或全速运行,停下来后观察内部数据区窗口(DATA)从30H开始的数据是否跟上述数据相同。
实验的源程序如下:
ORG00H;程序从00H处开始运行
START:
MOVDPTR,#00H;给DPTR赋值00H,表示是数据存放在00H的地址
MOVSP,#80H;给SP赋值80H,程序运行过程中我们可以看看SP的变化
MOVR0,#30H
MOVR7,#10H
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP
HERE:
SJMP$;死循环
END;程序结束标志
实验三:
求16个学生的年龄之和,数据放在20H单元
程序运行之前,先将16个学生的年龄放在内部数据区20H单元开始的地方,码制为BCD码,程序运行结束时,16个学生的年龄和放在寄存器A和B中(B为高位,A为低位)。
程序清单如下所示:
ORG00H;程序从00H处开始运行
SJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR0,#20H
MOVR7,#16
MOVA,#00H
MOVB,A
LOOP:
ADDA,@R0
DAA
JNCNEXT
INCB
NEXT:
:
INCR0
DJNZR7,LOOP
HERE:
SJMPHERE;死循环
END;程序结束标志
实验四:
求两省人口之和
以四个字节长度存放两省人口数,该程序涉及到多字节的加减法。
程序运行前将两省的人口数放入外部数据区(XDATA)从00H和10H开始的单元。
如从00H开始依次放入32H,54H,76H,98H,从10H开始依次放入34H,12H,32H,54H(从低字节往高字节排列),程序运行完毕,观察程序运行结果是不是等于98765432+54321234=0153086666。
程序清单如下:
ORG00H;程序从00H处开始运行
SJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR7,#4
MOVR0,#30H
MOVDPTR,#0000H
LP1:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LP1
MOVR1,#40H
MOVDPTR,#0010H
MOVR7,#4
LP2:
MOVXA,@DPTR
MOV@R1,A
INCR1
INCDPTR
DJNZR7,LP2
MOVR6,#4
MOVDPTR,#0020H
MOVR0,#30H
MOVR1,#40H
CLRC
LP3:
MOVA,@R0
ADDCA,@R1
DAA
MOVX@DPTR,A
INCR0
INCR1
INCDPTR
DJNZR6,LP3
MOV20H,C
HERE:
SJMPHERE;死循环
END;程序结束标志
实验五:
求8个无符号数的最大值
给定8个无符号数,将其放入内部数据区(DATA)中,地址从20H开始,运行下列程序,看看是否将8个数的最大值存储在A寄存器和内部数据区41H单元中。
程序清单如下:
ORG00H;程序从00H处开始运行
SJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR0,#20H
MOVR6,#08H
MOVA,@R0
DECR6
LOOP:
INCR0
MOV40H,@R0
CJNEA,40H,CHK
CHK:
JNCLOOP1
MOV41H,A
HERE:
SJMPHERE;死循环
END;程序结束标志
实验六:
给定8位有符号数X,求Y=SIGNX之值
给定8个有符号数,放至内部数据区(DATA)30H单元开始的地方,求其符号,并将结果送入寄存器R1,程序适合单步执行,每执行一句观察一下R1是否真实反映有符号数的符号。
程序清单如下:
ORG00H;程序从00H处开始运行
SJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR0,#30H
MOVA,@R0
ANLA,@R0
JZZERO
JNBACC.7,NEXT
MINUS:
MOVR1,#0FFH
SJMPEXIT
ZERO:
MOVR1,#0
SJMPEXIT
NEXTMOVR1,#1
EXIT:
SJMPEXIT;死循环
END;程序结束标志
实验七:
求两个16位无符号数之积
程序清单如下:
ORG00H;程序从00H处开始运行
AJMPSTART;跳转到START的位置
ORG30H
START:
MOVR5,#11H;乘数高字节
MOVR4,#78H;乘数低字节
MOVR3,#11H;被乘数高字节
MOVR2,#11H;被乘数低字节
MOVR1,#30H
DUMUL:
MOVA,R1
MOVR6,A
MOVR7,#04
CLEAR:
MOV@R1,#0H
INCR1
DJNZR7,CLEAR
MOVA,R6
MOVR1,A
MM:
MOVA,R2
MOVB,R4
MULAB
ACALLADDM
MOVA,R2
MOVB,R5
ACALLADDM
MOVA,R3
MOVB,R4
MULAB
DECR1
ACALLADDM
MOVA,R3
MOVB,R5
MULAB
ACALLADDM
MOVA,R6
MOVR1,A
HERE:
SJMPHERE;死循环
ADDM:
ADDA,@R1;子程序
MOV@R1,A
MOVA,B
INCR1
ADDCA,@R1
MOV@R1,A
INCR1
MOVA,@R1
ADDCA,#0
MOV@R1,A
DECR1
RET;子程序返回
END;程序结束标志
实验八:
将一个字节BCD码转换成二进制数
ORG00H;程序从00H处开始运行
AJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR2,#99H
ACALLDTOB
HERE:
SJMPHERE;死循环
DTOB:
MOVA,R2
ANLA,#0F0H
SWAPA
MOVB,#10
MULAB
MOVR3,A
MOVA,R2
ANLA,#0FH
ADDA,R3
MOVR3,A
MOV20H,A
RET
END;程序结束标志
实验九:
将一个字节二进制数转换成十进制数
ORG00H;程序从00H处开始运行
SJMPSTART;跳转到START的位置
ORG30H;START从30H开始
START:
MOVR2,0FFH
ACALLBTOD
HERE:
SJMPHERE;死循环
ORG100H;将二进制数转换成十进制数的子程序放在100H的位置
BTOD:
MOVA,R2;二进制数转换成十进制数的子程序
MOVB,#100
DIVAB
MOVR6,A
MOVA,#10
XCHA,B
DIVAB
SWAPA
ADDA,B
MOVR5,A
RET;二进制数转换成十进制数的子程序返回
END;程序结束标志
实验十:
自编实验,上机调试通过
第二部分硬件及接口实验
实验一:
P1口实验一
一.实验题目:
P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
二.实验目的:
1.学习P1口作为输出口的使用方法。
2.学习延时子程序的编写和使用。
三.有关说明:
P1口为准双向口,P1口的每一位都能独立的定义为输出线或输入线。
作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。
再来看一下延时程序的实现,现常用的有两种方法:
一是用定时器中断来实现,二是用指令循环来实现。
在系统时间允许的情况下,可以采用后一种方法。
以12M晶振为例,一个机器周期为12/12=1uS,现要写一个延时0.1S的程序,可大致写出如下:
MOVR7,#200
DE1:
MOVR6,#X
DE2:
DJNZR6,DE2
DJNZR7,DE1
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需2uS,现求出X值:
(X*2+2+2)*200+2=100,000
求出X=248,代入上式可知约延时(248*2+2+2)*200+2=100,002uS,已经很精确了。
四.实验电路:
L1VCC
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
8051
L8VCC
五.连线方法:
电路单元
第2单元
第11单元
连接1
P1.0-P1.7
L1-L8
六.程序框图:
结束
七.程序清单:
(汇编)
ORG00H;程序从00H开始
AJMPSTART;跳转到START位置
ORG30H;开始程序从30H开始,将00H到30H之间的
START:
MOVSP,#60H;将堆栈指针设为60H
MOVA,#0FEH;将A赋值为0FEH
LOOP:
MOVP1,A;点亮1个灯
ACALLDELAY;调用延时程序
RLA;将A循环移动一位
LJMPLOOP;跳转到LOOP,程序循环执行。
DELAY:
MOVR1,#10;延时子程序,10个100MS,一共1S
DEL1:
MOVR2,#200
DEL2:
MOVR3,#248
DEL3:
DJNZR3,DEL3
DJNZR2,DEL2
DJNZR1,DEL1
RET;延时程序返回
END;程序结束
程序清单:
(C51):
#include
#include
voiddelayms(unsignedcharms)/*延时子程序*/
{
unsignedchari;
while(ms--)
{
for(i=0;i<250;i++);
}
}
unsignedcharLED;
voidmain(void)
{
LED=0xfe;
P1=LED;
while
(1)
{
delayms(250);
LED=_crol_(LED,1);/*循环右移1位,点亮下一个LED*/
P1=LED;
}
}
实验二:
P1口实验二
一.实验题目:
P1口做输入口,接八个拨码开关,以P0口做输出口,编写程序读取开关状态,在二极管上显示出来。
二.实验目的:
学习P1口作为输入口的使用方法。
三.有关说明:
P1口为准双向口,P1口的每一位都能独立的定义为输出线或输入线。
作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。
四.实验电路:
P1.0P0.0
P1.1P0.0
P1.2P0.0
P1.3P0.0
8051
P1.4P0.0
P1.5P0.0
P1.6P0.0
P1.7P0.7
GND
L1VCC
S1
L8VCC
S8
五.连线方法:
电路单元
第2单元
第11单元
第1单元
连接1
P0.0-P0.7
L1-L8
连接2
P1.0-P1.7
S0-S7
六.程序框图:
结束
七.程序清单(汇编):
ORG00H;程序从00H开始
AJMPSTART;跳转到START
START:
MOVSP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SS8051 高级 单片机 实验 手册 NEW 机械学院