單片機(jī)c語(yǔ)言源程序:
/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name : 74LS165.C
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【編譯環(huán)境】: Keil μVisio4
* 【程序功能】:
* 【使用說(shuō)明】:
** -----------------------------------------------------------------------------------------------------
** 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設(shè)置
sbit QH = P3^0; //輸出端
sbit CLK = P3^1; //時(shí)鐘輸入端(上升沿有效)
sbit SPL = P3^2; //移位控制/置入控制(低電平有效)
/********************************************************************************************************
* Description : 接收數(shù)據(jù)
* Input : None
* Output : None
* Return : None
********************************************************************************************************/
uint read_int165(void)
{
uchar i = 0;
uint read_data = 0;
SPL = 0; //置數(shù),讀入并行輸入口數(shù)據(jù)
_nop_();
SPL = 1; //移位,并口輸入被封鎖,串行轉(zhuǎn)換開(kāi)始
_nop_();
for(i=0;i《16;i++) //16位數(shù)據(jù)
{
read_data 《《= 1;
if(QH)
{
read_data|=QH;
}
CLK=0; //下降沿
_nop_();
CLK=1; //上升沿
_nop_();
}
return read_data;
}
/********************************************************************************************************
* Function Name : main
* Description : 主函數(shù)
* 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; //接收到的字節(jié)顯示在P0 端口,顯示的值與撥碼開(kāi)關(guān)對(duì)應(yīng)
P1=tempL; //接收到的字節(jié)顯示在P1 端口,顯示的值與撥碼開(kāi)關(guān)對(duì)應(yīng)
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
74ls165相關(guān)文章:
74ls165應(yīng)用電路圖大全(三款74ls165應(yīng)用電路)
74ls165中文資料匯總(74ls165引腳圖及功能_工作原理及應(yīng)用電路)
74ls165相關(guān)下載:
評(píng)論
查看更多