完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uchar unsigned char #define PCF8591w 0x90 #define PCF8591r 0x91 ***it sda=P2^0; ***it scl=P2^1; ***it lcdrw=P2^5; ***it lcdrs=P2^6; ***it lcden=P2^7; uchar i,j,k,num; /************************************* I2C驱动 **************************************/ void delay() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } void init() { sda=1; delay(); scl=1; delay(); } void start() { sda=1; delay(); scl=1; delay(); sda=0; delay(); } void stop() { sda=0; delay(); scl=1; delay(); sda=1; delay(); } void respones() { uchar i=0; scl=1; while((sda==1)&(i>200)) i++; delay(); scl=0; delay(); } void send_byte(uchar date) { uchar temp; temp=date; for(i=0;i<8;i++) { scl=0; delay(); sda=temp&0x80; temp=temp<<1; scl=1; delay(); } scl=0; delay(); } uchar read_byte() { uchar j; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); j=(j<<1)|sda; scl=0; delay(); } return j; } void delay1(uchar x) { uchar a,b; for(a=x;a>0;a--) for(b=100;b>0;b--); } /****************************************** 液晶模块 ******************************************/ void write_com(uchar com) { lcdrs=0; delay1(5); P0=com; lcden=1; delay1(5); lcden=0; } void init1() { lcdrw=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+2); } void write_data(uchar date) { lcdrs=1; delay1(5); P0=date; lcden=1; delay1(5); lcden=0; } void display(uchar tt) { uchar a0,a1,a2; a0=tt*196/10000; a1=tt*196%10000/1000; a2=tt*196%1000/100; write_com(0x80+0x40+7); write_data(0x30+a0); write_com(0x80+0x40+8); write_data('.'); write_com(0x80+0x40+9); write_data(0x30+a1); write_com(0x80+0x40+10); write_data(0x30+a2); write_com(0x80+0x40+11); write_data('V'); } void main() { uchar tt; init(); init1(); while(1) { start(); send_byte(PCF8591w); respones(); send_byte(0x00); respones(); start(); send_byte(PCF8591r); respones(); tt=read_byte(); stop(); display(tt); start(); send_byte(PCF8591w); respones(); send_byte(0x40); respones(); send_byte(tt); respones(); } } |
|
相关推荐
8 个讨论
|
|
我下载到板子上了,但怎么就只是数码管乱闪, 因为没哟数码管? 你的和我的这个管家好像也不一样。
|
|
|
|
|
|
看看。不错的样子
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
778浏览 0评论
134浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 01:46 , Processed in 1.478711 second(s), Total 68, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号