历史上的今天
今天是:2025年01月07日(星期二)
2018年01月07日 | 单片机C语言程序设计:ADC0809数模转换与显示
2018-01-07 来源:互联网
ADC0809 数模转换与显示c语言程序
/*名称:ADC0809数模转换与显示
说明:ADC0809采样通道3输入的
模拟量,转换后的结果显示在数码管上。
*/
#include《reg51.h》
#defineucharunsignedchar
#defineuintunsignedint
//各数字的数码管段码(共阴)
ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbitCLK=P1^3;//时钟信号
sbitST=P1^2;//启动信号
sbitEOC=P1^1;//转换结束信号
sbitOE=P1^0;//输出使能
//延时
voidDelayMS(uintms)
{
uchari;
while(ms--)for(i=0;i《120;i++);
}
//显示转换结果
voidDisplay_Result(uchard)
{
P2=0xf7;第4个数码管显示个位数
P0=DSY_CODE[d%10];
DelayMS(5);
P2=0xfb;第3个数码管显示十位数
P0=DSY_CODE[d%100/10];
DelayMS(5);
P2=0xfd;第2个数码管显示百位数
P0=DSY_CODE[d/100];
DelayMS(5);
}
//主程序
voidmain()
{
TMOD=0x02;//T1工作模式2
TH0=0x14;
TL0=0x00;
IE=0x82;
TR0=1;
P1=0x3f;//选择ADC0809的通道3(0111)(P1.4~P1.6)
while(1)
{
ST=0;ST=1;ST=0;//启动A/D转换
while(EOC==0);//等待转换完成
OE=1;
Display_Result(P3);
OE=0;
}
}
//T0定时器中断给ADC0808提供时钟信号
voidTImer0_INT()interrupt1
{
CLK=~CLK;
}
上一篇:r语言和matlab有什么区别
史海拾趣
|
如何自己写成键盘的单体的流驱动,有两个问题没有解决 ,请问各位大侠: (1)键盘驱动 改如何将扫描的键盘值发送到GWES? 是通过那个函数发送过去的啊? (2)GWES可以加载流驱动到GWES吗?如果可以 如何让GWES加载?如果不行 应该怎么处理? … 查看全部问答> |
|
高手来帮忙,菜鸟问题(EVC 中 动态链接库的头文件怎么定义) 在EVC中新建了个动态链接库名位dll。里面代码也很简单好用。 #include \"stdafx.h\" BOOL APIENTRY DllMain( HANDLE hModule, &nbs ...… 查看全部问答> |
|
芯片型号:" STM32F103C6T6A GHAAV 93 CHN841" 这个版本的TIM4 不能用. 但这个型号: " STM32F103C6T6 990VD 93 MYS 806" TIM4 功能是正常的. 同样的程序,同样的板子 更换芯片就正常了, ...… 查看全部问答> |
|
i.MX25是freescale的ARM9处理器,400MHZ主频,DDR2控制器,是针对工业市场设计的,和TI的AM18xx类似,和atmel的也类似。这个用来做工业产品是很好的这是个应用笔记,说的是ADC模块… 查看全部问答> |




