单片机试验一平台熟悉.docx
- 文档编号:30040077
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:26
- 大小:210.79KB
单片机试验一平台熟悉.docx
《单片机试验一平台熟悉.docx》由会员分享,可在线阅读,更多相关《单片机试验一平台熟悉.docx(26页珍藏版)》请在冰豆网上搜索。
单片机试验一平台熟悉
试验一、试验设备的使用
1、设备使用注意事项:
1)插拔导线的时候一定要断电,否则有可能会烧坏芯片。
导线不能放到开发箱上。
2)下课时请将计算机安全关机,实验设备断电,将用过的导线拔下,整理好放在实验箱里面。
3)箱子里的拨码开关,请不要任意拨动,会影响程序的运行结果。
4)请勿将水杯等物品放在试验台附近,防止水泄漏造成短路烧坏设备。
2、各个功能部分引脚说明
1)逻辑电平开关电路:
K1-K10是由开关引出的,当开关向上拨时,引脚输出高电平、向下拨时,引脚输出低电平。
2)发光二极管:
输入端是L1-L12,分别对应12个发光管,输入高电平时,发光管亮。
3)单脉冲发生电路:
按一次AN键,在插孔上分别输出一个正脉冲SP和负脉冲/SP。
4)每个芯片的引脚都引出到附近的插孔上,如果要进行芯片引脚之间的电气连接,只需要用导线连接相应的插孔即可。
5)拨码开关的默认位置:
开关SK11-5置ON,6-10置OFF。
SK2置ON,SK3全部ON,SK4全部OFF,卧式开关KBB在51、96位置,立式开关KBB1在51、88位置,DL1-DL4的1、2相连。
3、软件部分:
需要使用的软件环境在桌面的“单片机-DVCC实验系统”。
整个软件可以替代keil的功能。
可以通过窗口工具栏左边的下拉框选定要做的实验名称,对应有实验的目的、原理、内容和程序。
如果需要知道芯片的功能,则在“芯片”工具栏里选择芯片型号即可。
4、程序编写调试的过程:
新建(*.asm)------编写好程序并保存-----编译------调试(程序代码就会下载到实验平台的RAM区)。
注意:
1)程序文件名一定不用中文名字。
系统不能识别汉字文件名称。
2)每次要连接、编译、调试之前请选中程序窗口的标题栏,使程序窗口为当前活动窗口,(标题栏显示为蓝色高亮状态,如果编译、调试等按钮呈现灰色不可用状态,则需要重新点击程序窗口标题栏,使其变为当前窗口)。
编译完之后,message窗口会显示NoErrorsFound。
3)调试时,首先需要连接PC和实验箱上的串口连接线(注意尽量不要带电插拔串口线),实验箱开机,数码管显示P.,按下RESET键和PCDBG键进入调试状态,----点击“调试”按钮,该按钮的作用是连接PC和实验平台,并将程序下载到实验箱上。
可以选择单步调试或者连续运行。
第一个单步的作用是遇到子程序可以跟踪到子程序内部的单步运行
第二个单步是只跟踪主程序,遇到子程序不进入跟踪。
两个运行:
第一个运行:
运行到当前行。
即运行到光标所在的行
第二个运行:
连续运行
断点:
如果碰到有问题的程序指令或者要跟踪的指令可以设置断点,程序连续运行到断点之后就自动会停止在断点处。
可以通过在断点的位置查看寄存器或者存储单元的值来获取此时的状态,从而排除问题。
3)在PC机的窗口中会显示调试所用的寄存器窗口、数据窗口、代码数据窗口、信息窗口等,找到相应的存储器地址或寄存器可以观察调试试验结果。
反汇编窗口中,绿色箭头指示的位置是当前程序运行到的RAM区地址,和经过反汇编的程序。
即显示每一条指令翻译成二进制代码时的情况。
数据窗口中可以查看RAM区任意地址的内容值。
例如要查看2000H单元的内容,只需要用方向键调整地址到2000开始的地址单元,横行上显示的数据就是2000-2007H地址的内容,一共8个字节。
寄存器和标志位窗口可以查看寄存器的内容。
5、使用下面的例子熟悉环境。
ORG0540H
MOVA,#35H
MOVR0,#20H
MOV@R0,#50H
MOV30H,#88H
MOVDPTR,#2000H
MOVX@DPTR,A
MOVCA,@A+DPTR
SJMP$
END
注意:
实验报告中,需要看到上面程序最终使哪些位置的哪些内容发生了改变。
从哪个窗口得到验证的。
实验二、查询法实验
一、实验内容
1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一显示。
2、P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。
即8个发光管相当于8位的二进制位。
当数值为1时,L1点亮。
数值为2=00000010B时,L2点亮,数值3=00000011时,L1、L2点亮,依次类推。
二注意事项
1、按键去抖动
2、LED是高电平点亮,共阴极的
3、计算延时时间
DELAY:
MOVR6,#00H
DELAY1:
MOVR7,#80H
DJNZR7,$;(80H*2)*1us=256us
DJNZR6,DELAY1;256us*256=65536us=65.5ms
RET
三、实验步骤
1、P3.3用插针连至/sp,
2、P1.0—P1.7用插针连至L1—L8。
四程序
五改进
将该例子改成为每一次按键,8个灯循环点亮的状态。
即先点亮L1,然后按键一次点亮L2,依次L3。
。
。
。
。
源程序:
MOVA,#00H
MOVP1,A
MAIN:
JNBP3.3,KEY
SJMPMAIN
KEY:
LCALLDELAY
JBP3.3,MAIN
INCA
MOVP1,A
SJMPMAIN
DELAY:
MOVR6,#00H
DELAY1:
MOVR7,#00H
DJNZR7,$
DJNZR6,DELAY1
RET
END
实验四LED的驱动实验
一实验目的:
驱动LED循环显示0-9等数字。
二简介
1、该系统最高位的LED为共阳极连接。
所以,在该LED上显示0-9的段码值表为:
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H。
2、该LED使用了8155控制,使得在端口地址FF21H输入数据,可以控制显示的LED位置。
例如,如果FF21H地址送20H,将会在最高的LED6上显示数据。
如果FF21H送10H,将会对LED5显示数据。
端口地址FF22H是控制要显示的数值的。
所以只要在该端口输出要显示的数的段码值,则就能将该数据显示出来。
//入口参数,即要显示的数值放在A中
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
三程序流程:
四程序
BEGIN:
MOVR0,#00H
LOOP:
MOVA,#10H
MOVDPTR,#0FF21H
MOVX@DPTR,A;上面三条指令控制显示的位置在第几个LED。
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR;这三条指令查出要显示的数据的码值放到A中。
MOVDPTR,#0FF22H
MOVX@DPTR,A;将码值送到显示端口显示
ACALLDELAY1S
INCR0
CJNER0,#10,LOOP
AJMPBEGIN
DELAY1S:
MOVR6,#00H
L1:
MOVR7,#00H
DJNZR7,$
DJNZR6,L1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
实验五串并转换实验
一、实验目的:
1、掌握串行口方式0工作方式及编程方法
2、掌握利用串行口扩展IO通道的方法
二、实验内容
利用8051的串行口和串行输入、并行输出移位寄存器74LS164,扩展两个8位输出通道,用于驱动2个数码显示管,在数码管上循环显示0-9这10个数字。
三、实验原理:
使用串行口的方式0:
8位移位寄存器方式,波特率为fosc/12。
数据从RxD端发出,TxD端发出同步脉冲。
使用MOVSBUF,A命令即可以启动数据传输。
共阴极的LED。
四、实验步骤
①将S/P区DATA插孔接BUS3区P3.0(RXD)插孔。
②将S/P区CLK插孔接BUS3区P3.1(TXD)插孔。
③将S/P区CLR插孔接MP区/SP插孔,上电时对164复位。
六、程序代码
ORG0000H
N2:
MOVR3,#00H
N1:
LCALLDISP
INCR3
LCALLDELAY
CJNER3,#100,N1
SJMPN2
DISP:
MOVA,R3
MOVR0,A
ANLA,#0FH
LP:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S1:
DJNZR7,H55S1
RET
DELAY:
MOVR6,#0FFh
DELY2:
MOVR7,#0FFh
DELY1:
DJNZR7,DELY1
DJNZR6,DELY2
RET
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
该程序的显示disp字程序入口参数在R3中不是必须的。
可以换到R0中,需要改下显示字程序的开始部分。
实验六计数器实验
一、实验目的:
要求从脉冲SP输入方波脉冲,每输入一次,用T0的计数方式计数加1,显示在串行LED上。
SP
二、实验步骤:
1、SP引脚和P3.4引脚相连
2、P3.0(RXD)连到数码管显示DATA插孔
3、P3.1用连到数码管显示区CLK插孔
每按脉冲键一次,产生T0脉冲计数TL0自动加1,并显示
三、分析:
1、采用T0:
计数器方式、方式1(16位计数)
2、从TH0=00、TL0=00开始计数,计一个数调用显示程序显示一次。
记到00~99,所以只需要用TL0就可以了,TH0可以不赋初值不使用。
3、只要启动计数之后,TL0的数值在有按键按下的情况下是自动加1的。
所以需要大家做的两部分:
定时器初始化、循环检测TL0的数值并调用显示程序
4、显示程序的调用方法:
将要显示的数值放入R3,然后LCALLDISP
程序总
CONT:
MOVTMOD,#05H
MOVTH0,#00H
MOVTL0,#00H
SETBTR0
CONT1:
MOVR3,TL0
LCALLDISP
LJMPCONT1
DISP:
MOVA,R3
MOVR0,A
ANLA,#0FH
LP:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S1:
DJNZR7,H55S1
LCALLDELAY
RET
DELAY:
MOVR6,#0FFh
DELY2:
MOVR7,#0FFh
DELY1:
DJNZR7,DELY1
DJNZR6,DELY2
RET
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
实验七电子音响
一、实验内容:
利用定时器产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用8031P1.7口输出音乐
原理图:
音响的SIN引脚只要有不同频率的脉冲产生,即可发出不同的声音。
问题也就归结在如何在P1.7引脚上产生不同频率的脉冲:
如图
大家观察这两个脉冲图,周期不一样,也就是说,P1.0引脚取反的时间不一样。
而这个时间可以用定时器进行控制。
即通过改变定时器的初值定时不同的时间。
(1)把P1.0用插针连至SIN插孔上。
喇叭插头线插到DVCC系统J5插座。
二、预备知识
(1)使用定时器T0工作在定时器方式1,16位定时,改变计数值TH0及TL0,定时不同的时间,在P1.0引脚上输出以产生不同的频率的脉冲。
表结构给出:
分析
TAB:
DB0FEH,25H,04H,0FEH,25H,02H
DB0FEH,25H,02H,0FDH,80H,04H
DB0FEH,84H,02H,0FEH,84H,02H
DB0FEH,84H,04H,0FEH,25H,04H
DB0FEH,25H,02H,0FEH,84H,02H
DB0FEH,0C0H,04H,0FEH,84H,02H
DB0FEH,98H,02H,0FEH,84H,02H
DB0FEH,57H,08H,00H,00H,04H
DB0FFH,0FFH
每个表里面,产生一种声音用三个字节,每三个字节为一组,其中高字节是定时器的高8位,第二字节是定时器的低八位,第三字节控制延时时间。
所以首先确定定时器:
MOVTMOD,#01H;定时器方式1
SETBEA;开中断
SETBET0
取出表中的第一个、第二个值赋给TH0、TL0
MOVDPTR,#TAB
CLRA
MOVCA,@A+DPTR
MOVR1,A;用R1暂存
INCDPTR
CLRA
MOVCA,@A+DPTR
MOVR0,A;用R0暂存
还要注意:
当表中的数值前两个数是0FF的时候,表示结束,要从头开始重新循环
ANLA,R1
CJNEA,#0FFH,START
启动定时器:
MOVTH0,R1
MOVTL0,R0
SETBTR0
定时时间太短,频率太高了,听不出来,我们加个延时控制每种频率的声音响多长时间。
延时程序给出:
DELAY:
MOVR2,A
DL1:
MOVR7,#81H
DL2:
MOVR6,#0FFH
DL3:
DJNZR6,DL3
DJNZR7,DL2
DJNZR2,DL1
RET
要使用这个延时程序,前提是给A赋初值,而这个A的初值就是从表中取出的第三个数。
INCDPTR
CLRA
MOVCA,@A+DPTR
LCALLDELAY
中断服务程序:
;完成两件事情,第一:
要给P1.0取反,第二,定时器初值重装
ZHONGDUAN:
MOVTH0,R1
MOVTL0,R0
CPLP1.0
RETI
程序流程:
总程序:
ORG0000H
SJMPMAIN
ORG000BH
LJMPZHONGDUAN
//**********1**************//
MAIN:
MOVTMOD,#01H
MOVIE,#82H
//**********2**************//
MOVDPTR,#TAB
LOOP:
CLRA
MOVCA,@A+DPTR
MOVR1,A
INCDPTR
CLRA
MOVCA,@A+DPTR
MOVR0,A
ANLA,R1
CJNEA,#0FFH,START
SJMPMAIN
//**********2**************//
START:
MOVTH0,R1
MOVTL0,R0
SETBTR0
//**********3**************//
NEXT1:
CLRA
INCDPTR
MOVCA,@A+DPTR
//**********3**************//
LOOP1:
ACALLDELAY
INCDPTR
AJMPLOOP
;R入口参数在A中,调用的方法:
MOVX先给a赋值
DELAY:
MOVR2,A
DL1:
MOVR7,#81H
DL2:
MOVR6,#0FFH
DL3:
DJNZR6,DL3
DJNZR7,DL2
DJNZR2,DL1
RET
ZHONGDUAN:
MOVTH0,R1
MOVTL0,R0
CPLP1.0
RETI
;表中,每三个数是一组,第一个数是定时时间的高8位,第二个数是定时时间低8位,第三个数是延时倍数
;如果碰到ANLR0,R1结果为0ff表示结束
TAB:
DB0FEH,25H,04H,0FEH,25H,02H
DB0FEH,25H,02H,0FDH,80H,04H
DB0FEH,84H,02H,0FEH,84H,02H
DB0FEH,84H,04H,0FEH,25H,04H
DB0FEH,25H,02H,0FEH,84H,02H
DB0FEH,0C0H,04H,0FEH,84H,02H
DB0FEH,98H,02H,0FEH,84H,02H
DB0FEH,57H,08H,00H,00H,04H
DB0FFH,0FFH
END
AD转换实验参考
一、原理图:
/RD
/WR
图1AD部分
图2显示部分
图3、74LS138芯片管脚图
图4MCS-51和74LS138连线图
二、实验步骤:
AD部分:
1、模拟量输入:
把A/D区0809的0通道IN0用插针接至W1(模拟量发生部分)的中心抽头V01插孔(0-5V)。
作为模拟量输入端。
2、时钟脉冲输入:
0809的CLK插孔与分频输出端T4相连。
3、参考电压:
将AD区的Vref接至+5V电压处。
(或者将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。
调节W2,使VREF端为+5V。
将A/D区的VREF连到W2的输出VREF端。
)
4、将A/D区D0-D7用排线与BUS2区XD0-XD7相连。
注意连接的时候,D7与XD7线色对应。
5、IC扩展部分的74LS02或非门的
一、引脚1与AD区SC/ALE连接。
二、引脚2、BUS3区的Y1三者连接。
目的Y1=0时,38译码器的输入A=0B=0C=1;这三个引脚分别连接在单片机的P2.6、P2.5、P2.4、所以可以确定启动IN0通道转换得地址应该是9000H。
如果启动IN1通道转换,该地址应该变为9001H。
三、引脚2、6连接。
四、引脚3与单片机的XWR引脚相连。
五、引脚4与AD的OE相连。
六、引脚5与单片机的XRD相连。
七、引脚8、9、AD的EOC相连。
目的使EOC电平反相。
供中断使用。
七、引脚10与单片机的INT0引脚(P3.2)相连。
图5中断产生部分
显示部分:
1、BUS3区P3.0连到数码管显示区DATA插孔。
2、将BUS3区P3.1连到数码管显示区CLK插孔。
三、程序:
第一部分:
中断初始化
包括开总中断、外部中断INT0
第二部分:
主程序启动转换选用IN0通道。
MOVA,#00H
MOVDPTR,#9000H
MOVX@DPTR,A;能够使WR、引脚为低电平,ADDA、ADDB、ADDC同时为低电平选通通道IN0。
第三部分:
中断服务程序读出转换后的数据并显示出来。
然后启动下一次AD转换。
MOVXA,@DPTR;能够使RD引脚为低电平Y1引脚为低电平选通OE端口
LCALLDISP;调用显示程序。
前提被显示数据在A中。
四、总程序:
在下列程序框架中添加上相应部分
ORG00H
SJMPSTART
ORG0003H
SJMPDEAL_INT0
DEAL_INT0:
;在此处写出中断服务程序
RETI
ORG0030H
START:
;在此处写出主程序
SJMP$
;下面的部分是显示子程序,不需要改,调用使用即可。
入口参数即要显示的数据必须放在A中,然后调用DISP子程序。
DISP:
MOVR0,A
ANLA,#0FH
LP:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S1:
DJNZR7,H55S1
LCALLDELAY
RET
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
DELAY:
MOVR6,#0FFh
DELY2:
MOVR7,#0FFh
DELY1:
DJNZR7,DELY1
DJNZR6,DELY2
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 试验 平台 熟悉