0.png (56.51 KB, 下載次數: 110)
下載附件
2016-10-19 19:53 上傳
所有資料打包下載:
74LS165測試版本.zip
(87.81 KB, 下載次數: 52)
2016-10-19 19:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
小弟在網上苦尋級聯程序都不得,好不容易找到了,結果測試不能用,于是自己做了個,希望各位下載后,能夠繼續將自己的上傳,大家共同進步,以下程序和仿真都是我親自完成,如有不解可聯系本人,412489601@qq.com 不吝賜教*/
下面是proteus仿真原理圖:
QQ圖片20161019192700.jpg (236.14 KB, 下載次數: 85)
下載附件
2016-10-19 19:27 上傳
QQ圖片20161019192651.jpg (238.66 KB, 下載次數: 85)
下載附件
2016-10-19 19:27 上傳
單片機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; //移位控制/置入控制(低電平有效)
- /********************************************************************************************************
- * Function Name : read_int165
- * 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
- ********************************************************************************************************/
復制代碼 |