#include\x3creg51.h\x3e\n\nsbit LED1 \x3d P0\x5e0; \nsbit LED2 \x3d P0\x5e1; \nsbit LED3 \x3d P0\x5e2; \nsbit LED4 \x3d P0\x5e3; \nsbit LED5 \x3d P0\x5e4; \nsbit LED6 \x3d P0\x5e5; \nsbit LED7 \x3d P0\x5e6; \nsbit LED8 \x3d P0\x5e7; \n\nvoid delay(unsigned int count)\n{\n unsigned int i, j;\n for(i\x3d0;i\x3ccount;i++)\n for(j\x3d0;j\x3c120;j++);\n}\n\nvoid main()\n{\n while(1)\n {\n LED1 \x3d 0;\n delay(100);\n LED1 \x3d 1;\n \n LED2 \x3d 0;\n delay(100);\n LED2 \x3d 1;\n \n LED3 \x3d 0;\n delay(100);\n LED3 \x3d 1;\n \n LED4 \x3d 0;\n delay(100);\n LED4 \x3d 1;\n \n LED5 \x3d 0;\n delay(100);\n LED5 \x3d 1;\n \n LED6 \x3d 0;\n delay(100);\n LED6 \x3d 1;\n \n LED7 \x3d 0;\n delay(100);\n LED7 \x3d 1;\n \n LED8 \x3d 0;\n delay(100);\n LED8 \x3d 1;\n }\n}\n\n\n\n +5V\n |\n |\n R1\n |\nP0.0----|<|\n |\n LED1\n |\nGND-----(---)\n |\n R2\n |\nP0.1----|<|\n |\n LED2\n |\nGND-----(---)\n |\n R3\n |\nP0.2----|<|\n |\n LED3\n |\nGND-----(---)\n |\n R4\n |\nP0.3----|<|\n |\n LED4\n |\nGND-----(---)\n |\n R5\n |\nP0.4----|<|\n |\n LED5\n |\nGND-----(---)\n |\n R6\n |\nP0.5----|<|\n |\n LED6\n |\nGND-----(---)\n |\n R7\n |\nP0.6----|<|\n |\n LED7\n |\nGND-----(---)\n |\n R8\n |\nP0.7----|<|\n |\n LED8\n |\nGND-----(---)\n\n\n#include\x3creg51.h\x3e\n\n#define uchar unsigned char\n#define uint unsigned int\n\nuchar code monthDays[12] \x3d {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};\n\nsbit SDA \x3d P2\x5e0;\nsbit SCL \x3d P2\x5e1;\n\nuchar second, minute, hour;\nuchar day, month, year;\n\nvoid I2C_Start()\n{\n SDA \x3d 1;\n SCL \x3d 1;\n SDA \x3d 0;\n SCL \x3d 0;\n}\n\nvoid I2C_Stop()\n{\n SDA \x3d 0;\n SCL \x3d 1;\n SDA \x3d 1;\n}\n\nvoid I2C_Ack()\n{\n SDA \x3d 0;\n SCL \x3d 1;\n SCL \x3d 0;\n SDA \x3d 1;\n}\n\nvoid I2C_NoAck()\n{\n SDA \x3d 1;\n SCL \x3d 1;\n SCL \x3d 0;\n}\n\nbit I2C_WaitAck()\n{\n SDA \x3d 1;\n SCL \x3d 1;\n if (SDA)\n {\n SCL \x3d 0;\n return 0;\n }\n SCL \x3d 0;\n return 1;\n}\n\nvoid I2C_SendByte(uchar dat)\n{\n uchar i;\n for (i \x3d 0; i \x3c 8; i++)\n {\n SDA \x3d dat & 0x80;\n dat \x3c\x3c 1;\n SCL \x3d 1;\n SCL \x3d 0;\n }\n I2C_WaitAck();\n}\n\nuchar I2C_ReadByte()\n{\n uchar i, dat \x3d 0;\n SDA \x3d 1;\n for (i \x3d 0; i \x3c 8; i++)\n {\n dat \x3c\x3c 1;\n SCL \x3d 1;\n dat |= SDA;\n SCL \x3d 0;\n }\n return dat;\n}\n\nvoid DS1307_Write(uchar addr, uchar dat)\n{\n I2C_Start();\n I2C_SendByte(0xD0);\n I2C_SendByte(addr);\n I2C_SendByte(dat);\n I2C_Stop();\n}\n\nuchar DS1307_Read(uchar addr)\n{\n uchar dat;\n I2C_Start();\n I2C_SendByte(0xD0);\n I2C_SendByte(addr);\n I2C_Start();\n I2C_SendByte(0xD1);\n dat \x3d I2C_ReadByte();\n I2C_NoAck();\n I2C_Stop();\n return dat;\n}\n\nvoid DS1307_Init()\n{\n DS1307_Write(0x07, 0x00);\n DS1307_Write(0x00, 0x00);\n DS1307_Write(0x01, 0x30);\n DS1307_Write(0x02, 0x12);\n DS1307_Write(0x03, 0x01);\n DS1307_Write(0x04, 0x01);\n DS1307_Write(0x05, 0x01);\n DS1307_Write(0x06, 0x20);\n}\n\nvoid DS1307_ReadTime()\n{\n second \x3d DS1307_Read(0x00);\n minute \x3d DS1307_Read(0x01);\n hour \x3d DS1307_Read(0x02);\n day \x3d DS1307_Read(0x04);\n month \x3d DS1307_Read(0x05);\n year \x3d DS1307_Read(0x06);\n}\n\nvoid DisplayTime()\n{\n P1 \x3d 0xFF;\n P0 \x3d 0xFF;\n P1 \x3d ~(0x01 \x3c\x3c (second % 10));\n P0 \x3d ~(0x01 \x3c\x3c (second / 10));\n delay(1000);\n \n P1 \x3d 0xFF;\n P0 \x3d 0xFF;\n P1 \x3d ~(0x01 \x3c\x3c (minute % 10));\n P0 \x3d ~(0x01 \x3c\x3c (minute / 10));\n delay(1000);\n \n P1 \x3d 0xFF;\n P0 \x3d 0xFF;\n P1 \x3d ~(0x01 \x3c\x3c (hour % 10));\n P0 \x3d ~(0x01 \x3c\x3c (hour / 10));\n delay(1000);\n}\n\nvoid delay(uint count)\n{\n uint i, j;\n for(i\x3d0;i\x3ccount;i++)\n for(j\x3d0;j\x3c120;j++);\n}\n\nvoid main()\n{\n DS1307_Init();\n while(1)\n {\n DS1307_ReadTime();\n DisplayTime();\n }\n}\n\n\n +5V\n |\n |\n R1\n |\nP1.0-----|<|\n |\n LED1\n |\n GND-----(---)\n |\n R2\n |\nP1.1-----|<|\n |\n LED2\n |\n GND-----(---)\n |\n R3\n |\nP1.2-----|<|\n |\n LED3\n |\n GND-----(---)\n |\n R4\n |\nP1.3-----|<|\n |\n LED4\n |\n GND-----(---)\n |\n R5\n |\nP0.0-----|<|\n |\n LED5\n |\n GND-----(---)\n |\n R6\n |\nP0.1-----|<|\n |\n LED6\n |\n GND-----(---)\n |\n R7\n |\nP0.2-----|<|\n |\n LED7\n |\n GND-----(---)\n |\n R8\n |\nP0.3-----|<|\n |\n LED8\n |\n GND-----(---)\n |\n R9\n |\nP0.4-----|<|\n |\n LED9\n |\n GND-----(---)\n |\n R10\n |\nP0.5-----|<|\n |\n LED10\n |\n GND-----(---)\n |\n R11\n |\nP0.6-----|<|\n |\n LED11\n |\n GND-----(---)\n |\n R12\n |\nP0.7-----|<|\n |\n LED12\n |\n GND-----(---)\n |\n R13\n |\nP2.0-----|<|\n |\n SDA\n |\n GND-----(---)\n |\n R14\n |\nP2.1-----|<|\n |\n SCL\n |\n GND-----(---)\n\n\n#include\x3creg51.h\x3e\n\nsbit LED1 \x3d P0\x5e0; \nsbit LED2 \x3d P0\x5e1; \nsbit LED3 \x3d P0\x5e2; \nsbit LED4 \x3d P0\x5e3; \nsbit LED5 \x3d P0\x5e4; \nsbit LED6 \x3d P0\x5e5; \nsbit LED7 \x3d P0\x5e6; \nsbit LED8 \x3d P0\x5e7; \n\nsbit ADC_CS \x3d P2\x5e0;\nsbit ADC_CLK \x3d P2\x5e1;\nsbit ADC_DIO \x3d P2\x5e2;\n\nvoid delay(unsigned int count)\n{\n unsigned int i, j;\n for(i\x3d0;i\x3ccount;i++)\n for(j\x3d0;j\x3c120;j++);\n}\n\nvoid ADC_Start()\n{\n ADC_CS \x3d 0;\n ADC_CLK \x3d 0;\n ADC_DIO \x3d 1;\n delay(1);\n ADC_CLK \x3d 1;\n delay(1);\n ADC_CLK \x3d 0;\n delay(1);\n}\n\nunsigned int ADC_Read()\n{\n unsigned int i, dat \x3d 0;\n for(i\x3d0;i\x3c12;i++)\n {\n ADC_CLK \x3d 1;\n delay(1);\n dat \x3c\x3c 1;\n ADC_CLK \x3d 0;\n delay(1);\n if(ADC_DIO)\n dat |= 0x01;\n }\n ADC_CS \x3d 1;\n return dat;\n}\n\nvoid main()\n{\n unsigned int adcValue;\n \n while(1)\n {\n ADC_Start();\n adcValue \x3d ADC_Read();\n \n if(adcValue > 2048)\n {\n LED1 \x3d 0;\n LED2 \x3d 0;\n LED3 \x3d 0;\n LED4 \x3d 0;\n LED5 \x3d 0;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 1024)\n {\n LED1 \x3d 1;\n LED2 \x3d 0;\n LED3 \x3d 0;\n LED4 \x3d 0;\n LED5 \x3d 0;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 512)\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 0;\n LED4 \x3d 0;\n LED5 \x3d 0;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 256)\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 1;\n LED4 \x3d 0;\n LED5 \x3d 0;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 128)\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 1;\n LED4 \x3d 1;\n LED5 \x3d 0;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 64)\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 1;\n LED4 \x3d 1;\n LED5 \x3d 1;\n LED6 \x3d 0;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else if(adcValue > 32)\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 1;\n LED4 \x3d 1;\n LED5 \x3d 1;\n LED6 \x3d 1;\n LED7 \x3d 0;\n LED8 \x3d 0;\n }\n else\n {\n LED1 \x3d 1;\n LED2 \x3d 1;\n LED3 \x3d 1;\n LED4 \x3d 1;\n LED5 \x3d 1;\n LED6 \x3d 1;\n LED7 \x3d 1;\n LED8 \x3d 0;\n }\n }\n}\n\n\n +5V\n |\n |\n R1\n |\nP0.0-----|<|\n |\n LED1\n |\n GND-----(---)\n |\n R2\n |\nP0.1-----|<|\n |\n LED2\n |\n GND-----(---)\n |\n R3\n |\nP0.2-----|<|\n |\n LED3\n |\n GND-----(---)\n |\n R4\n |\nP0.3-----|<|\n |\n LED4\n |\n GND-----(---)\n |\n R5\n |\nP0.4-----|<|\n |\n LED5\n |\n GND-----(---)\n |\n R6\n |\nP0.5-----|<|\n |\n LED6\n |\n GND-----(---)\n |\n R7\n |\nP0.6-----|<|\n |\n LED7\n |\n GND-----(---)\n |\n R8\n |\nP0.7-----|<|\n |\n LED8\n |\n GND-----(---)\n |\n R9\n |\nP2.0-----|<|\n |\n ADC_CS\n |\n GND-----(---)\n |\n R10\n |\nP2.1-----|<|\n |\n ADC_CLK\n |\n GND-----(---)\n |\n R11\n |\nP2.2-----|<|\n |\n ADC_DIO\n |\n GND-----(---)\n


原文地址: https://www.cveoy.top/t/topic/pAuZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录