⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 Ȧ

📁 单片机应用技术(C语言版)[王静霞][程序源代码].zip
💻
字号:
//程序:ex6_1.c
//功能:简易数字电压表程序
#include<reg51.h>
#define uchar  unsigned char		//无符号字符型数据预定义为uchar
uchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8E};  //定义0~F显示码
sbit P0_2=P0^2;				//可寻址位定义
sbit P0_3=P0^3;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
void sepr(unsigned char i);		//把形式参数i的高低位分开,分别存放在全局变量chh,chl中
void disp();				//显示chh,chl中的数据(两位)
uchar chh,chl;				//全局变量定义
void main()				//主函数
{ 
   uchar a;
   unsigned char i;
   while(1) {
       P0_2=1;
       for(a=0;a<50;a++);		//延时
       P0_2=0;				//在P0.2引脚产生下降沿,START和ALE引脚产生上升沿,锁存通道地址,所有内部寄存器清0
       for(a=0;a<50;a++);		//延时
       P0_2=1;				//在P0.2上产生上升沿,START上产生下降沿,A/D转换开始
       while(P0_3==0);			//等待转换完成,EOC=1表示转换完成
       P0_2=0;				//P0_2=0,则OE=1,允许读数
       P1=0xff;				//作为输入口,P1口先置全1
       i=P1;				//读入A/D转换数据
       sepr(i);				//数据高低位分开
       disp();				//显示数据
            }
}
//函数名:sepr
//函数功能: 将8位二进制数00~FFH转换为0.0~5.0,低位和高位分别存在chl和chh中
//形式参数: i为A/D转换后的8位二进制数
//返回值: chl中存放拆分后的低位、chh中存放拆分后的高位
void sepr( i)				//拆分高位和低位
{
   uchar ch;
   ch=i;
   chh=ch/51;				//除以51得到高位
   ch=ch%51;				//取余运算
   chl=ch*10/51;			//再除以51,并扩大10倍,得到低位
}
//函数名:disp
//函数功能:显示全局变量中chl和chh中的数字
//形式参数:无
//返回值:无
void disp()
{
   uchar j;
   P2=led[chl];				//显示低位
   P0_6 = 1;
   P0_7 = 0;
   for(j=0;j<100;j++);			//延时
   P2=led[chh];				//显示高位
   P0_6 = 0;
   P0_7 = 1;
   for(j=0;j<100;j++);			//延时
}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -