1.设计任务
利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。
基本要求:利用单片机AT89C51设计数字电压表,能对模拟信号进行检测,能将所测量的电压在LED显示器上显示。
创新:具有方便的键盘操作功能;电压超出界限时具有报警功能等。
2. 设计要求
2.1系统方案论证
根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。
2.2系统硬件电路设计
根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。
2.3软件设计
根据该系统要求的功能进行软件设计,简述软件的功能,并根据每个模块的功能绘制软件流程图,根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求加以注释。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned intuchar 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