1.设计任务
利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。
基本要求:利用单片机AT89C51设计数字电压表,能对模拟信号进行检测,能将所测量的电压在LED显示器上显示。
创新:具有方便的键盘操作功能;电压超出界限时具有报警功能等。
2. 设计要求
2.1系统方案论证
根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。
2.2系统硬件电路设计
根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。
2.3软件设计
根据该系统要求的功能进行软件设计,简述软件的功能,并根据每个模块的功能绘制软件流程图,根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求加以注释。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code DSY_CODE1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xef,0xdf};
sbit CLK=P2^4;
sbit ST=P2^5;
sbit EOC=P2^6;
void DelayMs(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<120;i++);
}
void Disp_result(d)
{
d=(d/255.000)*5000;
P2=0xfe;
P0=DSY_CODE1[d/1000];
DelayMs(5);
P2=0xfd;
P0=DSY_CODE[(d/100)%10];
DelayMs(5);
P2=0xfb;
P0=DSY_CODE[(d/10)%10];
DelayMs(5);
P2=0xf7;
P0=DSY_CODE[d%10];
DelayMs(5);
if(d>3210) BUZZ=0;
else BUZZ=1;
}
void Timer0_INT() interrupt 1
{
CLK=~CLK;
}
void main()
{
TMOD=0x02;
TH0=0X14;
TL0=0X00;
IE=0X82;
TR0=1;
P3=0x3f;
BUZZ=1;
while(1)
{
ST=0;ST=1;ST=0;
while(EOC==0);
OE=1;
Disp_result(P1);
OE=0;
}
}
完整代码点开链接私信 免费 获取。
【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa