完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
程序如下
#include #include #define uint unsigned int #define uchar unsigned char ***it scl=P2^0; ***it sda=P2^1; ***it rs=P0^0; ***it rw=P0^1; ***it en=P0^2; ***it bf=P1^7; ***it dula=P2^6; ***it wela=P2^7; uchar Ch2value,Ch3value; void delay(uchar z) { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y++); } void usdelay() { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); } void start() { sda=1; usdelay(); scl=1; usdelay(); sda=0; usdelay(); // scl=0; } void stop() { sda=0; usdelay(); scl=1; usdelay(); sda=1; usdelay(); } void ack() { /* uchar i; scl=1; usdelay(); while((sda==1)&&(i<200)) i++; scl=0; usdelay(); */ sda=0; _nop_(); scl=0; _nop_(); scl=1; //应答信号 _nop_(); scl=0; _nop_(); } void noack() { sda=1; usdelay(); scl=0; _nop_(); scl=1; //应答信号 _nop_(); scl=0; _nop_(); } void send_byte(uchar dat) { uchar i,temp; temp=dat; scl = 0; usdelay(); sda = 1; usdelay(); for(i=0;i<8;i++) { /* scl=0; usdelay(); sda=(bit)(dat&0x80); usdelay(); scl=1; usdelay(); dat<<=1; */ temp = temp << 1; scl = 0; usdelay(); sda = CY; usdelay(); scl = 1; usdelay(); } scl=0; usdelay(); sda=1; usdelay(); } uchar read_byte() { uchar i,k; scl=0; usdelay(); sda=1; usdelay(); for(i=0;i<8;i++) { scl=1; usdelay(); k=(k<<1)|sda; scl=0; usdelay(); } sda=1; scl=1; return k; } uchar read_adc(uchar channel) { uchar temp; start(); send_byte(0x90); ack(); send_byte(0x00+channel); ack(); start(); send_byte(0x91); ack(); temp=read_byte(); noack(); stop(); return temp; } void init() { sda=1; _nop_(); scl=1; _nop_(); } /******************************************/ void wait() { P1=0xff; do { rs=0; rw=1; en=0; en=1; }while(bf==1); en=0; } void write_dat(uchar dat) { wait(); en=0; P1=dat; rs=1; rw=0; en=1; en=0; } void write_com(uchar com) { wait(); en=0; P1=com; rs=0; rw=0; en=1; en=0; } void ***c(uchar *p) { while(*p!=0) write_dat(*p++); } void init_1602() { wela=0; dula=0; write_com(0x38); delay(2); write_com(0x0c); delay(2); write_com(0x06); delay(2); write_com(0x01); write_com(0x80); ***c("Channel 2 :"); write_com(0xc0); ***c("Channel 3 :"); } void display() { uchar a0,a1,a2,b0,b1,b2; a0=Ch2value*196/10000; a1=Ch2value*196%10000/1000; a2=Ch2value*196%1000/100; b0=Ch3value*196/10000; b1=Ch3value*196%10000/1000; b2=Ch3value*196%1000/100; write_com(0x80+11); write_dat(0x30+a0); write_dat('.'); write_dat(0x30+a1); write_dat(0x30+a2); write_dat('V'); write_com(0xc0+11); write_dat(0x30+b0); write_dat('.'); write_dat(0x30+b1); write_dat(0x30+b2); write_dat('V'); } void main() { init_1602(); init(); while(1) { Ch2value=read_adc(2); delay(5); Ch3value=read_adc(3); delay(5); display(); } } 这个程序在我学习板上只显示4.99V,求助大神是怎么回事。万分感谢大神的帮助!!! |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12020 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:21 , Processed in 0.559029 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号