欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2658|回復: 1
收起左側

深入理解單片機的串轉并IC-74HC595的工作時序及用法

[復制鏈接]
ID:532529 發表于 2020-3-1 21:42 | 顯示全部樓層 |閱讀模式
本人新手一枚,正在學51單片機,買了一塊開發板,配套的教程解釋有點錯誤,摸索了一天,把程序改了一下,更能方便理解單片機的串轉并IC-74HC595的工作時序及用法
(74HC595的規格書及8*8LED點陣模塊電路這里省略)
程序功能:通過主程序調用發送數據的子函數,發送了兩個數據,分別點亮LED陣列的第一列的底下一個LED和頂上的七個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;
//sbit LED1=P0^6;
/********************************************************************
***********
* 函 數 名 : Hc595SendByte(u8 dat1,u8 dat2)
* 函數功能 : 通過 595 發送 2 個字節的數據
* 輸 入 : dat1:第 2 個 595 輸出數值
* * dat2: 第 1 個 595 輸出數值
* 輸 出 : 無
*********************************************************************
**********/
void Hc595SendByte(u8 dat1,u8 dat2)
{
u8 a;
u16 b;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //發送 8 位數
{
SER = dat1 >> 7; //從最高位開始發送
dat1 <<= 1;
SRCLK = 0; //發送時序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;               
for(b=0;b<65535;b++){} //加入延時,方便在開發板上看清HC595發送第一個數據時,點亮的LED
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //發送 8 位數
{
SER = dat2 >> 7; //從最高位開始發送
dat2 <<= 1;
SRCLK = 0; //發送時序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
for(b=0;b<65535;b++){} // 加入延時,方便在開發板上看清看清HC595發送第一個數據時,點亮的LED
}
/********************************************************************
***********
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*********************************************************************
**********/
void main()
{ LED=0; //使第一列為低電平。
while(1)
{
Hc595SendByte(0x01,0xfe);
}
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:103667 發表于 2020-3-2 08:43 | 顯示全部樓層
新手正在學習,很有幫助。感謝樓主分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表