历史上的今天
今天是:2025年01月09日(星期四)
2020年01月09日 | PIC单片机ADC的编程设计
2020-01-09 来源:elecfans
#include
__CONFIG(0X1F71);
#define uchar unsigned char
#define uint unsigned int
const uchar Tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
const uchar Tab1[]=
{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点的代码

void DisPlay(uchar date1,uchar date2,uchar date3,uchar date4);
void DelayMS(uint z)
{
uint a,b;
for(a=26;a》0;a--)
for(b=z;b》0;b--);
}
/****************************************************
端口初始化函数
*****************************************************/
void PORT_Init(void)
{
TRISB=0X00;
TRISC=0XC0;
}
/****************************************************
ADC模块初始化函数
*****************************************************/
void ADC_Init(void)
{
ADCON1=0X8E;
ADCON0=0X41;
DelayMS(1);
}
/****************************************************
ADC模块开始转换函数
*****************************************************/
uint ADC_Start(void)
{
uint uiADCTemp;
ADGO=1;
while(ADGO);//等待转换完成
uiADCTemp=ADRESH;
uiADCTemp=uiADCTemp《《8|ADRESL;
uiADCTemp=uiADCTemp/1023.0*5000.0;
returnuiADCTemp;
}
void main(void)
{
uint VolTageNum;
uchar num1,num2,num3,num4;
PORT_Init();
ADC_Init();
while(1)
{
VolTageNum=ADC_Start();
num1=VolTageNum/1000;
num2=VolTageNum%1000/100;
num3=VolTageNum%100/10;
num4=VolTageNum%10;
DisPlay(num1,num2,num3,num4);
}
}
/****************************************************
显示函数
*****************************************************/
void DisPlay(uchar date1,uchar date2,uchar date3,uchar date4)
{
PORTB=Tab1[date1];
PORTC=0XFE;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date2];
PORTC=0XFD;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date3];
PORTC=0XFB;
DelayMS(1);
PORTB=0X00;
PORTB=Tab[date4];
PORTC=0XF7;
DelayMS(1);
PORTB=0X00;
}
史海拾趣
|
1 引言 汽车仪表是驾驶员与汽车的信息交流界面,对汽车安全以及经济行驶具有重要作用。近年来,随着汽车电子技术的发展,汽车仪表显示信息也不断增加,而传统机械指针式汽车组合仪表则无法满足现在使用需求。特别是计算机、微电子和 ...… 查看全部问答> |
|
WINCE如何拖动图片像IPHONE一样的效果。效果内详。实在没分了。有分了再补 往上或往下滑动屏幕。当放开触摸屏时。按一定的速率继续往滑动方向。直至停止。需要有加速度般的感觉。 希望高手有代码的贴下代码。。不然来点实质性的思路和想法… 查看全部问答> |
|
extern ROMChain_t *OEMRomChain; 这段编译错误 在eboot main.c 添加 multibin xip 过程中, 添加 InitRomChain() 函数中,引用了 全局变量 extern ROMChain_t *OEMRomChain; OEMRomChain 指针对应是 public\\common\\oak\\inc\\Bcoemglobal.h 文件中 #define OEMRomChain g_pOemGlobal->pRO ...… 查看全部问答> |
|
个人求有PHS基站控制器软件开发经验辅导老师(可兼职,深圳) 本人欲从事PHS基站控制器软件开发,因无此方面的经验,想请位有这方面经验的辅导老师。 主要工作是帮助本人分析一个现有PHS基站控制器软件源程序,然后修正程序中的一些BUG。 时间方面可以是灵活按排(工作日、业余均可),报酬可以按时/日/周/月等 ...… 查看全部问答> |
|
是一个虚拟的USB软驱,有INF和SYS文件,通过WINDOWS弹出的检测界面可以安装成功。我想在我的安装程序里直接将驱动按上,而在插入U盘时就能自动检测到设备ID后自动加载驱动。哪位有类似的程序和方法,请赐教。… 查看全部问答> |
|
各位大虾 我在.NET2005下开发WinCE程序(VB.net),现在需要把按钮上的字符靠左显示,在Windows下的按钮有设置靠左的属性,但是在WinCE下没有这个属性,请问该怎么做??… 查看全部问答> |
|
看了一下之前的每日一问,有些是版主发表的,有些是坛友发表的,但都是些专业性的问题,我看了下,都不太会··· 我呢,菜鸟一个,连个Z430—RF2500的驱动问题都解决不了,因此还没开始开 ...… 查看全部问答> |
|
我的现在的想法是 用串口助手 第一次输入 十六进制的 ff 第二次 fe 第三次 fd 然后 我想把 他们存放在一个 数组中 buffer[ ] 里面 存储后 在 去调用 显示出来 SBUF=buffer[ i ] 显示 ff 后 延时 200 ms 显示 fe 再延时 400ms 显示 fd void Com ...… 查看全部问答> |




