Proteus实验报告.docx

上传人:b****2 文档编号:17830572 上传时间:2023-08-04 格式:DOCX 页数:31 大小:95.16KB
下载 相关 举报
Proteus实验报告.docx_第1页
第1页 / 共31页
Proteus实验报告.docx_第2页
第2页 / 共31页
Proteus实验报告.docx_第3页
第3页 / 共31页
Proteus实验报告.docx_第4页
第4页 / 共31页
Proteus实验报告.docx_第5页
第5页 / 共31页
Proteus实验报告.docx_第6页
第6页 / 共31页
Proteus实验报告.docx_第7页
第7页 / 共31页
Proteus实验报告.docx_第8页
第8页 / 共31页
Proteus实验报告.docx_第9页
第9页 / 共31页
Proteus实验报告.docx_第10页
第10页 / 共31页
Proteus实验报告.docx_第11页
第11页 / 共31页
Proteus实验报告.docx_第12页
第12页 / 共31页
Proteus实验报告.docx_第13页
第13页 / 共31页
Proteus实验报告.docx_第14页
第14页 / 共31页
Proteus实验报告.docx_第15页
第15页 / 共31页
Proteus实验报告.docx_第16页
第16页 / 共31页
Proteus实验报告.docx_第17页
第17页 / 共31页
Proteus实验报告.docx_第18页
第18页 / 共31页
Proteus实验报告.docx_第19页
第19页 / 共31页
Proteus实验报告.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Proteus实验报告.docx

《Proteus实验报告.docx》由会员分享,可在线阅读,更多相关《Proteus实验报告.docx(31页珍藏版)》请在冰点文库上搜索。

Proteus实验报告.docx

Proteus实验报告

Proteus实验报告

 

姓名:

xxxxx

专业:

xxxxxx

系别:

电气信息工程学院

学号:

xxxxxxxx

班级:

xxxxxxxxxxxxxxxx

老师:

xxxxxxx

2012年11月

 

实验一

花样灯一

一、实验目的

使用P2端口控制LED0~LED7进行花样显示。

显示顺序规律为:

8个LED依次左移点亮;

8个LED依次右移点亮;

LED0、LED2、LED4、LED6亮1s熄灭,LED1、LED3、LED5、LED7亮1s熄灭,再LED0、LED2、LED4、LED6亮1s熄灭……循环3次;

LED0~LED3亮1s熄灭,LED4~LED7亮1s熄灭,循环2次;

LED2、LED3、LED6、LED7亮1s熄灭,LED0、LED1、LED4、LED5亮1s熄灭,循环3次,然后再从

循环。

二、实验仪器

单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL11.0592MHz、电解电容CAP-ELEC、电阻RES、发光二级管LED-GREEN、发光二级管LED-YELLOW、发光二级管LED-RED、发光二级管LED-BULE、按钮BUTTON。

三、实验流程图

开始

将表地址存入DPTR

累加器A清零

查表送A

表代码是否为结束码

(A)送P2端口

延时1s

指向表下一地址

结束

 

 

四、实验原理

电路图:

程序:

#include"reg51.h"

#defineuintunsignedint

#defineucharunsignedchar

consttab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,

0xaa,0x55,0xaa,0x55,0xaa,0x55,0xff,

0xf0,0x0f,0xf0,0x0f,0xff,

0x33,0xcc,0x33,0xcc,0x33,0xcc,0xff

}

voiddelay(void)

{uinti,j,k;

for(i=0;i>0;i--)

{for(j=200;j>0;j--)

{for(k=230;k>0;k--);}}

}

voidmain(void)

{uchari;

while

(1)

{for(i=0;i<35;i++)

{P2=tab[i];

delay();}}}

五、实验结果

 

实验二

定时计数器一

一、实验目的

使用定时计数器作为延时,要求在P0.0和P0.1间两灯按1s间隔互相闪烁。

二、实验仪器

单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL11.0592MHz、电解电容CAP-ELEC、电阻RES、发光二级管LED-GREEN、排阻RESPACLK-8、发光二级管LED-RED、发光二级管LED-YELLOW、按钮BUTTON。

三、实验流程图

四、实验原理

电路图:

程序:

#include"reg51.h"

#defineuintunsignedint

