标题:
单片机流水灯Proteus仿真(带逻辑分析仪)
[打印本页]
作者:
51黑ff
时间:
2016-9-9 23:16
标题:
单片机流水灯Proteus仿真(带逻辑分析仪)
给51黑电子论坛的朋友们分享一个带逻辑分析仪的单片机流水灯的proteus仿真.
0.png
(435.77 KB, 下载次数: 111)
下载附件
2016-9-9 23:14 上传
0.png
(85.08 KB, 下载次数: 93)
下载附件
2016-9-9 23:16 上传
流水灯仿真的所有资料下载:
流水灯仿真(Proteus KEIL含逻辑分析仪).rar
(100.37 KB, 下载次数: 51)
2016-9-9 23:16 上传
点击文件名下载附件
下载积分: 黑币 -5
单片机源程序:
//采用移位字符<<实现,且赋值后做加1调整处理
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar a,arrow;
void DeLay (uint);
void main ()
{
arrow=0xfe;
a=0;
while (1)
{
P1=arrow;
arrow=arrow<<1;
arrow++;
DeLay (200);
a++; //写成a=a++,其实a不自加
if(a==8)
{
a=-1;
arrow=0xfe;
}
}
}
void DeLay( uint xms)
{ uint i,j;
for (i=xms;i>0;i--)
for (j=110;j>0;j--);
}
/*
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
uint a,arrow;
void DeLay (uint);
void main ()
{
a=0;
arrow=0xfe;
while (1)
{
P1=arrow;
DeLay (200);
arrow=_crol_(arrow,1);
if(a==7)
{
a=-1;
}
a++; //写成a=a++,其实a不自加
}
}
void DeLay( uint xms)
{ uint i,j;
for (i=xms;i>0;i--)
for (j=110;j>0;j--);
}
*/
/*
//流水灯,去掉数组语句实现对各个P1端口赋值,
#include <reg52.h>
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
//P1=0x00;
signed char a=0;
//unsigned char P1array[8]; //定义一维数组
void DeLay (uint);
void P1Value(void); //P1各端口赋值函数
void main ()
{
//led1=0;
// P1=0x00;
// unsigned char a=0;
while (1)
{
P1Value();
DeLay(200);
P1Value();
DeLay(1000);
// P1array[a];
if(a==7)
{
a=-1;
}
a++; //写成a=a++,其实a不自加
}
}
void DeLay( uint xms)
{ uint i,j;
for (i=xms;i>0;i--)
for (j=110;j>0;j--);
}
void P1Value(void)
{
switch(a)
{
case 0 : led1=!led1; break;
//写成case 0 : P1^0=P1array[a]; break;语句语法提示错误
//break;语句必不可少
case 1 : led2=!led2; break;
case 2 : led3=!led3; break;
case 3 : led4=!led4; break;
case 4 : led5=!led5; break;
case 5 : led6=!led6; break;
case 6 : led7=!led7; break;
case 7 : led8=!led8; break;
default : break;
}
}
*/
/*
#include <reg52.h>
#define uint unsigned int
sbit led1=P1^0;
void DeLay (uint);
void main ()
{
// P1=0xaa;
while (1)
{
led1=0;
DeLay(200);
led1=1;
DeLay(1000);
}
}
void DeLay( uint xms)
{ uint i,j;
for (i=xms;i>0;i--)
for (j=110;j>0;j--);
}
*/
/*
//流水灯,由数组语句实现对各个P1端口赋值
#include <reg52.h>
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
//P1=0x00;
unsigned char a=0;
unsigned char P1array[8]; //定义一维数组
void DeLay (uint);
void P1Value(void); //P1各端口赋值函数
void main ()
{
//led1=0;
// P1=0x00;
// unsigned char a=0;
while (1)
{
P1array[a]=0;
P1Value();
DeLay(200);
P1array[a]=1;
P1Value();
DeLay(1000);
a++; //写成a=a++,其实a不自加
// P1array[a];
if(a==7)
{
a=0;
}
}
}
void DeLay( uint xms)
{ uint i,j;
for (i=xms;i>0;i--)
for (j=110;j>0;j--);
}
void P1Value(void)
{
switch(a)
{
case 0 : led1=P1array[a]; break;
//写成case 0 : P1^0=P1array[a]; break;语句语法提示错误
//break;语句必不可少
case 1 : led2=P1array[a]; break;
case 2 : led3=P1array[a]; break;
case 3 : led4=P1array[a]; break;
case 4 : led5=P1array[a]; break;
case 5 : led6=P1array[a]; break;
case 6 : led7=P1array[a]; break;
case 7 : led8=P1array[a]; break;
default : break;
}
}
*/
复制代码
作者:
784721214
时间:
2016-11-21 13:23
不错!顶一个
作者:
wwh2382
时间:
2020-10-20 07:58
逻辑分析仪怎么设置呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1