欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    交流数字电压表设计(共7页).doc

    • 资源ID:14287663       资源大小:179.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    交流数字电压表设计(共7页).doc

    精选优质文档-倾情为你奉上交流数字电压表设计实例专业(年级、班) 设 计 人 指 导 教 师 辅 导 教 师 2009 年 01 月 01 日(设计结束日)交流数字电压表 学号: 姓名: 班级: 一、 实验目的1、 了解硬件平台的各个模块及其作用;2、 能运用硬件平台上的各个模块完成各项设计;3、 能熟练运用keil软件进行编程设计。二、 实验内容在所给硬件平台的基础上,并利用keil软件完成一个交流数字电压表。主要由检测、显示、档位和A/D、单片机灯组成要求:用4位数码管实时显示被测量交流电压的峰值,单位为V 测量范围:01999V测量误差不超过15用4各按键选择档位三、 硬件设计电路图为:ACDC转换电路AD转换数码管显示检测电路按键电路:四、软件设计#include <reg52.h>#include <intrins.h>#include <string.h>#define uchar unsigned char #define uint unsigned int #define Busy 0x80 Busy #define LCM_Data P0 #define LCM_RS P2_7#define LCM_RW P2_6#define LCM_E P2_5#define ALE P2_4#define START P3_2#define OE P2_3#define EOC P3_3#define A P2_0#define B P2_1#define C P2_2sbit P3_6=P36;sbit P3_5=P35;sbit P3_4=P34;sbit P3_2=P32;sbit P3_3=P33;sbit P2_5=P25;sbit P2_6=P26;sbit P2_4=P24;sbit P2_0=P20;sbit P2_1=P21;sbit P2_2=P22;sbit P2_3=P23;sbit P2_7=P27;uchar data ad;char ch=0;float volt; uchar data NDIG; uchar X,Y;bit key1=0,key2=0; uchar code W = " good luck "uchar code hhuc="this is micheal"uchar code tongdao="tongdao : "uchar code danwei=" v "void delayms(uint n);void WriteDataLCM(uchar WDLCM);void WriteCommandLCM(uchar WCLCM,uBuysC);void CheckBusy_LCM(void);void LCMInit(void);void DisplayOneChar(uchar X, uchar Y, uchar DData);void DisplayListChar(uchar X,uchar Y, uchar *DData);void disp(uchar xx, uchar yy,float canshu);void nextp(void);void WriteDataLCM(uchar WDLCM) CheckBusy_LCM(); LCM_RS = 1; LCM_RW = 0; LCM_Data = WDLCM; LCM_E = 1; _nop_(); _nop_(); _nop_(); LCM_E = 0;void WriteCommandLCM(uchar WCLCM,bit BuysC) if (BuysC) CheckBusy_LCM(); LCM_RS = 0; LCM_RW = 0; LCM_Data = WCLCM; LCM_E = 1; LCM_E = 1; _nop_(); _nop_(); _nop_(); LCM_E = 0; void CheckBusy_LCM(void) LCM_Data = 0x0FF; LCM_E = 1; LCM_RS = 0; LCM_RW = 1; _nop_(); _nop_(); _nop_(); while (LCM_Data & Busy); LCM_E = 0;void LCMInit(void) WriteCommandLCM(0x38,0); delayms(5); WriteCommandLCM(0x38,0); delayms(5); WriteCommandLCM(0x38,0); delayms(5); WriteCommandLCM(0x38,1); delayms(5); WriteCommandLCM(0x08,1); delayms(5); WriteCommandLCM(0x01,1); delayms(5); WriteCommandLCM(0x06,1); delayms(5); WriteCommandLCM(0x0C,1); delayms(5); void DisplayOneChar(uchar X, uchar Y, uchar DData) Y &= 0x01; X &= 0x0F; if (Y) X |= 0x40; X |= 0x80; WriteCommandLCM(X, 1); WriteDataLCM(DData);void DisplayListChar(uchar X, uchar Y, uchar *DData) uchar ListLength; ListLength = 0; Y &= 0x01; X &= 0x0F; while (X<NDIG) DisplayOneChar(X, Y, DDataListLength); ListLength+; X+; void delayms(uint n) for(n=125*n;n;n-);void read_ad(uchar port) switch(port) case 0:A=0;B=0;C=0;break; case 1:A=1;B=0;C=0;break; case 2:A=0;B=1;C=0;break; case 3:A=1;B=1;C=0;break; case 4:A=0;B=0;C=1;break; case 5:A=1;B=0;C=1;break; case 6:A=0;B=1;C=1;break; case 7:A=1;B=1;C=1;break; default:break; OE=0; ALE=0; START=0; ALE=1; START=1; ALE=0; START=0; while(!EOC); OE=1; P0=0x0ff; ad=0xff&P1; OE=0; volt=(ad/255.0)*5;void nextp(void) X+=1;if(X=16) X=0; Y+=1; if(Y=2) Y=0;void disp(uchar xx, uchar yy,float canshu) uint b1,b2; float d; uint bb; bit flag=0; X=xx;Y=yy; b2=(uint)canshu; b1=b2; bb=b1+'0' DisplayOneChar(X,Y,bb);nextp(); DisplayOneChar(X,Y,'.');nextp(); d=canshu-b2; bb=(uint)(d*10)+'0' DisplayOneChar(X,Y,bb);nextp(); bb=(uint)(d*100)+'0' DisplayOneChar(X,Y,bb);nextp();void key_scan(void) uint i;if(P3_5=0)for(i=5000;i>0;i-);if(P3_5=0)key1=1;while(!P3_5);if(P3_6=0)for(i=5000;i>0;i-);if(P3_6=0)key2=1;while(!P3_6);void key_Process(void)if(key1)ch+;key1=0;if(key2)ch-;key2=0;if(ch>7)ch=0;if(ch<0)ch=7;DisplayOneChar(7,0,'0'+ch);void main(void) uchar j; LCMInit(); NDIG=strlen(W); DisplayListChar(0, 0, W); NDIG=strlen(hhuc); DisplayListChar(0, 1, hhuc); for(j=30;j>0;j-) delayms(20); WriteCommandLCM(0x01,1); NDIG=strlen(tongdao); DisplayListChar(0, 0, tongdao); NDIG=strlen(danwei); DisplayListChar(0, 1, danwei); while(1) key_scan(); key_Process(); read_ad(ch); disp(10, 1,volt); 专心-专注-专业

    注意事项

    本文(交流数字电压表设计(共7页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开