欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機Led點陣(點亮第1個)實驗遇到問題
[打印本頁]
作者:
喔耶
時間:
2020-3-3 22:49
標題:
單片機Led點陣(點亮第1個)實驗遇到問題
代碼如下,就是改變這Hc595SendByte(0xfe,0x01)兩個值的時候,LED點陣上亮的燈都是不變的,總是在點陣的左下方那個位置亮,為什么會這樣?感謝大佬的幫助。
#include "reg51.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
//--定義使用的IO口--//
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
sbit LED=P0^7;
/*******************************************************************************
* 函 數 名 : Hc595SendByte(u8 dat1,u8 dat2)
* 函數功能 : 通過595發(fā)送2個字節(jié)的數據
* 輸 入 : dat1:第2個595輸出數值
* * dat2: 第1個595輸出數值
* 輸 出 : 無
*******************************************************************************/
void Hc595SendByte(u8 dat1,u8 dat2)
{
u8 a;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //發(fā)送8位數
{
SER = dat1 >> 7; //從最高位開始發(fā)送
dat1 <<= 1;
SRCLK = 0; //發(fā)送時序
_nop_();
_nop_();
SRCLK = 1;
}
for(a=0;a<8;a++) //發(fā)送8位數
{
SER = dat2 >> 7; //從最高位開始發(fā)送
dat2 <<= 1;
SRCLK = 0; //發(fā)送時序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{ //使第一列為低電平。
LED=0;
while(1)
{
Hc595SendByte(0xfe,0x01);
}
}
作者:
csmyldl
時間:
2020-3-4 13:43
因為這個函數Hc595SendByte沒有真正把相應的數據送到HC595輸出
作者:
喔耶
時間:
2020-3-17 09:30
csmyldl 發(fā)表于 2020-3-4 13:43
因為這個函數Hc595SendByte沒有真正把相應的數據送到HC595輸出
那么怎么才算是真正的輸出啊其實這個函數配套資料講解視頻里他講了一個例子
作者:
carpcarey
時間:
2020-3-17 12:33
/*******************************************************************************
* 函 數 名 : Hc595SendByte(u8 dat1,u8 dat2)
* 函數功能 : 通過595發(fā)送2個字節(jié)的數據
* 輸 入 : dat1:第2個595輸出數值
* * dat2: 第1個595輸出數值
* 輸 出 : 無
*******************************************************************************/
void Hc595SendByte(u8 dat1,u8 dat2)
{
u8 a;
SRCLK = 0;
RCLK = 0;
for(a=0;a<8;a++) //發(fā)送8位數
{
SRCLK = 0; //發(fā)送時序
SER = dat1 >> 7; //從最高位開始發(fā)送
SRCLK = 1;
dat1 <<= 1;
}
for(a=0;a<8;a++) //發(fā)送8位數
{
SRCLK = 0; //發(fā)送時序
SER = dat2 >> 7; //從最高位開始發(fā)送
SRCLK = 1;
dat2 <<= 1;
}
SRCLK = 0;
RCLK = 0;
RCLK = 1;
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1