单片机实验报告六何俊儒.docx
- 文档编号:714282
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:10
- 大小:76.59KB
单片机实验报告六何俊儒.docx
《单片机实验报告六何俊儒.docx》由会员分享,可在线阅读,更多相关《单片机实验报告六何俊儒.docx(10页珍藏版)》请在冰点文库上搜索。
单片机实验报告六何俊儒
一、实验目的和要求:
1、掌握单片机与可编程并行接口芯片8255的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
3、熟悉可编程并行接口芯片8255初始化程序的设计方法。
二、设计要求:
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。
2、在8255PA口或PB口的某一口线上产生周期为500μS的连续方波,接示波器观察波形。
3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。
三、电路原理图:
四、实验程序流程框图和程序清单:
程序流程图:
汇编程序:
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPTTC0
MAIN:
MOVSP,#7FH
MOVTMOD,#02H
MOVTH0,#06H
MOVTL0,#06H
LCALLDELAY
SETBEA
SETBET0
SETBTR0
MOVDPTR,#0300H;指向控制寄存器
MOVA,#81H;PA方式0输出,PB方式0输出,PC高输出,PC低输入
MOVX@DPTR,A
MOVDPTR,#0200H;指向C口
LOOP:
MOVXA,@DPTR;读C口
SWAPA
MOVX@DPTR,A;写C口
LJMPLOOP
DELAY:
MOVR7,#0A7H
DL1:
MOVR6,#0ABH
DL0:
MOVR5,#10H
DJNZR5,$
DJNZR6,DL0
DJNZR7,DL1
NOP
RET
ORG0050H
TTC0:
PUSHDPH
PUSHDPL
PUSHACC
CPLC
MOVACC.0,C
MOVDPTR,#0000H;指向A口
MOVX@DPTR,A;写A口
POPACC
POPDPL
POPDPH
RETI
END
C语言程序:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineCOM8255XBYTE[0x0300]
#definePA8255XBYTE[0x0000]
voidmain()
{ucharj;
TMOD=0x02;
TH0=0x06;
TL0=0x06;
COM8255=0x80;
TR0=1;
while
(1)
{do
{
}
while(!
TF0);
TF0=0;
PA8255=j;
j=!
j;
}
}
end;
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineCOM8255XBYTE[0x0300]
#definePC8255XBYTE[0x0200]
voidmain()
{ucharj;
COM8255=0x81;
while
(1)
{
j=PC8255;
j=j<<4;
PC8255=j;
}
}
end;
5、实验结果:
PA.0口线上产生周期500us的连续方波,其中高低电平均为25ms,有1um误差。
当按下S1时,D1亮;当按下S2时,D2亮;当按下S3时,D3亮;当按下S4时,D4亮,互不影响。
6、实验总结:
通过本次实验我掌握了8255上电复位时间较单片机长,需要进行等待。
掌握了单片机与可编程并行接口芯片8255的接口设计方法,学会了可编程并行接口芯片8255初始化程序的设计方法,对C口位置位/复位命令有了初步了解。
掌握了keil软件模拟外部中断的调试方法,掌握了protuse与keil软件的联调,熟练了单片机系统的硬件和软件设计方法。
7、思考题:
1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。
电路图:
程序流程图:
汇编程序:
ORG0000H
START:
LJMPMAIN
MAIN:
MOVSP,#7FH
LCALLDELAY
MOVDPTR,#0300H;指向控制寄存器
MOVA,#80H;PA方式0输出,PB方式0输出,PC高输出,PC低输出
MOVX@DPTR,A
MOVDPTR,#0200H;灭灯
CLRA
MOVX@DPTR,A
LOOP:
MOVDPTR,#TABLE;指向表首地址
MOVA,R0
MOVCA,@A+DPTR
RLA
SETBACC.0
MOVDPTR,#0300H;指向控制口
MOVX@DPTR,A
INCR0
LCALLDELAY
CJNER0,#0FH,LOOP
MOVR0,#00H
LJMPLOOP
DELAY:
MOVR7,#0A7H
DL1:
MOVR6,#0ABH
DL0:
MOVR5,#10H
DJNZR5,$
DJNZR6,DL0
DJNZR7,DL1
NOP
RET
ORG0050H
TABLE:
DB00H,01H,02H,03H,04H,05H,06H,07H;十六进制表格
DB08H,09H,0AH,0BH,0CH,0DH,0EH,0FH
END
C语言程序:
#include
#include
#include
#defineucharunsignedchar
#defineCOM8255XBYTE[0x0003]
#definePC8255XBYTE[0x0002]
voiddelay1s();
voidmain()
{ucharn=8;
ucharh=0x01;
COM8255=0x80;
while
(1)
{
PC8255=h;
delay1s();
h=_crol_(h,1);
}
}
voiddelay1s(void)
{
unsignedchara,b,c;
for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
_nop_();
}
end;
实验结果:
用C口位置位/复位命令实现依次循环点亮,每个灯亮一秒。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)