单片机实验报告Word文件下载.docx

上传人:b****2 文档编号:14968332 上传时间:2022-10-26 格式:DOCX 页数:25 大小:441.88KB
下载 相关 举报
单片机实验报告Word文件下载.docx_第1页
第1页 / 共25页
单片机实验报告Word文件下载.docx_第2页
第2页 / 共25页
单片机实验报告Word文件下载.docx_第3页
第3页 / 共25页
单片机实验报告Word文件下载.docx_第4页
第4页 / 共25页
单片机实验报告Word文件下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

单片机实验报告Word文件下载.docx

《单片机实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实验报告Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。

单片机实验报告Word文件下载.docx

for(k=248;

k>

k--);

}

voidmain()

while

(1)

{

p0=0;

delay02s();

p0=1;

}

4、汇编语言源程序

START:

CLRP1.0;

和P1.0口接的二极管亮

LCALLDELAY;

延时0.2秒

SETBP1.0;

和P1.0口接的二极管灭

LJMPSTART;

循环

DELAY:

MOVR5,#20;

延时子程序

D1:

MOVR6,#20

D2:

MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

实验二广告灯的左移右移

一、实验任务:

做单一灯的左移右移,硬件电路如图所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

1、电路原理图

3、汇编语言源程序

ORG0

MOVR2,#8

MOVA,#0FEH

SETBC

LOOP:

MOVP1,A

LCALLDELAY

RLCA

DJNZR2,LOOP

LOOP1:

RRCA

DJNZR2,LOOP1

LJMPSTART

MOVR5,#20;

MOVR6,#20

MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

4、c语言源程序

#include<

AT89X51.H>

unsignedchari;

unsignedchartemp;

unsignedchara,b;

voiddelay(void)

{unsignedcharm,n,s;

for(m=20;

m>

m--)

for(n=20;

n>

n--)

for(s=248;

s>

s--);

voidmain(void)

while

(1)

temp=0xfe;

P1=temp;

delay();

for(i=1;

i<

8;

i++)

a=temp<

<

i;

b=temp>

>

(8-i);

P1=a|b;

i++)

a=temp>

b=temp<

}

实验三按键识别方法

每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。

unsignedcharcount;

voiddelay10ms(void)

unsignedchari,j;

for(i=20;

for(j=248;

j--);

if(P3_7==0)

delay10ms();

count++;

if(count==16)

count=0;

P1=~count;

while(P3_7==0);

MOVR1,#00H;

初始化R1为0,表示从0开始计数

MOVA,R1;

CPLA;

取反指令

MOVP1,A;

送出P1端口由发光二极管显示

REL:

JNBP3.7,REL;

判断SP1是否按下

LCALLDELAY10MS;

若按下,则延时10ms左右

JNBP3.7,REL;

再判断SP1是否真得按下

INCR1;

若真得按下,则进行按键处理,使

计数内容加1,并送出P1端口由

发光二极管显示

JNBP3.7,$;

等待SP1释放

SJMPREL;

继续对K1按键扫描

DELAY10MS:

MOVR6,#20;

延时10ms子程序

L1:

DJNZR6,L1

 

实验四点阵LED“0-9”数字显示技术

利用8X8点阵显示数字0到9的数字。

1、设计方法

(1)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;

(2)把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;

如下图所示,假设显示数字“0”

1234

00003E4141413E00

因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;

只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。

送显示代码过程如下所示

送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。

数字“1”代码建立如下图所示1234

其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H

数字“2”代码建立如下图所示

1234

00H,00H,27H,45H,45H,45H,39H,00H

数字“3”代码建立如下图所示

00H,00H,22H,49H,49H,49H,36H,00H

数字“4”代码建立如下图所示

00H,00H,0CH,14H,24H,7FH,04H,00H

2、电路原理图

AT89X52.H>

unsignedcharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedcharcodedigittab[10][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0

{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1

{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2

{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3

{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4

{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5

{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6

{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7

{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8

{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}//9};

unsignedinttimecount;

unsignedcharcnta;

unsignedcharcntb;

TMOD=0x01;

TH0=(65536-3000)/256;

TL0=(65536-3000)%256;

TR0=1;

ET0=1;

EA=1;

{;

voidt0(void)interrupt1using0

P3=tab[cnta];

P1=digittab[cntb][cnta];

cnta++;

if(cnta==8)

cnta=0;

timecount++;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1