?? hc595.c
字號:
#include "includess.h"
//--------------------寫I/O口擴展芯片HC595函數------------------------
void write_to_595(unsigned int shiftdata, unsigned char switch_order)
{
unsigned char i;
unsigned int j;
for (i=0; i<16; i++) //將2字節數據轉移進HC595的移位寄存器中
{
if ((shiftdata & 0x8000) == 0)
{
PORTB = PortB50;
}
else
{
PORTB = PortB51;
}
shiftdata <<= 1; //數據左移一位
Delay(10); //延時135ns
PORTB = PortB41; //SRCLK為高電平,數據轉移進HC595的移位寄存器中
Delay(10); //延時135ns
PORTB = PortB40; //SRCLK為低電平
}
// Delay(10);
if (switch_order == 1) //先高8位輸出,再低八位輸出(先開射頻開關,再開功放開關)
{
PORTE = PortE31; //RCLK為高電平,數據從移位寄存器中轉移到存儲器并輸出
Delay(10);
PORTE = PortE30;
for (j = 0; j < 30000; j++)
{
Delay(30); //先設置射頻開關,再設置功放開發,延時
}
PORTB = PortB61; //RCLK為高電平,數據從移位寄存器中轉移到存儲器并輸出
Delay(10);
PORTB = PortB60; //RCLK為低電平
}
else if (switch_order == 2) //先低8位輸出,再高八位輸出(先關功放開關,再關射頻開關)
{
PORTB = PortB61; //RCLK為高電平,數據從移位寄存器中轉移到存儲器并輸出
Delay(10);
PORTB = PortB60;
for (j = 0; j < 30000; j++)
{
Delay(30); //先設置射頻開關,再設置功放開發,延時
}
PORTE = PortE31; //RCLK為高電平,數據從移位寄存器中轉移到存儲器并輸出
Delay(10);
PORTE = PortE30; //RCLK為低電平
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -