电压表主程序模块.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电压表主程序模块

/**电压表主程序模块*/ #includereg52.h #define uchar unsigned char #define uint unsigned int void result(uchar); uchar value=0; #includeadc0809.h #includelcd1602.h uchar str[5] ; uchar volt[7]; uchar a=0+0x30; uchar str1[11]=tanxiaopin ; sbit CLK=P0^7; uint n; void main() { //uint i; ADC0809_init(); lcd_init(); while(1) { lcd_zifu(str1,0x01); value=AD();//原值 str[0]=value/100+0x30; str[1]=value%100/10+0x30; str[2]=value%10+0x30; result(value); lcd_data(str,0x40); lcd_data(volt,0x46); } while(1); } void result(uchar v)//转换成电压值 { float a; a=(v/255.0)*500.0; volt[0]=((int)a)/100+0x30; volt[1]=.; volt[2]=((int)a)%100/10+0x30; volt[3]=((int)a)%10+0x30; volt[4]= ; volt[5]=V; } void t1(void) interrupt 3 { CLK=~CLK; } /*ADC0809程序模块*/ #includereg52.h #define uchar unsigned char #define uint unsigned int sbit ST=P0^4; sbit EOC=P0^5; sbit OE=P0^6; //sbit CLK=P0^7; sbit ADDA=P0^0; sbit ADDB=P0^1; sbit ADDC=P0^2; sbit ALE=P0^3; uchar v;//保存IN0和经AD转换后的数据 /*非精确演示函数*/ void delay(ms) { uint i,j; for(i=ms;i0;i--) for(j=125;j0;j--); } void ADC0809_init() { TMOD=0x20; TH1=(255-250); TL1=(255-250); EA=1;//开总中断 ET1=1; //开定时器1中断 TR1=1; //启动定时器1 ST=0; OE=0; ALE=0; } /*用中断做一个500K HZ的时钟信号*/ /******AD转换函数*******/ uchar AD() { uchar temp=0; ST=0; //EOC=1; // ALE=1; ADDA=0; ADDB=0; ADDC=0; delay(1); // ALE=0; //OE=0; ST=0; ALE=1; ST=1; ALE=0; ST=0; delay(2); while(EOC==0); OE=1; temp=P2; delay(2); OE=0; return temp; } /*ADC0809 模块封装头文件*/ void ADC0809_init(); uchar AD(); /*LCD1602液晶显示模块*/ #includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int sbit rs=P1^5; sbit rw=P1^6; sbit en=P1^7; void lcd_1602(uchar comm); void lcd_write(uchar dat); bit lcd_busy(); extern void delay(uint); void lcd_1602(uchar comm); void lcd_write(uchar dat); bit lcd_busy(); sbit busy=P3^7; e

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档