七段数码管实验源程序及电路仿真图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附件:
一、软件设计:源程序
/* 数码管.c——七段数码管实验程序*/
//=====声明区========================================
#include <reg51.h> 、//定义8051 寄存器头文件
#define SEG P0 //定义七段数码管LED接至P0端口
sbit relay=P3^0; //声明继电器的位置
sbit LED=P3^1; //声明LED灯的位置
/* 声明七段LED数码管驱动信号数组(共阳)*/
char code TAB[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
void RL(int,int,int); //声明继电器函数
void delay(int); //声明延迟函数
//==主函数==========================================
void main() //主函数开始
{ unsigned char i;
while(1)
{ for(i=0;i<11;i++)
{ SEG=TAB[i];
delay(800);
}
relay=0;
LED=0;
RL(1,2000,2000);
delay(2000);
LED=1;
delay(2000);
}
} //主程序结束
//==子程序==========================================
/* 延迟函数*/
void delay(int x)
{ int i,j;
for(i=0;i<x;i++)
for(j=0;j<60;j++);
}
/* 继电器控制函数函数,count=计数开始,TH=激磁时间,TL=消磁时间*/ void RL(int count,int TH,int TL)
{ int i;
for(i=0;i<count;i++)
{ relay=1;
delay(TH);
relay=0;
delay(TL);
}
}
二、硬件设计:
程序开始运行时,数码管开始计数从0到9:
数码管从0计数到9时,数码管停止计数,随后继电器工作驱动LED灯亮:。

相关文档
最新文档