欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
tm1637輸出一直灰色,I2C通訊監視正常?
[打印本頁]
作者:
sillyboy
時間:
2023-6-22 23:50
標題:
tm1637輸出一直灰色,I2C通訊監視正常?
謝謝大家
作者:
wulin
時間:
2023-6-23 06:09
TM1637驅動共陽數碼管時鐘示例 仿真.rar
(879.08 KB, 下載次數: 21)
2023-6-23 06:09 上傳
點擊文件名下載附件
作者:
wulin
時間:
2023-6-23 06:18
本帖最后由 wulin 于 2023-7-1 07:58 編輯
此代碼在仿真環境TM1637 的按鍵掃描功能失敗,只好另寫按鍵掃描。但用實物測試TM1637 的按鍵掃描功能正常。
作者:
chxelc
時間:
2023-6-23 08:21
把程序和電路發出來,壇友才好幫你分析。
作者:
cnfloatleaf
時間:
2023-6-30 20:33
tm1637.c
#include <reg51.h>
#include <intrins.h>
#include "tm1637.h"
sfr P4 = 0xc0;
sfr P5 = 0xc8;
sbit SDIO = P5^5; // TM1637
sbit SDCK = P4^4;
void tm1637(unsigned char intensity2, unsigned char ledA1, unsigned char ledA2)
{
tm_start();
tm_write(0x40); // 設置寫RAM,地址自動+1
tm_stop();
_nop_();
_nop_();
_nop_();
tm_start();
tm_write(0xc0); // 設置寫RAM地址
tm_write(ledA1); // write RAM
tm_write(ledA2); // write RAM
tm_write(0); // write RAM
tm_write(0); // write RAM
tm_write(0); // write RAM
tm_write(0); // write RAM
tm_stop();
_nop_();
_nop_();
_nop_();
tm_start();
tm_write(intensity2);
tm_stop();
}
void tm_start(void)
{
SDIO = 1;
SDCK = 1;
DL1uS(3);
SDIO = 0;
DL1uS(1);
SDCK = 0;
}
void tm_stop(void)
{
SDIO = 0;
SDCK = 0;
DL1uS(3);
SDCK = 1;
DL1uS(3);
SDIO = 1;
}
void tm_write(unsigned char x2)
{
unsigned char i2;
for(i2=0; i2<8; i2++)
{
SDCK = 0;
if((1&x2) == 0)
{ SDIO = 0; }
else
{ SDIO = 1; }
DL1uS(1);
SDCK = 1;
x2 = x2 >> 1;
}
SDCK = 0;
DL1uS(1);
while(SDIO == 1);
DL1uS(1);
SDCK = 1;
}
unsigned char tm1637_key(void)
{
unsigned char i2,k2;
tm_start();
tm_write(0x42);
SDIO = 1;
k2 = 0;
for(i2=0; i2<8; i2++)
{
SDCK = 0;
k2 = k2 >> 1;
DL1uS(1);
SDCK = 1;
if(SDIO == 1)
{ k2 = k2 | 0x80; }
DL1uS(1);
}
SDCK = 0;
DL1uS(1);
while(SDIO == 1);
DL1uS(1);
SDCK = 1;
DL1uS(1);
tm_stop();
return k2;
}
void DL1uS(unsigned char z2)
{ // 1T 22.1184MHz 1uS*(z2+1) STC8A8K tested
unsigned char x2,y2;
for(x2=0; x2<z2; x2++)
{
for(y2=0; y2<2; y2++)
{ }
}
_nop_();
}
tm1637.h
#define _TM1637_H
void tm1637(unsigned char intensity2, unsigned char ledA1, unsigned char ledA2);
void tm_start(void);
void tm_stop(void);
void tm_write(unsigned char x2);
unsigned char tm1637_key(void);
void DL1uS(unsigned char z2);
這里是tm1637.c和tm1637.h文件,只用了2個數碼管,顯示和按鍵都是測試過的。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1