蒯学文.docx

上传人:b****4 文档编号:26848190 上传时间:2023-06-23 格式:DOCX 页数:16 大小:202.20KB
下载 相关 举报
蒯学文.docx_第1页
第1页 / 共16页
蒯学文.docx_第2页
第2页 / 共16页
蒯学文.docx_第3页
第3页 / 共16页
蒯学文.docx_第4页
第4页 / 共16页
蒯学文.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

蒯学文.docx

《蒯学文.docx》由会员分享,可在线阅读,更多相关《蒯学文.docx(16页珍藏版)》请在冰豆网上搜索。

蒯学文.docx

蒯学文

皖西学院

实验报告

实验课程:

Protues仿真实验

学院:

机电学院

专业:

电子信息科学与技术

班级:

1001班

姓名(学号):

蒯学文(2010010501)

指导教师:

翁老师

二0一二年十一月

实验一模拟电路的仿真

1:

按下图连接电路。

2:

加示波器进行测量,记录数据。

实验二用汇编语言仿真跑马灯程序

1:

如图所示连接好电路图

2:

通过Keil编译汇编程序

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVA,#0FEH;初值11111110送入A

MOV30H,#7;30单元作计数器,初始为左移次数

LEFT:

MOVP1,A;A送入P1口(初始点亮P1.0)

LCALLDELAY;延时

RLA;循环左移

DJNZ30H,LEFT;未够7次继续左移

MOV30H,#7;重置计数器,为右移次数

RIGHT:

MOVP1,A;A送入P1口

LCALLDELAY;延时

RRA;循环右移

DJNZ30H,RIGHT;未够7次继续右移

AJMPMAIN

DELAY:

MOVR5,#195;延时

C1:

MOVR6,#255

DJNZR6,$

DJNZR5,C1

RET

END

3:

实验的现象:

发光二极管的灯亮来回往复运动。

 

 

实验三模数转换实验

1:

如图连接好实验电路图

2:

用Keil对写好的程序进行编译

ADC0808数字电压表,测量范围0~5V

#include

#defineucharunsignedchar

#defineuintunsignedint

uchara[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

0x6f};//共阴极段码

ucharb[4];//存放4位显示的数

sbitSTART=P2^4;

sbitOE=P2^6;

sbitEOC=P2^5;

voidmdelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidshow(void)

{

uinti;

ucharc=0x01;

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

{

P1=(c<

P3=b[i];

if(i==2)//显示小数点

P3=P3|0x80;

mdelay

(1);

}

}

voidmain(void)

{

uintshuju=0;

while

(1)

{

START=1;

START=0;//下降沿启动转换信号

while(EOC==0)//判断是否转换结束,EOC=0正在进行转换

{

OE=1;

}

shuju=P0;

shuju=shuju*1.0/255*500;//放大100倍

OE=0;

b[0]=a[shuju%10];//个位

b[1]=a[shuju%100/10];//十位

b[2]=a[shuju/100];//百位

b[3]=a[shuju/1000];//最高位始终为0

show();

}

}

TLC2543数字电压表,测量范围0~5V,1路模拟输入,采用4位数码管显示,仿真通过。

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

uchara[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

0x6f};//共阴极段码

ucharb[4];//存放4位要显示的数

sbitCLOCK=P2^7;/*2543时钟*/

sbitD_IN=P2^6;/*2543输入*/

sbitD_OUT=P2^4;/*2543输出*/

sbit_CS=P2^5;/*2543片选*/

voidmdelay(uintz)//1ms延时子程序

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voiddelay(ucharn)

{

uchari;

for(i=0;i

{

_nop_();

}

}

/**************************************

名称:

read2543

功能:

TLC2543驱动模块

输入参数:

port通道号

输出参数:

ad转换值

*************************************/

uintread2543(ucharport)

{

uintad=0,i;

CLOCK=0;

_CS=0;

port<<=4;//通道号左移4位

for(i=0;i<12;i++)//没有设置控制字,默认输出数据为12位,高位先送出,输出数据的格式为2进制

{

if(D_OUT)ad|=0x01;//转换后的值高位先送出

D_IN=(bit)(port&0x80);//通道值高位先送出

CLOCK=1;

delay(3);

CLOCK=0;

delay(3);

port<<=1;

ad<<=1;

}

_CS=1;

ad>>=1;//循环中多左移了一位

returnad;

}

voidshow(void)//数码管显示子程序

{

uinti;

ucharc=0x01;

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

{

P1=(c<

P3=b[i];

if(i==2)//显示小数点

P3=P3|0x80;

mdelay

(1);

}

}

voidmain(void)

{

uintad=0;

while

(1)

{

ad=read2543(0);

ad=ad*1.0/4096*500;//

b[0]=a[ad%10];//个位

b[1]=a[ad%100/10];//十位

b[2]=a[ad/100];//百位

b[3]=a[ad/1000];//最高位始终为0

show();

}

}

实验四电动机的转动实验

 

1:

如图所示,连接好电路图

2:

通过Keil仿真实验

实验程序如下:

#include

#include

sbitK1=P1^4;//加速键

sbitK2=P1^5;//减速键

sbitK3=P1^6;//正反控制键

sbitCLK=P0^0;//PWM输出控制信号

sbitZF=P0^1;//正反控制信号

unsignedcharPWMH=0x00;//调宽值

unsignedcharPWML=0x0f;

voiddelay(unsignedcharm);

voidmain()

{

CLK=0;

TMOD=0x11;//两个定时器都工作在方式1

TH0=0x00;//65.535ms延时常数

TL0=0x00;

TH1=PWMH;

TL1=PWML;

EA=1;//CPU允许中断

ET0=1;//允许定时器T0中断

ET1=1;//允许定时器T1中断

TR0=1;//定时器T0计数

while

(1)

{if(K3==0)//高电平逆时钟转,低电平顺时钟转

{ZF=0;}

else

{ZF=1;}

if(K1==0)//按下加速键

{delay

(1);

PWML++;//调宽值低四位加1

if(PWML==0x00)

{PWMH++;}//调宽值高四位加1

if(PWMH==0xFF)//最大值时

{PWMH=0xFE;}

}

if(K2==0)//按下减速键

{delay

(1);

PWML--;//调宽值低四位减1

if(PWML==0x00)

{PWMH--;}//调宽值高四位减1

if(PWMH==0x00)

{PWMH=0x01;}//最小值时

}

}

}

voidtimer0()interrupt1using0//定时器0中断服务程序

{

TR1=0;

TH0=0x00;

TL0=0x00;

TH1=PWMH;

TL1=PWML;

TR1=1;

CLK=0;//启动输出

}

voidtimer1()interrupt3using0//定时器1中断服务程序

{

TR1=0;

CLK=1;//结束输出

}

voiddelay(unsignedcharm)//MS延时

{

unsignedchari;

while(m--)

{

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

}

}

3:

实验现象:

第一个键为启动键,第二个键是加速键,第三个键是转换反向键。

 

 

实验五PCB版实验

 

1:

电路图如下所示

 

2:

进入ARES后,选择黄色的“BoardEdge”进行选择板子的面积。

3:

按如图所示的图在Protues中检测器件是否都有封装方式,若是,则点击“ARES”,就可生成如下图所示的电路图,然后进行手动布线。

4:

对手动的电路图进行自动布线,对自动布线的电路图加上电源层,分别为地层和正电源层,则有如下图所示

 

5:

3D预览图如下:

 

实验小结

Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。

此次实验我学习了Keil的安装及调试,Protues的安装及调试,并且可以将两者进行远程连接调试;学习了单片机的原理图的设计和程序的调试,并且通过ADC0808进行模数转换将数值显示在七段数码管上。

学习了PCB板的制作,通过确认Protues中元器件的封装方式,然后将电路图加载到ARES中,通过圈定电路图的面积和手动布线后形成规则的电路图,最后进行自动布线和铺设电源层,完成了PCB板的制作。

本次仿真软件Protues的学习,让我了解到这不仅仅是一个软件的应用,更多的是使我们认识和学习到很多在课堂上无法得到的东西。

最后在这里感谢认真负责的老师。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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