#defineucharunsignedchar

sbitP0_0=P0^0;

sbitP0_1=P0^1;

uintt=0;

voidtime0_server_(void)interrupt1

{

TH0=0x4C;

TL0=0x00;

t++;}

voidInit_t0(void)

{TMOD=0x01;

TH0=0x4C;

TL0=0x00;

EA=1;

ET0=1;

TR0=1;}

 

voidmain(void)

{P0_0=1;

P0_1=0;

Init_t0();

while

(1)

{if(t==20){

t=0;

P0_0=~P0_0;

P0_1=~P0_1;

}

}

}

五、实验结果

 

实验三

中断系统应用一

一、实验目的

主程序将P0端口进行花样显示,显示顺序规律为:

8个LED依次左移点亮;

8个LED依次右移点亮;

LED0、LED2、LED4、LED6亮1s熄灭,LED1、LED3、LED5、LED7亮1s熄灭,再LED0、LED2、LED4、LED6亮1s熄灭……循环3次。

中断时(INT0与按钮K1连接)使8个LED闪烁5次。

二、实验器件

单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL11.0592MHz、电解电容CAP-ELEC、电阻RES、发光二级管LED-GREEN、排阻RESPACLK-8、发光二级管LED-RED、按钮BUTTON、发光二级管LED-BULE、发光二级管LED-YELLOW。

三、实验流程图

四、实验原理

原理图:

程序:

#include"reg51.h"

#defineuintunsignedint

#defineucharunsignedchar

consttab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,

0xaa,0x55,0xaa,0x55,0xaa,0x55,0xff,};

consttab2[]={0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,};

voiddelay(void)

{

uinti,j,k;

for(i=10;i>0;i--)

{for(j=200;j>0;j--)

{for(k=230;k>0;k--);}}

}

voidint0()interrupt0

{

uchari;

for(i=0;i<10;i++)

{

P0=tab2[i];

delay();

}

}

voidINT0_init(void)

{

EX0=1;

 

IT0=1;

EA=1;

}

voidmain(void)

{

ucharx;

INT0_init();

while

(1)

{

for(x=0;x<23;x++)

{

P0=tab[x];

delay();

}

}

}

五、实验结果

 

实验四

两个单片机之间的串行通信

一、实验目的

再摸控制系统中有U1、U2这两个单片机,U1单片机首先将P1端口指拨开关数据载入SUBF,然后由TXD将数据传送给U2单片机,U2单片机将接收数据存入SBUF,再由SUBF载入累加器,并输出至P1端口,点亮相应端口的LED。

二、实验器件

发光二级管LED-RED、按钮BUTTON、单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL11.0592MHz、电解电容CAP-ELEC、电阻RES、发光二级管LED-GREEN、拨码开关DIPSW-8、开关SWITCH。

三、实验流程图

四、实验原理

原理图:

程序:

U1:

#include"reg51.h"

#defineucharunsignedchar

#defineuintunsignedint

voidsend(ucharstate)

{

SBUF=state;

while(TI=0);

TI=0;

}

voidSCON_init(void)

{

SCON=0x50;

TMOD=0x20;

PCON=0x00;

TH1=0xFD;

TL1=0xFD;

TI=0;

TR1=1;

ES=1;

}

voidmain(void)

{

P1=0xFF;

SCON_init();

while

(1)

{

send(P1);

}

}

U2:

#include"reg51.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharstate;

voidreceive()

{

while(RI=0);

state=SBUF;

RI=0;

}

VoidSCON_init(void)

{

SCON=0x50;

TMOD=0x20;

PCON=0x00;

TH1=0xFD;

TL1=0xFD;

RI=0;

TR1=1;

}

voidmain(void)

{

SCON_init();

while

(1)

{

receive();

P1=state;

}

}

 

五、实验结果

U1

U2:

实验五

矩阵式键盘识别一

一、实验目的

设计一个4x4的矩阵键盘,以P3.0~P3.3作为行线,以P3.4~P3.7作为列线,在数码管上显示每个按键的0~F序号。

二、实验器件

单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL11.0592MHz、电解电容CAP-ELEC、电阻RES、排阻RESPACLK-7、按钮BUTTON、共阳数码管7SEG-COM-AM-GRN。

