51微控制器:IO口擴充套件晶片用法(74HC165,74HC595)
IO口擴充套件晶片,主要是解決微控制器IO口太少。
74HC165:資料從並轉串
74HC595:資料從串轉並
兩種晶片,都是通過時序電路,加上移位功能,進行資料傳輸
74HC165:資料從並轉串。以下例項,實現8個獨立按鍵,控制數碼管的8段
#include <reg52.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u16; void delay( u16 i ){ while( i-- ); } #defineGPIO_DIG P0 sbit IN_SG = P1^6; sbit IN_DATA = P1^7; sbit IN_CLK = P3^6; u8 read_74HC165(){ u8 indata; u8 i; IN_SG = 0; //先置入資料 _nop_(); //等待一個機器週期 IN_SG = 1; //晶片切入 移位功能 _nop_(); indata = 0; for( i = 0; i < 8; i++ ){ //在時序電路作用下,移動8次,得到一個位元組資料 indata = indata << 1; IN_CLK = 0; _nop_(); indata |= IN_DATA; IN_CLK = 1; } return indata; } void main (){ u8 hc165_data; GPIO_DIG = 0x0; while( 1 ) { hc165_data = read_74HC165(); if( hc165_data != 0xFF ) { GPIO_DIG= ~hc165_data; } } }
74HC595:資料從串轉並,以下程式,實現流水燈效果
#include <reg52.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u16; void delay( u16 i ){ while( i-- ); } #define GPIO_DIG P0 sbit SRCLK = P3^6; //移位暫存器時鐘 sbit STORE_RCLK = P3^5; //儲存暫存器時鐘 sbit SER = P3^4; //串列埠輸入資料 void hc595_send_data( u8 input_data ) { u8 i; SRCLK = 1; STORE_RCLK = 1; for( i = 0 ; i < 8; i++ ){ SER = input_data >> 7; //從最高位開始傳送 input_data <<= 1; //把次高位移到最高位 SRCLK = 0; //時序脈衝 _nop_(); _nop_(); SRCLK = 1; } STORE_RCLK = 0; //時序脈衝 _nop_(); _nop_(); STORE_RCLK = 1; //把暫存器的資料 送到輸出口 } void main (){ u8 led_num; led_num = 0x01; //先讓D11點亮 while( 1 ) { hc595_send_data( led_num ); led_num = _crol_( led_num, 1 ); delay( 50000 ); delay( 50000 ); } }
相關推薦
51微控制器:IO口擴充套件晶片用法(74HC165,74HC595)
IO口擴充套件晶片,主要是解決微控制器IO口太少。 74HC165:資料從並轉串 74HC595:資料從串轉並 兩種晶片,都是通過時序電路,加上移位功能,進行資料傳輸 74HC165:資料從並轉串。以下例項,實現8個獨立按鍵,控制數碼管的8段 #include <reg52.h
51單片機:IO口擴展芯片用法(74HC165,74HC595)
效果 urn bit put AD NPU com 數據 輸入 IO口擴展芯片,主要是解決單片機IO口太少。 74HC165:數據從並轉串 74HC595:數據從串轉並 兩種芯片,都是通過時序電路,加上移位功能,進行數據傳輸 74HC165:數據從並轉串。以下
(學習筆記)手把手教你學51微控制器:點亮你的LED
2.1 微控制器內部資源 三大資源: Flash:程式儲存空間 RAM:資料儲存空間 SFR:特殊功能暫存器 2.2微控制器最小系統 三要素:電源、晶振、復位電路 2.3LED小燈 限流:5~20mA(限流電阻阻值計算) 自身壓降2V 2.4程式程式碼編寫
KST-51微控制器:c語言程式設計實現數碼管動態顯示秒錶的倒計時
/*60S倒計時*/ /*個位每1S變一次,從0~9*/ /*十位,個位為0的下一秒十位發生變化*/ #include<reg52.h> sbit ADDR0=P1^0; sbit ADDR1=P1^1; sbit ADDR2=P1^2; sbit ADDR3
(學習筆記)手把手教你學51微控制器:中斷與數碼管動態顯示
一、c語言的陣列 1.1陣列的基本概念 陣列是具有相同資料型別的有序資料的組合,一般來講陣列定義後滿足以下三個條件: (1)具有相同的資料型別 (2)具有相同的名字 (3)在儲存器中是被連續存放的 1.2陣列的宣告 資料型別 陣列名【陣列長度】; (1)同一個
(學習筆記)手把手教你學51微控制器:變數進階與點陣LED
一、變數的作用域 作用域:變數的有效範圍。分為:區域性變數和全域性變數。 1.1區域性變數 在函式內部宣告的變數,只在本函式內部可以使用。 1.2全域性變數 在函式外宣告的變數就是全域性變數。 二、變數的儲存類別 變數的儲存類別分為自動、靜態、暫存器和外部四種。
51微控制器:每次按S1鍵,流水燈移位演示
原理圖 //原始碼 #include <reg52.h> #include <intrins.h> //包含移位函式 #define uint unsigned
PIC微控制器之IO口對映問題
我們可以在手冊上看到管腳分佈表: 和管腳對映有關的是:RP0~RP31(雙向對映,既能夠做輸出對映也能夠作為輸入對映),共32個管腳 RPI32~RPI43(只能夠作為輸入對映,不能夠作為輸出
51微控制器實時時鐘 PCF8563時鐘晶片
實現實時時鐘,電源拔插時間不重置(內建電池供電維持時間變化)。功能有檢視日期,檢視星期,檢視鬧鐘和分別的調整時間,調整日期,調整鬧鐘,調整星期。且預設情況下不可以調整,當按下可調控鍵之後才可以調整、再次按可調控鍵關閉變為不可調整狀態。還有整點報時功能(有個小瑕疵就是鬧鐘正好是
Zigbee網路架構+ZigBee的體系結構+理解zigbee節點的實現的案例+“51微控制器” 和 “zigbee” 、 “cc2530晶片” 之間的關係+晶片cc2530
ZigBee技術具有強大的組網能力,可以形成星型、樹型和網狀網,可以根據實際專案需要來選擇合適的網路結構; 以下拓撲結構的節點,均是指支援zigbee協議的並以其通訊技術手段,實現節點處所需要功能的產品(例如,完整的電路板,參考後面)。 星形拓撲是最簡單的一種拓撲形
51微控制器:獨立按鍵與矩陣按鍵控制數碼管
一,獨立按鍵注意一下幾點 >按下的時候,電壓被拉低,所以IO口要傳低電平( 0x0 ) >按下的時候要消除抖動 ( 延時10ms ),在判斷,是否還是低電平,再做業務處理 下面這段程式,就是通過一個獨立按鍵連線到p1口,控制靜態數碼管的 一段 進行亮和滅的切換。 #include &l
51微控制器:8位數碼管動態顯示,從12345678開始,每次按S1鍵加1
原始碼 #include <reg52.h> #include <stdlib.h> #define uint unsigned long #define uchar unsigned char sbit
基於proteus的51微控制器模擬例項十、51微控制器的P0口的工作原理
微控制器系統功能實現的最基本和最主要方式是:檢測I/O埠輸入的各種資料、控制I/O埠輸出各種資料。 微控制器系統的工作過程通常是:外部電路的執行情況通過I/O埠輸入到微控制器,微控制器程式讀取輸入的資料並進行分析後,根據不同情況控制I/O埠輸出不同的資料,從而實現控制相關
使用微控制器普通IO口模擬串列埠的三種方法
隨著微控制器的使用日益頻繁,用其作前置機進行採集和通訊也常見於各種應用,一般是利用前置 機採集各種終端資料後進行處理、儲存,再主動或被動上報給管理站。這種情況下下,採集會需 要一個串列埠,上報又需要另一個串列埠,這就要求微控制器具有雙串列埠的功能,但我們知道一般的51 系列只提供一個串列埠,那麼另一
微控制器擴充套件IO口
微控制器如何擴充套件IO口? 首先我們先講講為什麼要擴充套件IO口。在我們使用51微控制器的時候,有時候會出現IO口不夠用的情況。比如鍵盤!這個時候IO口的資源就十分有限了。 按鍵是我們常用的器件,做
51微控制器---IO口 (準雙向口和雙向口的區別)
P0口:雙向8位三態I/O口P1口:準雙向8位I/O口P2口:準雙向8位I/O口P3口:準雙向8位I/O口這裡特別要主要準雙向與雙向三態I/O的區別:P1口,P2口,P3口是3個8位準雙向的I/O口,各口線在片內均有固定的上拉電阻,當這三個準雙向I/O口作輸入口使用時,要想該口先寫1,另外準雙向I/O口無高阻
C語言控制51微控制器 sbit 與 sfr 的用法(keil擴充套件指令 )
1. SBIT Assembler Statement (keil 中 help 的說明) Arguments sbit sfr_symbol = bit-address; Description The sbit statement def
51微控制器的時鐘及匯流排時序和匯流排擴充套件
說到51微控制器的時鐘首先想到51時怎麼工作的呢?微型控制器要想工作必須要有一個“動力”,對於51微控制器來說,這個“動力”就是時鐘源。一般應用上會外接一個12MHz的晶振作為時鐘源。 一般第一種接法用的比較多。選擇內部震盪方式時晶振旁邊有兩個小電容。這
C#:檔案IO操作 FileStream的用法 及 StreamReader 和 StreamWriter的用法
1. FileStream 用法程式碼 static void Main(string[] args) { //memory : 記憶體 //Binary : 二進位制 String path = @"F:\ly\tes
深入解讀微控制器IO口模擬IIC程式設計
在微控制器的開發過程中,經常會使用IIC介面連線外部感測器獲得相應的資料。一旦我們的IIC介面數目較多而微控制器固有的IIC介面不夠的情況,這時一個微控制器普通IO口模擬IIC的做法可以解決我們的尷尬。這篇部落格詳細的介紹STM32F103的IO口模擬IIC的詳細做法。