导航:首页 > 操作系统 > 51单片机proteus图源

51单片机proteus图源

发布时间:2023-04-21 18:40:22

Ⅰ C51单片机,C语言编程四位共阳极数码管静态显示1234 求程序和proteus仿真图

用51单片机组成四位共阳极数码管敏裂显示1234 ,proteus仿桥扮闭真图如下所示,P0口缺枝输出段码,P2口输出位码。

Ⅱ proteus7.8怎么建立51单片机

1、打开proteus7.8软件后,点击下做并图中箭头所指的图标纯差迹。

Ⅲ proteus51原理图在哪选

七个步骤。
1、打开proteus7,会生成一个默认工程,默认就是“ComponentMode”,可以直接选择器件,如果没有那么点击左侧箭头下的工具,软件提示“ComponentMode”然后选择“DEVICES”左侧的P按钮。
2、软件弹出“PickDevices”对话框,在Keywords下面的文本框中输入8051,点击回车进行搜索,在Categroy显示出搜索结果,选择“MicroprocessorICs”,接着在右侧的“Results”下可以看到器件列表,选择一个自己需要的模型,需要注意的是,部分模型是不能进行仿真的,这里选择比较通用的80C51,点击右下角的“OK”进行确认。
3、在工程的原理图区域点击,放置选择好的80C51器件。
4、双击刚刚放置的单片机模型,在弹出的“EditComponent”对话框中找到“ProgramFile”,这个就是程序文件,悉乱点击它左侧的文件夹图标,将目录切换到hex程序文件所在目录,这个hex文件可以是Keil编译的,也可以是其它编译器生成的,确认后点击“打开”。
5、程序加载成功后,可以在“ProgramFIle”文本框中看到刚刚加载的hex文件睁陵档名称,点击“OK”确认。
7、回到工程主界面,完成原理图其它部分,然后点击菜单栏的“Debug”“Exeute”或者直接按“F12”执行工程。
7、对于单片机的其它设置,只需要稍加摸索即可,比如如果想将晶振在原理图中显示出来,可以在“EditComponent”中找到“ClockFrequency”点击右侧的下拉框,选择“ShowAll”,确认后即可在原理图中显示出当汪毁前芯片的晶振频率了。

Ⅳ 怎么用proteus来仿真51

用proteus来仿真51的步骤:

工具/原料:Proteus,keil c51

1、首先我们打开Proteus软件,点击左边菜单栏的P按钮,然后再搜索框里输入80c51,选择第一个就是80c51单片机;

Ⅳ proteus仿真电路图,51单片机按键计数

按照你题目,用了2个2位显示,实际有4位合一起的。

k3:切换计数模式/预置模式。

计数模式:LED显示计时数字,从0开始计时,直到预置最大值。

预置模式:LED显示当前预置最大值,按k1,k2可对预置值+-操作,长按k1,k2大约2秒,会进入自动加减预置值。直到再次点击k1,k2,k3任意一键停止自动。

k4:在计数模式下使用,每按下一次显示的数字加一(会在正常计时同时额外+1)。

当计数达到预置最大值,会停止计数,LEN闪烁(实际就是交替显示间隔边长),蜂鸣器响。

按键时长、LED动态显示间隔、闪烁间隔、计数速度,均可直接修改常量,需要自己改,我备注写的很详细。

电路基本按照你上图,略有修改。

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

#define an P0

#define on 0

#define off 1

#define SSSPEED 35 //LED交替闪烁间隔时间

#define JSPEED 5000//计数模式,速度默认数值(5000*200us=1S) 值越小计数越快

#define PREESTIME 500//按钮长按时间判定,预设500(大约2秒),需要自改,值越大,长按时间越长

sbit fm=P3^3;

sbit wei1=P3^4;

sbit wei2=P3^5;

sbit wei3=P3^6;

sbit wei4=P3^7;

sbit k1=P1^4;

sbit k2=P1^5;

sbit k3=P1^6;

sbit k4=P1^7;

uint jsSpd=JSPEED;//计时速度,默认1s一次(5000*200us)

uint ssSpd=SSSPEED;//LED交替闪烁速度

//共阳极

int delay(uint xms);

void init();

void jspause();//计数器开启/停止

void setnumYS();//设置预设数值

void numJsChange();//计数模式数字改变

void showLED();

int pressWait(uint btn);

uint g=0;

uint s=0;

uint b=0;

uint q=0;

uint count=0;

uint ispause=1;

uint numYS=0;//预设数值

uint numJS=0;//实际计时的数字

uint isMaxJs=0;//标识:计时达最大。 达最大1,否0

uint isk3press=0;//标识:k3按钮是否被点击。 点击1,否0

uint ispress1=0;//标识:k1被长按

uint ispress2=0;//标识:k2被长按

uint isbtn4=0;//标识:k4被按下

uint btnName=0;//按钮长按计时

void main()

{

init();

while(1)

{

if(ispause==1 && ispress1==1 && numYS<9999) //预置模式下,k1已长按,自动增

{

numYS++;

setnumYS();

}

if(ispause==1 && ispress2==1 && numYS>0) //预置模式下,k2已长按,自动减

{

numYS--;

setnumYS();

}

if(isMaxJs==0 && numJS>=numYS && ispause==0) //计时模式下达最大值

{

fm=on;

ssSpd=1000;//增加LED交替间隔,实现数字闪烁

isMaxJs=1;

EA=0;

setnumYS();

numJS=0;

}

if(k1==0 ||k2==0|| k3==0) //k1k2k3任意一个按钮被按下,停止预置数自动增长

{

ispress1=0;

ispress2=0;

}

if(k1==0 && ispause==1)//预置模式下+

{

delay(10);

if(k1==0)

{

btnName=1;

if(pressWait(btnName))//判断连按

{

while(k1==0);

ispress1=1;

}

else if(numYS<9999)

{

numYS++;

setnumYS();

}

}

}

if(k2==0 && ispause==1)//预置模式下-

{

delay(10);

if(k2==0)

{

btnName=2;

if(pressWait(btnName))//判断连按

{

while(k2==0);

ispress2=1;

}

else if(numYS>0)

{

numYS--;

setnumYS();

}

}

}

if(k3==0)

{

delay(10);

if(k3==0)

{

while(k3==0);

fm=off;

jspause();

}

}

if(k4==0 && ispause==0)//计数模式下按下k4,k4的防抖写在中断中

{

delay(10);

if(k4==0)

{

while(k4==0);

isbtn4=1;

}

}

showLED();

}

}

void showLED()

{

uchar nums[10]={0xc0,0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x98};

if(g>=0)

{

an=nums[g];

wei4=on;

delay(ssSpd);

wei4=off;

}

if(s>0 || (s==0 && b>0))

{

an=nums[s];

wei3=on;

delay(ssSpd);

wei3=off;

}

if(b>0 || (b==0 && q>0))

{

an=nums[b];

wei2=on;

delay(ssSpd);

wei2=off;

}

if(q>0)

{

an=nums[q];

wei1=on;

delay(ssSpd);

wei1=off;

}

}

void setnumYS()//设置预设数值

{

q=numYS/1000;

b=(numYS%1000)/100;

s=(numYS%100)/10;

g=numYS%10;

}

void jspause()

{

if(ispause==0 || isMaxJs==1)//关闭计时模式 / 启动预置模式

{

EA=0;

isMaxJs=0;

ispause=1;

ssSpd=SSSPEED;

ispress1=0;

ispress2=0;

setnumYS();

}

else if(ispause==1) //启动计时模式 / 关闭预置模式

{

ispause=0;

q=b=s=g=0;

numJS=0;

ssSpd=SSSPEED;

EA=1;

}

}

void init()

{

TMOD=0x02; //T0 工作模式2 自动装填8位 200us

TH0=0x38;

TL0=0x38;

EA=0;

ET0=1;

TR0=1;

wei1=off;

wei2=off;

wei3=off;

wei4=off;

}

void numJsChange()//计数模式数字改变

{

if(g==9)

{

g=0;

if(s==9)

{

s=0;

if(b==9)

{

b=0;

if(q==9)

{

q=0;

}

else

q++;

}

else

b++;

}

else

s++;

}

else

g++;

}

void ct() interrupt 1 //一次中断200us

{

if(count<jsSpd)

count++;

else

{

count=0;

numJsChange();

numJS++;

}

if(isbtn4==1)

{

isbtn4=0;

numJsChange();

numJS++;

}

}

int pressWait(uint btn)

{

uint i,j;

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

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

{

if((k1==1 && btn==1)||(k2==1 && btn==2))

return 0;

}

return 1;

}

int delay(uint xms)

{

uint i,j;

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

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

{

if(k1==0 || k2==0 ||k3==0)

return 1;

}

return 0;

}

Ⅵ 51单片机在protues中输入什么可以找到在protues中找不到的该如何处理

在protues中输入“AT89C51”就可以找到51单片机,以下演示以proteus 9.5为例。

1、在电脑上打开proteus软件后,点击图中的“P”字按钮,如图所示。

Ⅶ 需要51单片机开发板的Proteus仿真原理图,.DSN格式的

给你文件 密码:e6eq

Ⅷ 基于51单片机的简易交通灯的proteus仿真,我要原理图,仿真图,protell图,程序要完整的,对应哦,

#include "reg51.h"

#define uchar unsigned char

sbit k1=P1^0;


void delay8s(void)

{

unsigned char i,j,k;

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

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

for(k=248;k>0;k--);

}


void delay05s(void)

{

unsigned char i,j,k;

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

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

for(k=248;k>0;k--);

}


void zt0()

{

P2=0xf3;

delay8s();

}


void zt1()

{

char i;

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

{

P2=0xeb;

delay05s();

P2=0xfb;

delay05s();

}

}


void zt2()

{

P2=0xde;

delay8s();

}


void zt3()

{

char j;

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

{

P2=0xdd;

delay05s();

P2=0xdf;

delay05s();

}

}


void k1yes()

{

while(1)

{

zt0();

zt1();

zt2();

zt3();

}

}


void k1no()

{

P2=0x00;

delay05s();

P2=0xff;

delay05s();

}


void main(void)

{

while(1)

{

uchar a;

a=P1;

a=a&0x01;

switch(a)

{

case 0:k1yes();break;

case 1:k1no();break;

}

}

}

阅读全文

与51单片机proteus图源相关的资料

热点内容
抖音算法到底是什么 浏览:126
哪个vlan技术对报文加密 浏览:570
单片机定时电路 浏览:672
山西平台服务器云主机 浏览:700
按摩肚脐解压视频 浏览:989
php55安装教程 浏览:137
云服务器怎么查找本机域名 浏览:22
qd123y压缩机参数 浏览:385
程序员妈妈怀孕 浏览:490
金普国际编程 浏览:537
java什么是引用类型 浏览:944
这是命令吗txt 浏览:314
支付宝android包名 浏览:154
eclipsemaven命令 浏览:68
24路服务器配什么cpu 浏览:466
压缩文件和解压文件哪个快 浏览:675
亚马逊云服务器视频通话 浏览:912
金融知识app哪个好 浏览:978
农行理财app收益在哪里 浏览:969
暗淡的命令名项目表示该命令 浏览:212