久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于單片機DS3231數據寫入與讀出后數碼管卡住的問題
[打印本頁]
作者:
zhengaohui
時間:
2018-11-30 19:06
標題:
關于單片機DS3231數據寫入與讀出后數碼管卡住的問題
盡量都注釋了,希望各位大佬幫我看看,原本如果沒有讀和寫的話,tm1637數碼管中間兩個小點應該是要閃的,但是一旦讀/寫了,就會不閃,卡主,不知道為什么,還是我的語言邏輯錯了或者語法錯了,麻煩各位大佬幫我看看。
單片機DS3231源碼:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit SCL=P1^2; //clk
sbit SDA=P1^3; //dio 這是數碼TM1637的定義引腳
int sec10=0;//十位的秒
int sec=0;//個位的秒
int min10=0;//十位的分
int min=0;//個位的分
sbit scl=P1^0;
sbit sda=P1^0;//這是ds3231的定義引腳
void delay10ms()
{
int a,b;
for(a=50;a>0;a--)
for(b=200;b>0;b--);
}
void delay()
{
;;
}
void nack()//3231空應答信號
{
scl=1;
delay();
sda=1;
scl=0;
delay();
}
void start()//3231開始信號
{
sda=1;
scl=1;
delay();
sda=0;
delay();
}
void stop()//3231停止
{
sda=0;
scl=1;
delay();
sda=1;
delay();
}
void ack()//3231管應答
{
uchar i;
scl=1;
delay();
while((sda==1)&&i<520)
i++;
scl=0;
delay();
}
void write_byte(uchar date)//3231寫一個字節
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
}
unsigned char read_byte()//3231讀一個字節
{
uchar i,j,k;
scl=0;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
j=sda;
k=(k<<1)|j;
scl=0;
delay();
}
return k;
}
void write_at24c32(uchar address,uchar date)//3231指定地址寫
{
start();
write_byte(0x57);
ack();
write_byte(address);
ack();
write_byte(date);
ack();
stop();
}
uchar read_at24c32(uchar address)//3231指定地址讀
{
uchar date;
write_byte(0x56);
ack();
write_byte(address);
ack();
start();
write_byte(0x57);
ack();
date=read_byte();
nack();
stop();
return date;
}
void IIC_delay(void)
{
unsigned char i;
for(i=0;i<20;i++) _nop_();
}
void start_IIC(void) //數碼管開始信號
{
SCL=1; //給芯片發送開始信號
SDA=1;
IIC_delay();
SDA=0;
IIC_delay();
SCL=0; //開始信號傳送完
IIC_delay();
}
void stop_IIC(void) //數碼管結束信號
{
SCL=0;
IIC_delay();
SDA=0;
IIC_delay();
SCL=1;
IIC_delay();
SDA=1;
}
void ack_IIC() //數碼管應答信號
{
SCL=0;
_nop_();_nop_();_nop_();
while(SDA);
SCL=1;
_nop_();_nop_();_nop_();
SCL=0;
}
void WriteByte(unsigned char WriteData) //數碼管寫信號
{
unsigned char i;
for(i=0;i<8;i++)//開始傳送8位數據,每循環一次傳送一位數據
{
SCL=0;
IIC_delay();
WriteData=WriteData>>1;
SDA=CY;
IIC_delay();
SCL=1;
IIC_delay();
}
//8位數據傳送完
ack_IIC(); //判斷芯片發過來的ACK應答信號
}
void write_LEDSROM(unsigned char addr,unsigned char WData) //數碼管指定地址
{
start_IIC(); //調用開始信號
WriteByte(addr); //寫起始地址命令(C0H),地址00H單元。
WriteByte(WData);//給顯示寄存器寫顯示數據,值可根據實參改變
stop_IIC(); //調用結束信號,一個字節命令發送完畢,可以發送下一個命令
}
void xsled(void)
{
SDA=1;
SCL=1;
start_IIC(); //調用開始信號
WriteByte(0x40);//寫命令40H(數據設置)
stop_IIC(); //調用結束信號,一個字節命令發送完畢,可以發送下一個命令
write_LEDSROM(0xC0,min10); //第一個數碼管
write_LEDSROM(0xC1,min|0x80); //第二個數碼管0x80控制中間小點點
delay10ms(); delay10ms(); delay10ms();//小點閃爍
write_LEDSROM(0xC1,min); //第二個數碼管
delay10ms(); delay10ms(); delay10ms();//小點閃爍
write_LEDSROM(0xC2,sec10); //第三個數碼管
write_LEDSROM(0xC3,sec);//第四個數碼管
IIC_delay();
start_IIC(); //調用開始信號
WriteByte(0x8f); //送開屏命令,(8BH),亮度可以根據低三位調節。//顯示亮度
stop_IIC(); //調用結束信號,一個字節命令發送完畢,可以發送下一個命令
}
void main()
{
write_at24c32(0x00,1);//將0000 0001寫入3231的0x00(秒位)
while(1)
{ sec=read_at24c32(0x00);//讀取賦值給sec
xsled();
}
}
復制代碼
作者:
ssk7793
時間:
2018-11-30 21:23
建議你在論壇搜索TM1637,看看人家的貼子,對比一下
作者:
閆Sir
時間:
2018-11-30 22:36
一般人看完代碼眼睛都累得不行了
建議還是多看看網上的成功例程 加油
作者:
angmall
時間:
2018-11-30 23:12
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit SCL=P1^2; //clk
sbit SDA=P1^3; //dio 這是數碼TM1637的定義引腳
int sec10=0;//十位的秒
int sec=0;//個位的秒
int min10=0;//十位的分
int min=0;//個位的分
sbit scl=P1^0;
sbit sda=P1^0;//這是ds3231的定義引腳
<----- 紅字這里錯了
作者:
zhengaohui
時間:
2018-12-1 07:28
angmall 發表于 2018-11-30 23:12
#include
#include
#define uint unsigned int
佩服!
作者:
zhengaohui
時間:
2018-12-1 21:22
angmall 發表于 2018-11-30 23:12
#include
#include
#define uint unsigned int
我能加你個QQ微信嗎?問你問題方便點QQ1767427476
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美一级一
|
超碰日本
|
国产欧美在线一区二区
|
欧美精品一区三区
|
国产在线观看一区二区
|
黄色片在线免费看
|
国产欧美一区二区三区日本久久久
|
日本韩国电影免费观看
|
色888www视频在线观看
|
亚洲成人精品
|
日韩五月天
|
毛片入口
|
国精日本亚洲欧州国产中文久久
|
欧美日韩国产不卡
|
欧美在线观看黄色
|
天天草天天射
|
亚洲欧美另类在线观看
|
天天干天天爱天天爽
|
欧美日韩亚洲系列
|
黑人精品欧美一区二区蜜桃
|
一级欧美
|
在线免费看黄
|
国产成人午夜电影网
|
欧美日韩一区二区在线观看
|
亚洲一区综合
|
日韩日韩日韩日韩日韩日韩日韩
|
男女视频在线看
|
精久久
|
日韩在线观看一区
|
中国一级大毛片
|
亚洲一区播放
|
精品国产欧美一区二区三区不卡
|
国产精品99视频
|
久久999
|
色综合天天天天做夜夜夜夜做
|
麻豆久久久9性大片
|
在线91
|
色橹橹欧美在线观看视频高清
|
久久久久国产一区二区三区四区
|
av网址在线
|
日韩欧美在线一区
|