三、实验流程图

四、实验原理

程序:

#include"reg51.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharbuff,times,j;

ucharcodedispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

ucharidatavalue[8];

voiddelay1ms(void)

{

uchari;

for(i=200;i>0;i--);

}

voiddelay5ms(void)

{

unsignedchari,j;

for(i=5;i>0;i--)

for(j=230;j>0;j--);

}

voidkey_scan(void)

{

ucharhang,lie,key;

P3=0xf0;

if((P3&0xf0)!

=0xf0)

{

delay1ms();

if((P3&0xf0)!

=0xf0)

{hang=0xfe;

times++;

if(times=9)

times=1;

while((hang&0x10)!

=0)

{P3=hang;

if((P3&0xf0)!

=0xf0)

{lie=(P3&0xf0)|0x0f;

buff=((~hang)+(~lie));

switch(buff)

{

case0x11:

key=0;break;

case0x21:

key=1;break;

case0x41:

key=2;break;

case0x81:

key=3;break;

case0x12:

key=4;break;

case0x22:

key=5;break;

case0x42:

key=6;break;

case0x82:

key=7;break;

case0x14:

key=8;break;

case0x24:

key=9;break;

case0x44:

key=10;break;

case0x84:

key=11;break;

case0x18:

key=12;break;

case0x28:

key=13;break;

case0x48:

key=14;break;

case0x88:

key=15;break;

}

value[times-1]=key;

}

elsehang=(hang<<1)|0x01;

}

}

}

}

voidmain(void)

{

while

(1)

{

key_scan();

P0=dispcode[value[times-1]];

}

}

原理图:

五、实验结果

 

实验六

字符式LED静态显示

一、实验目的

使用HD44780字符编码,在SMC1602A液晶上静态显示字符串,第一行显示字符为stc89c51;第二行显示字符为proteus7.8。

二、实验器件

单片机AT89C51、瓷片电容CAP22Pf、晶振CRYSTAL12MHz、电解电容CAP-ELEC10uf、电阻RES、排阻RESPACLK-8、按钮BUTTON、LM016字符式LCD、可调电阻POT-HG。

三、实验原理

原理图:

 

程序:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitrs=P2^0;

sbitrw=P2^1;

sbitep=P2^2;

ucharcodedis1[]={"stc89c51"};

ucharcodedis2[]={"Proteus7.8"};

voiddelay(ucharms)

{

uchari;

while(ms--)

{

for(i=0;i<120;i++);

}

}

ucharBusy_Check(void)

{

ucharLCD_Status;

rs=0;

rw=1;

ep=1;

_nop_();

_nop_();

_nop_();

_nop_();

LCD_Status=P0&0x80;

ep=0;

returnLCD_Status;

}

voidlcd_wcmd(ucharcmd)

{

while(Busy_Check());

rs=0;

rw=0;

ep=0;

_nop_();

_nop_();

P0=cmd;

_nop_();

_nop_();

_nop_();

_nop_();

ep=1;

_nop_();

_nop_();

_nop_();

_nop_();

ep=0;}

voidlcd_pos(ucharpos)

{

lcd_wcmd(pos|0x80);

}voidlcd_wdat(uchardat){

while(Busy_Check());

rs=1;

rw=0;

ep=0;

P0=dat;

_nop_();

_nop_();

_nop_();

_nop_();

ep=1;

_nop_();

_nop_();

_nop_();

_nop_();

ep=0;

}

voidLCD_disp(void){

uchari;

lcd_pos

(1);

i=0;

while(dis1[i]!

='\0')

{lcd_wdat(dis1[i]);

i++;

}

lcd_pos(0x41);

i=0;

while(dis2[i]!

='\0')

{

lcd_wdat(dis2[i]);

i++;

}

}

voidlcd_init(void)

{

lcd_wcmd(0x38);

delay

(1);

lcd_wcmd(0x0e);

delay

(1);

lcd_wcmd(0x06);

delay

(1);

lcd_wcmd(0x01);

delay

(1);

}

voidmain(void)

{

lcd_init();

delay(10);

LCD_disp();

while

(1)

{;}

}

四、实验结果

如有侵权请联系告知删除,感谢你们的配合!

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2