教学单片机数码管显示实验.docx
《教学单片机数码管显示实验.docx》由会员分享,可在线阅读,更多相关《教学单片机数码管显示实验.docx(9页珍藏版)》请在冰豆网上搜索。
教学单片机数码管显示实验
ORG0000H
AJMPSTART
ORG0030H
START:
MOVP1,#00H
MOVDPTR,#TAB
LOOP:
MOVA,P3
ANLA,#03H
CJNEA,#00H,ONE
MOV70H,#00H
SJMPXS
ONE:
CJNEA,#01H,TWO
MOV70H,#01H
SJMPXS
TWO:
CJNEA,#02H,THR
MOV70H,#02H
SJMPXS
THR:
CJNEA,#03H,LOOP
MOV70H,#03H
XS:
MOVA,70H
MOVCA,A+DPTR
MOVP1,A
SJMPLOOP
TAB:
DB0C0H(3FH);字形代码表
DB0F9H(06H)
DB0A4H(5BH)
DB0B0H(4FH)
END
2、已知8个发光二极管从P1.7开始,轮流发光0.1S,电路如图所示,写出使用T0工作方式1定时的程序,设晶体振荡器频率为6MHz。
答:
(1)计算初值
(2)初始化专用寄存器
TMOD=01H
(3)编写程序
ORG0000H
AJMPSTART
ORG001BH
AJMPINTT1
START:
MOVTMOD,#01H
MOVTH1,#06H
MOVTL1,#06H
MOVP1,#0FFH
MOVA,#7FH
SETBEA
SETBET1
SETBTR1
HERE:
SJMPHERE
INTT1:
CLREA
MOVP1,A
RLA
Acalldelay;延长时间使灯能明显变
SETBEA
RETI
Delay:
MOVR7,#0FFH
DEL1:
DJNZR7,DEL1
RET
END
1、将外部RAM字节地址10H~17H单元的容逐一取出加1,然后再放回原处,如果取出的容为负数,则不要加1,仍将负数放回原处,并将负数的个数放在R7工作寄存器中。
答:
ORG0000H
MOVR0,#10H
MOVR6,#08H
MOVR7,#00H
LOOP:
MOVXA,R0
JNBACC.7,ZINC
INCR7
MOVXR0,A
SJMPLOOP1
ZINC:
INCA
MOVXR0,A
LOOP1:
DJNZR6,LOOP
END
8255输入、输出实验
一、实验要求
利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。
二、实验目的
1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
三、实验电路及连线
8255的CS/接地址译码/CS0(接地),则命令
字地址为8003H(0003),PA口地址为8000H
(0000),PB口地址为8001H(0001),PC口地
址为8002H(0002)。
PA0-PA7(PA口)接LED0-LED7(LED)
再接上数据线和读/写信号,地址线只接
A0,A1即可,还要接上RESET信号,以便8255A可靠复位。
四、实验说明
可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。
本实验采用的是方式0:
PA,PC口输出,PB口输入。
硬件实验十二D/A转换实验
一、实验要求
利用DAC0832,编制程序产生锯齿波、三角波、正弦波。
三种波轮流显示,用示波器观看。
二、实验目的
1、了解D/A转换的基本原理。
2、了解D/A转换芯片0832的性能及编程方法。
3、了解单片机系统中扩展D/A转换的基本方法。
三、实验电路及连线
用示波器探头接触Ua或Ub,观察显示波形。
四、实验说明
1、D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。
要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。
2、产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。
要产生正弦波,较简单的方法是造一正弦数字量表。
即查函数表得到的值转换成十六进制数填表。
D/A转换取值围为一个周期,采样点越多,精度越高些。
本例采用的采样点为256点/周期。
3、8位D/A转换器的输入数据与输出电压的关系为
Ua(0∽-5V)=Uref/256×N
Ub(-5V∽+5V)=2·Uref/256×N-5V(这里Uref为+5V)
五、实验框图
硬件实验十三A/D转换实验
一、实验要求
利用实验板上的ADC0809做A/D转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,用发光二极管显示。
二、实验目的
1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片ADC0809转换性能及编程。
3、通过实验了解单片机如何进行数据采集。
三、实验电路及连线
四、实验说明
A/D转换器大致有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次一般需100us。
本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031的INT0相接,有兴趣的同学可以试试编程用中断方式读回A/D结果.
五、实验框图
主程序框图
CS0832equ08000h
movdptr,#CS0832
mova,#0
movxdptr,a
mova,#80h
movxdptr,a
mova,#0ffh
movxdptr,a
ljmp$
end
;硬件实验十三A/D转换实验
CS0809equ08000h
movdptr,#CS0809
mova,#0
movxdptr,a;起动A/D
mova,#40h
djnzACC,$;延时>100us
movxa,dptr;读入结果
ljmp$
end
;硬件实验十五8255输入、输出实验
modeequ082h;方式0,PA,PC输出,PB输入
PortAequ8000h;PortA
PortBequ8001h;PortB
PortCequ8002h;PortC
CAddrequ8003h;控制字地址
org0h
00007482mova,#mode
0002908003movdptr,#CAddr
0005F0movxdptr,a;输出控制字
;实验1:
PortA输出
00067480mova,#80H
0008908000movdptr,#PortA
000B75F008movb,#8H
000EF0OutA:
movxdptr,a;输出PortA
000F03rra;移位
00107D01movr5,#1
0012120028calldelay;延时
0015D5F0F6djnzb,OutA