完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include #include #define uchar unsigned char //定义符号uchar为数据类型符unsigned char #define uint unsigned int //定义符号uint为数据类型符unsigned int #define ulong unsigned long //定义符号ulong为数据类型符unsigned long ***it icl7135_B1=P1^0; ***it icl7135_B2=P1^1; ***it icl7135_B4=P1^2; ***it icl7135_B8=P1^3; ***it icl7135_RH=P1^4; ***it icl7135_STRB=P3^2; ***it icl7135_POL=P1^5; ***it cd4051_A=P1^6; ***it cd4051_B=P1^7; #define DB_1602 P2 ***it rs = P0^0; ***it rw = P0^1; ***it ep = P0^2; ***it beem_ov=P0^0; ***it beem_low=P0^1; uchar msg1[16]="Voltage: "; uchar msg2[16]=" V"; uchar tem[7],count; float adshuju; void Display(); void explode(ulong); void explode_data(float); void Delay(uint t); void lcd_wcmd(uchar); void lcd_wda(uchar dat); void lcd_init(); void DisplayMsg(uchar *); //===============================================// main() { lcd_init(); // 初始化LCD lcd_wcmd(0x80); // 设置显示位置为第一行的第1个字符 DisplayMsg(msg1); while(1) { count=0; adshuju=0; cd4051_B=1; cd4051_A=0; icl7135_RH=1;//启动7135转换 while(count!=5); if(count==5) { count=0; if(adshuju>19999) beem_ov=0;//输入电压太大指示 else if(adshuju>=2) { adshuju=adshuju/0.2/10000; Display(); } else { adshuju=0; cd4051_B=0; cd4051_A=1; icl7135_RH=1; while(count!=5); if(adshuju>2) { adshuju=adshuju/2/10000; Display(); } else { adshuju=0; cd4051_B=0; cd4051_A=0; icl7135_RH=1; while(count!=5); if(adshuju>=2) { adshuju=adshuju/20/10000; Display(); } else beem_low=0;//输入电压太小测量不出指示 } } } } } //==============================================// void ISR_Int0()interrupt 0 { uchar jgbcd; count++; if(count==1)icl7135_RH=0; P1=P1&0x0f; jgbcd=P1&0x0f; adshuju+=jgbcd*pow(10,5-count); } //==============================================// void Display() { uchar i; explode_data(adshuju); if(icl7135_POL==1) tem[0]=0x20; else tem[0]=0x2d; for(i=0;i<6;i++) msg2[2+i]=tem[i]; //lcd_wcmd(0x80); //DisplayMsg(msg1); lcd_wcmd(0xc0); DisplayMsg(tem[i]); } //======================================================// void explode(ulong wdata) { uchar i; unsigned long xh; xh=10000; for(i=0;i<7;i++) tem[i]=0; for(i=1;i<6;i++) { tem[i]=wdata/xh; wdata=wdata-xh*tem[i]; xh=xh/10; } for(i=1;i<6;i++) tem[i]=tem[i]+0x30; } //=======================================================// void explode_data(float gdata) { uchar i; idata ulong temp; if(gdata>=10000) explode(temp); else if(gdata>=1000) { temp=gdata*10; explode(temp); tem[5]='.'; } else if(gdata>=100) { temp=gdata*100; explode(temp); for(i=4;i>3;i--) tem[i+1]=tem[i]; tem[4]='.'; } else if(gdata>=10) { temp=gdata*1000; explode(temp); for(i=4;i>2;i--) tem[i+1]=tem[i]; tem[3]='.'; } else if(gdata>=0) { temp=gdata*10000; explode(temp); for(i=4;i>1;i--) tem[i+1]=tem[i]; tem[2]='.'; } } //============================================================// void Delay(uint t) { // 延时子程序 uchar i; while(t--) { for(i = 0; i< 250; i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } //======================================================// bit lcd_bz() { // 测试LCD忙碌状态 bit result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P2 & 0x80); ep = 0; return result; } void lcd_wcmd(uchar cmd) { // 写入指令数据到LCD while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P2 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; } //============================================================// void lcd_wdat(uchar dat) { //写入字符显示数据到LCD while(lcd_bz()); rs = 1; rw = 0; ep = 0; P2 = dat; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; } void lcd_init() { //LCD初始化设定 lcd_wcmd(0x38); Delay(1); lcd_wcmd(0x0c); Delay(1); lcd_wcmd(0x06); Delay(1); lcd_wcmd(0x01); //清除LCD的显示内容 Delay(1); } void DisplayMsg(uchar *p) { uchar i; for(i=0;i<16;i++) lcd_wdat(*p++); } |
|
相关推荐
1个回答
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
460 浏览 0 评论
【敏矽微ME32G070开发板免费体验】+ADC测试与LED点亮
418 浏览 0 评论
飞凌嵌入式-ELFBOARD ELF 2的硬件知识分享--核心板
352 浏览 0 评论
【敏矽微ME32G070开发板免费体验】\\+Lora通信终端产品开发项目
514 浏览 0 评论
1576 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11971 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 01:49 , Processed in 0.546773 second(s), Total 67, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号