程序ADC0809模拟检测电压数码管显示.docVIP

程序ADC0809模拟检测电压数码管显示.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序ADC0809模拟检测电压数码管显示

程序 /* 名称:ADC0808模拟检测电压数码管显示 编写:人言者007 日期:2013.5.20 说明:ADC0808的其中两路去检测电压,电压范围0~5V, 电压用电阻器调节模拟出来。检测到模拟电压转 化为数字量后转变为16进制在数码管中显示,每 两位数码管显示一路电压的数字量,声明:显示 的数不是实际电压,只是与电压呈现性关系。 #include #define uchar unsigned char #define uint unsigned int uchar temp,dianya0,dianya1; uchar code LED[] 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71 ; //共阴数码管断码0~9~a~f uchar disbuff[4]; //显示缓冲器(数组) sbit clk P3^3; // 芯 sbit EOC P3^2; // 片 sbit OE P3^0; // 引 sbit start P3^1; // 脚 sbit adress_A P3^4; // 定 // 义 void delay uint z while z-- ; void timer0init TMOD 0x01; //设置定时器0为工作方式1 TH0 65536-1 /256; //定时器0高八位赋值 1us中断一次 TL0 65536-1 %256; //定时器0低八位赋值 EA 1; //开总中断 ET0 1; //开定时器0中断 TR0 1; //启动定时器0 void display // disbuff[0] dianya%10; //个位 // disbuff[1] dianya/10%10; //十 // disbuff[2] dianya/100%10; //百 // disbuff[3] dianya/1000; // 千 P2 0xfe; //打开第一个数码管 P0 LED[disbuff[3]]; //给数码管送数据(段码) delay 60 ; //延时,防止数码管重影 P2 0xfd; // 以 P0 LED[disbuff[2]]; // 下 delay 60 ; // 功 P2 0xfb; // 能 P0 LED[disbuff[1]]; // 类 delay 60 ; // 同 P2 0xf7; P0 LED[disbuff[0]]; delay 60 ; void main timer0init ; //定时器0初始化 while 1 adress_A 0; //打开通道0 delay 10 ; //延时等待芯片反应 start 1; //开始ADC转换 // while !EOC ; //等待转换完成标志 未知原因,此语句导致数码管不能显示 OE 1; //输出允许 P1 0XFF; //输入前P1口需置1 dianya0 P1; //AD转换完成,读取值 OE 0; //关闭输出 start 0; //关闭AD转换 disbuff[0] dianya0%16;//将二进制数据转换为16进制低位 disbuff[1] dianya0/16;//将二进制数据转换为16进制高位 delay 10 ; //延时等待芯片反应 adress_A 1; //打开通道1 delay 10 ; start 1; OE 1; // while !EOC ; P1 0XFF; dianya1 P1; OE 0; start 0; disbuff[2] dianya1%16; disbuff[3] dianya1/16; display ; //显示 void timer0 interrupt 1 TH0 65536-1 /256; //重装初值 TL0 65536-1 %256; clk ~clk; //模拟给ADC0808提供时钟 硬件图(protues仿真)

您可能关注的文档

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档