MPS430F149单片机之_模拟电压AD转换数码管显示数值

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


/*****************************************************************
将P6口输入的模拟电压AD转换后,从P4,P5口连接的数码管输出
*****************************************************************/
#include //声明库
/********************************************************************
数据类型定义
*********************************************************************/
#define uchar unsigned char
#define uint unsigned int
/********************************************************************
数码管段码定义0123456789
*********************************************************************/
uchar Table[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//所需的段的位码
uchar wei[4]={0XEF,0XDF,0XBF,0X7F};//控制位
uint z,x,c,v, date=0; //定义数据类型
/**********************************************************************
延时函数程序,参数i 延时时间
**********************************************************************/
void DelayMS(uint i)
{
uint j;
for(;i!=0;i--)
{
for(j=200;j!=0;j--);
}
}
/**********************************************************************
按键函数
**********************************************************************/
void KEY()//按键函数名
{
if(!(P1IN&BIT0))//判断按键按下
{
DelayMS(100);//消抖延时
while(!(P1IN&BIT0));//判断按键松开
date++;//按键数值加1
}
}
/**********************************************************************
数码管动态扫描
*********************************************************************/
void Pre_Display()
{

/***********************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100;//求百位
c=date%100/10; //求十位
v=date%10; //求个位

P5OUT=wei[0]; //位控制
P4OUT=Table[z]; //显示千位
DelayMS(5); //延时
P5OUT=wei[1]; //位控制
P4OUT=Table[x]; //显示百位
DelayMS(5); //延时
P5OUT=wei[2]; //位控制
P4OUT=Table[c]; //显示十位
DelayMS(5); //延时
P5OUT=wei[3]; //位控制
P4OUT=Table[v]; //显示个位
DelayMS(5); //延时
}
/********************************************************************
I/O口初始化
*********************************************************************/
void Init_IO(void)//初始化I/O
{
P1DIR&=~BIT0;
//设置P4口为输出
P4DIR=0XFF;
//设置P5口为输出
P5DIR=0XFF;
}
/********************************************************************
主函数
*********************************************************************/
void main(void)//主函数
{


Init_IO();//初始化I/O
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

while(1)//无限循环
{
KEY();//数码管显示数值
Pre_Display();//数码管扫描显示函数
}
}
/********************************************************************
结 束
*********************************************************************/

相关文档
最新文档