微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用PROTEUS对单片机进行仿真的方法与实例

用PROTEUS对单片机进行仿真的方法与实例

时间:11-25 来源:互联网 点击:
名称元件种类(Category)子种类(Sub-category)
单片机ATmega8Microprocessor ICsAVR Family
电阻器RESResistorsGeneric
三极管2N3054TransistorsBipolar
按钮开关BUTTONSwitches & RelaysSwitches
电池BATTERYMiscellaneous
直流电机MOTORElectromechanical

绘制好仿真电路图,仿真结果见图13。



当按下S1时,PB1输出PWM信号占空比减小,电机速度减小;当按下S2时,PB1输出PWM信号占空比增加,电机速度增加。从示波器上可以看到PWM信号占空比在调节时的变化。
4. 智力竞赛抢答器
用单片机AT89C51做一个抢答器,供8组抢答,当主持人按一下开始键后即可开始抢答,当某一组按下抢答键后,其它各组的按键被锁定,主机上的数码管显示相应的组号,同时该组桌上的发光二极管也点亮,并发出1秒钟的报警声,数码管和发光二极管的显示时间为5秒钟。
在Keil uVision编译器中输入下列程序:
#include
unsigned char n,i;
unsigned long int m,t;
sbit S1=P0^0;
sbit S2=P0^1;
sbit S3=P0^2;
sbit S4=P0^3;
sbit S5=P0^4;
sbit S6=P0^5;
sbit S7=P0^6;
sbit S8=P0^7;
sbit VD1=P1^0;
sbit VD2=P1^1;
sbit VD3=P1^2;
sbit VD4=P1^3;
sbit VD5=P1^4;
sbit VD6=P1^5;
sbit VD7=P1^6;
sbit VD8=P1^7;
sbit SOUND=P3^0;
sbit START=P3^1;
void delay(t) //延时子程序
{
for(;t>0;t--)
{ for(i=0;i<250;i++); }
}
void main() //主程序
{
while(1) //无限循环
{
if(START==0)//若开始键按下
{
n=0;
while(n==0)//若n=0,循环执行
{
if(S1==0)//若S1按下
{VD1=0;P2=0x79;n=1;} //发光二极管VD1点亮,数码管显示1
else if(S2==0) //若S2按下
{VD2=0;P2=0x24;n=1;} //发光二极管VD2点亮,数码管显示2
else if(S3==0) //若S3按下
{VD3=0;P2=0x30;n=1;} //发光二极管VD3点亮,数码管显示3
else if(S4==0) //若S4按下
{VD4=0;P2=0x19;n=1;} //发光二极管VD4点亮,数码管显示4
else if(S5==0) //若S5按下
{VD5=0;P2=0x12;n=1;} //发光二极管VD5点亮,数码管显示5
else if(S6==0) //若S6按下
{VD6=0;P2=0x02;n=1;} //发光二极管VD6点亮,数码管显示6
else if(S7==0) //若S7按下
{VD7=0;P2=0x78;n=1;} //发光二极管VD7点亮,数码管显示7
else if(S8==0) //若S8按下
{VD8=0;P2=0x00;n=1;} //发光二极管VD8点亮,数码管显示8
}
for(m=0;m<1000;m++) //发出1秒报警声
{
SOUND=!SOUND;
delay(1);
}
delay(5000); //发光二极管、数码管继续点亮5秒
P1=0xff;
P2=0xff;
}
}
}
将上述源程序编译生成目标文件vie_answer.hex。
电路中所使用的元件见表5。
表5

名称元件种类(Category)子种类(Sub-category)
单片机AT89C51Microprocessor ICs8051 Family
电阻器RESResistorsGeneric
三极管2N2905TransistorsBipolar
共阳数码管7SEG-COM-ANODEOptoelectronics7-Segment Displays
扬声器SPEAKERSpeakers & Sounders

绘制好仿真电路图,设置好有关元件的属性,仿真后先按一下开始按钮S9,再按一下S1~S8中的任一个按钮比如S6,仿真结果见图14。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top