51单片机实现简易数字电压表(液晶显示)仿真图+程序.docx

51单片机实现简易数字电压表(液晶显示)仿真图+程序.docx

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

液晶显示,89C51实现简易电压表 用keil C51软件编译,主函数中包含了两个c文件,即lcd.c 、 ADC0809.c 0809的仿真芯片用的是ADC0808进行代替。注意高低位的接法 程序如下: /**************************************主函数*******************************/ #include reg51.h #include lcd.c #include ADC0809.c #define uchar unsigned char #define uint unsigned int void main() { uchar i; ADC_init(); LCD_init(); while(1) { i=ADC_change(); sepr(i); disp(); } } void clock(void) interrupt 1 { CLK=~CLK; } /***********************0809模数转换(ADC0809.c)***************************/ #include reg51.h #define uchar unsigned char #define uint unsigned int #define ADC_DB P1 sbit ST= P0^2; sbit EOC= P0^3; sbit OE= P0^4; sbit CLK= P0^1; uchar c[6]; void sepr(uchar i); void disp(); void ADC_init(); uchar ADC_change(); uchar ADC_change() { ST=0; ST=1; ST=0; while(EOC==0); ADC_DB=0xff; OE=1; return(ADC_DB); } void disp() { gotoxy(1,1); LCD_display(The Output is:); gotoxy(2,5); LCD_display(c); } void sepr(uchar i) { uint ch; ch=i; c[0]=0+ch/51; c[1]=.; c[2]=0+(ch%51)*10/51; c[3]=0+((ch%51)*10%51)*10/51; c[4]=V; c[5]=\0; } void ADC_init() { TMOD=0x02; TH0=10; TL0=10; EA=1; ET0=1; TR0=1; } /***********************************液晶(lcd.c)****************************/ #includereg51.h #include INTRINS.H //库函数头文件,代码中引用了_nop_()函数 #define uchar unsigned char #define uint unsigned int #define LCD_DB P2//定义LCD的数据端口 sbit LCD_RS=P0^5; sbit LCD_RW=P0^6; sbit LCD_E =P0^7; //===========延时子函数======================== void delay(uint x) {uint i,j; for(i=x;i0;i--) for(j=0;j2;j++); } /****************侧忙函数************************/ unsigned lcd_bz() { unsigned result; LCD_RS = 0; LCD_RW = 1; LCD_E = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (unsigned)(LCD_DB 0x80); //检测P2最高位是否为1 LCD_E = 0; return result;//返回侧忙结果 } //==================写指令函数================= void LCD_w_com(uchar com) { while(lcd_bz()); LCD_DB=com; LCD_RS=0;//指令 LCD_RW=0;//写入 LCD_E=1; LCD_E=0; delay(1);//等待执行完毕 。。。

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档