logo资料库

光敏电阻AD数码管显示.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
#include #define uchar unsigned char #define uint unsigned int sbit sda=P2^1; sbit scl=P2^0; sbit wela=P2^3; sbit dula=P2^2; uchar i,bai,shi,ge; uint num,temp; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x76,0x79,0x38,0x3f,0}; void delay(int z) { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay1() {;;} void display(uchar bai,uchar shi ,uchar ge) { dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);
dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); ; } /********PCF8591 驱动程序段*******/ void start() { //起始信号 sda=1; delay1(); scl=1; delay1(); sda=0; delay1(); } void stop() { //停止 信号 sda=0; delay1(); scl=1; delay1(); sda=1; delay1(); } void respons() { //应答 uchar i; scl=1; delay1(); while((sda==1)&&(i<250))i++; scl=0; delay1(); } void write_byte(uchar date)//写一个字节的函数 {
uchar i,temp1; temp1=date; for(i=0;i<8;i++) { temp1=temp1<<1; scl=0; delay1(); sda=CY; delay1(); scl=1; delay1(); } scl=0; delay1(); sda=1; delay1(); } uchar read_byte()//读一个字节的函数 { uchar i,k; scl=0; delay1(); sda=1; delay1(); for(i=0;i<8;i++) { scl=1; delay1(); k=(k<<1)|sda; scl=0; delay1(); } return k; } uchar readadc(uchar date)//任意地址读一个字节的函数 { //uchar date; start();
write_byte(0x90); respons(); write_byte(0x40); respons(); start(); write_byte(0x91); respons(); date=read_byte(); stop(); return date; } /********************************************/ void main() { while(1) { num=readadc(0); bai=num/100; shi=num%100/10; ge=num%10; display(bai,shi,ge); } }
分享到:
收藏