單片機源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #include "DHT11.H"
- #define uchar unsigned char
- #define uint unsigned int
- #define SET_DATA_ORDER 0x40
- sbit SCLK = P0^3;
- sbit DIN = P0^2;
- sbit LED = P2^1;
- sbit LED1 = P2^2;
- sbit LED2 = P2^3;
- sbit LED3 = P2^4;
- uchar code display_buffer[19] = {0xFC,0x30,0x6D,0x75,0xB1,0xD5,0xDD,0xF0,0xFD,0xF5,
- 0xF9,0x9D,0xCC,0x0D,0x3D,0xCD,0xC9,0x01,0x00};
- uchar code SET_DISPLAY[] = {0x80,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F};
- void start()
- {
- DIN = 1;
- SCLK = 1;
- _nop_();
- _nop_();
- DIN = 0;
- _nop_();
- _nop_();
- SCLK = 0;
- _nop_();
- _nop_();
- }
- void stop()
- {
- DIN = 0;
- SCLK = 1;
- _nop_();
- _nop_();
- DIN = 1;
- _nop_();
- _nop_();
- SCLK = 0;
- _nop_();
- _nop_();
- }
- void write(uchar date)
- {
- uchar i;
- DIN = 0;
- SCLK = 0;
- for(i = 0;i < 8;i++)
- {
- SCLK = 0;
- if(date & 0x01)
- {
- DIN = 1;
- _nop_();
- _nop_();
- }
- else
- {
- DIN = 0;
- _nop_();
- _nop_();
- }
- SCLK = 1;
- date >>= 1;
- }
- SCLK = 0;
- DIN = 0;
- }
- void TM1640_INIT(void) //TM1640???
- {
- DIN = 1;
- SCLK = 1;
- start();
- write(SET_DATA_ORDER);
- stop();
- start();
- write(SET_DISPLAY[2]);
- stop();
- }
- void send(uchar address,date)//?TM1640???ADDRESS??,,DATA??
- {
- start();
- write(0xC0 | (address & 0x0F));
- write(date);
- stop();
- }
- void SX(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5,uchar A6,uchar A7,uchar A8,uchar A9,uchar A10)
- {
- send(0,display_buffer[A1/10]);
- send(1,display_buffer[A2%10]);
- send(2,display_buffer[A3]);
- send(3,display_buffer[A4]);
- send(4,display_buffer[A5/10]);
- send(5,display_buffer[A6%10]);
- send(6,display_buffer[A7]);
- send(7,display_buffer[A8]);
-
- send(8,display_buffer[A9]);
-
- send(9,display_buffer[A10]);
- }
- void main()
- {
- LED=0;
-
- TM1640_INIT();
- while(1)
- {
-
- RH();
- SX(U8T_data_H,U8T_data_H,17,17,U8RH_data_H,U8RH_data_H,17,17,17,17);
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
DHT11 TM1640.rar
(36.02 KB, 下載次數: 163)
2017-12-19 23:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|