proteus论坛|仿真论坛
直播中

zhihuizhou

12年用户 7005经验值
擅长:测试与测量
私信 关注
[资料]

【proteus练一练3.7】ADC0809数模转换与显示

/*  名称:ADC0809 数模转换与显示
  说明:ADC0809 采样通道 3 输入的
模拟量,转换后的结果显示在数码管上。  
*/
#include
#define uchar unsigned char
#define uint unsigned int
//各数字的数码管段码(共阴)
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
***it CLK=P1^3;    //时钟信号
***it ST=P1^2;   //启动信号
***it EOC=P1^1;    //转换结束信号
***it OE=P1^0;   //输出使能
//延时
void DelayMS(uint ms)
{
uchar i;
while(ms--) for(i=0;i<120;i++);
}
//显示转换结果
void Display_Result(uchar d)
{
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); } //主程序 void main() {  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 提供时钟信号 void timer0_INT() interrupt 1 {  CLK=~CLK; }
proteus仿真图:
游客,如果您要查看本帖隐藏内容请回复


回帖(246)

panguosheng

2012-3-7 10:52:16
本帖最后由 eehome 于 2013-1-5 10:03 编辑

学习学习







举报

pyz022

2012-3-7 11:18:16
{:soso_e100:}
举报

陆飞

2012-3-7 16:02:52
看看
举报

908344561

2012-3-7 20:22:34
看看
举报

lyzsml

2012-3-8 11:26:04
学习学习,正在练AD方面的程序呢。
举报

wgs67

2012-3-9 15:52:41
学习学习
举报

songxiaoliang

2012-3-11 10:21:37
学习一下

举报

dong_guang

2012-3-12 13:20:36
怎样去下载啊!还没有看到哦
举报

284476

2012-3-12 16:35:51
看一看啊
举报

284476

2012-3-12 16:36:54
没看到资料,就一个图片
举报

祝风

2012-3-15 16:49:05
不能不功能
举报

周学治

2012-3-23 20:22:24
谢谢
举报

yefengling

2012-3-24 16:06:46
学习
举报

xulong20006

2012-3-28 21:16:12
制作相关话题的交流论坛专区。[完全开放论坛]看看
举报

周仁何

2012-4-14 16:20:45
学习学习哦.............
举报

北国候鸟

2012-4-17 17:12:54
正需要  学习一下
举报

zhugp1987

2012-5-24 08:24:18
谢谢小二
举报

止如水

2012-5-24 08:46:14
看一看啊
举报

LouisIverson

2012-9-13 18:59:13
举报

更多回帖

发帖
×
20
完善资料,
赚取积分