單片機c語言源程序:
/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name : 74LS165.C
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【編譯環境】: Keil μVisio4
* 【程序功能】:
* 【使用說明】:
** -----------------------------------------------------------------------------------------------------
** Author : Creavalia
** Date : 2015年10月19日
** -----------------------------------------------------------------------------------------------------
** Modify Person:
** Modify Date :
** Description :
*********************************************************************************************************/
// Includes --------------------------------------------------------------------------------------------
#include《reg51.h》
#include《intrins.h》
/********************************************************************************************************
** Marcos define
*********************************************************************************************************/
#define uint unsigned int
#define uchar unsigned char
//IO設置
sbit QH = P3^0; //輸出端
sbit CLK = P3^1; //時鐘輸入端(上升沿有效)
sbit SPL = P3^2; //移位控制/置入控制(低電平有效)
/********************************************************************************************************
* Description : 接收數據
* Input : None
* Output : None
* Return : None
********************************************************************************************************/
uint read_int165(void)
{
uchar i = 0;
uint read_data = 0;
SPL = 0; //置數,讀入并行輸入口數據
_nop_();
SPL = 1; //移位,并口輸入被封鎖,串行轉換開始
_nop_();
for(i=0;i《16;i++) //16位數據
{
read_data 《《= 1;
if(QH)
{
read_data|=QH;
}
CLK=0; //下降沿
_nop_();
CLK=1; //上升沿
_nop_();
}
return read_data;
}
/********************************************************************************************************
* Function Name : main
* Description : 主函數
* Input : None
* Output : None
* Return : None
********************************************************************************************************/
void main()
{
//初始化
uint temp = 0;
uchar tempH = 0;
uchar tempL = 0;
CLK=0;
while(1)
{
temp = read_int165();
//獲取高8位,存放置tempH
tempH = (uchar) (temp》》8);
//獲取低8位,存放置tempL
tempL = (uchar) temp;
P0=tempH; //接收到的字節顯示在P0 端口,顯示的值與撥碼開關對應
P1=tempL; //接收到的字節顯示在P1 端口,顯示的值與撥碼開關對應
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
74ls165相關文章:
74ls165中文資料匯總(74ls165引腳圖及功能_工作原理及應用電路)
74ls165相關下載:
評論
查看更多