三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
載波相移正弦脈寬調制(SPWM)技術是一種適用于大功率電力開關變換裝置的高性能開關調制策略,在有源電力濾波器中有良好的應用前景。本文介紹了如何利用高性能數字信號處理器TMS320F28335的片內外設事件管理器(EV)模塊產生三相SPWM波,給出了程序流程圖及關鍵程序源碼。該方法采用不對稱規則采樣算法,參數計算主要采用查表法,計算量小,實時性高。在工程實踐中表明,該方法既能滿足控制精度要求,又能滿足實時性要求,可以很好地控制逆變電源的輸出。
上傳時間: 2013-11-05
上傳用戶:tzrdcaabb
超級單片機開發工具,包含:模擬/數字轉換表計算,LED 編碼器,色環電阻阻值計算,Hex/Bin轉換,串口調試器,端口監視器等實用功能 單片機開發過程中用到的多功能工具,包括熱敏電阻RT值--HEX數據轉換;3種LED編碼;色環電阻計算器;HEX/BIN 文件互相轉換;eeprom數據到C/ASM源碼轉換;CRC校驗生成;串口調試,帶簡單而實用的數據分析功能;串口/并口通訊監視等功能. 用C++ Builder開發,無須安裝,直接運行,不對注冊表進行操作。純綠色軟件。 1. 模擬/數字轉換表計算 本功能主要用于準備用于查表計算的 R/T 表格,主要用于溫度、濁度等模擬量的測量,根據電路分壓電阻的位置分為兩種,可以參看圖示選擇正確的電路連接形式;可自定義分壓電阻阻值;目前支持8位 /10位轉換精度;可選擇生成匯編/C源代碼格式的數據等。 2. LED 編碼器 本功能主要用于自動根據圖形信息、段位置信息生成可保存在單片機程序存儲器中供查表使用的數據??勺孕卸x字符的圖形及各段的位置信息;可以選擇LED類型,目前有 7段、14段、16段三種類型;自帶圖形定義,也可自定義并能保存自定義方案;自定義位置信息并可保存;可以生成 8位、4位編碼,4位編碼主要針對一些有 4個COM端的LED/LCD驅動器;同樣可以保存為C/ASM格式數據。 3. 色環電阻阻值計算 本功能主要為記不住色環值的人(像我)用的,比較簡單,單擊相應環的相應顏色,阻值將實時給出。 4. Hex/Bin轉換 Intel Hex格式文件和Bin格式文件相互轉換,本功能使用機會較少。 Hex/Bin文件轉換為文本方式(變量定義方式),將Hex文件或Bin文件轉換為C/ASM源代碼格式的數據。 CRC計算,提供3種計算方法。 5. 串口調試器 可以通過串口接收/發送數據,作為普通的串口調試器,可以手動發送所填內容,也可以發送整個文件; 內存映射功能,對于監控單片機內存非常方便,還可以定義內存變量,自動從接收到的數據中提取變量值,支持字節型、整型、長整型、浮點型、雙精度型、位掩碼(可用于位變量)、數組型(其他不規則變量)等,同時支持10進制、16進制、2進制顯示;可以自由選擇需要實時監測的變量;變量方案可以存盤等等;可以設為固定長度或定義首/尾標志,設置內存中實際起始地址,顯示時和計算變量時用;由map文件自動讀取內存變量(因條件所限,目前只支持由 ImageCraft C(ICC) 編譯器產生的map文件,歡迎提供其他編譯器的map文件樣本); 變量組合,適用于文本方式的變量監測,例如: Var1=1111#var2=2222#var3=333.333 通訊時可以選擇二進制、文本方式顯示;可設置自動滾屏;設置最大顯示行數; 可以選擇多命令交互方式通訊,且可以作為主發方、從發方;主發時可以循環發送所選命令;從發時可以定義自動應答命令,即接收到表中所列的命令后,自動用相應內容應答,是不是很實用? 可以設為手動發送或定時發送。 可自定義通訊超時時間。 可以保存歷史數據,包括發送和接收數據! 計劃加入調制解調器控制。 6. 端口監視器 監視所選串口/并口的一切通訊活動而不占用其資源,可以設置過濾條件,可同時監視多個端口,可以保存數據,可以直接記錄到文件中。
上傳時間: 2013-10-13
上傳用戶:大灰狼123456
超級單片機開發工具,包含:模擬/數字轉換表計算,LED 編碼器,色環電阻阻值計算,Hex/Bin轉換,串口調試器,端口監視器等實用功能 單片機開發過程中用到的多功能工具,包括熱敏電阻RT值--HEX數據轉換;3種LED編碼;色環電阻計算器;HEX/BIN 文件互相轉換;eeprom數據到C/ASM源碼轉換;CRC校驗生成;串口調試,帶簡單而實用的數據分析功能;串口/并口通訊監視等功能. 用C++ Builder開發,無須安裝,直接運行,不對注冊表進行操作。純綠色軟件。 1. 模擬/數字轉換表計算 本功能主要用于準備用于查表計算的 R/T 表格,主要用于溫度、濁度等模擬量的測量,根據電路分壓電阻的位置分為兩種,可以參看圖示選擇正確的電路連接形式;可自定義分壓電阻阻值;目前支持8位 /10位轉換精度;可選擇生成匯編/C源代碼格式的數據等。 2. LED 編碼器 本功能主要用于自動根據圖形信息、段位置信息生成可保存在單片機程序存儲器中供查表使用的數據??勺孕卸x字符的圖形及各段的位置信息;可以選擇LED類型,目前有 7段、14段、16段三種類型;自帶圖形定義,也可自定義并能保存自定義方案;自定義位置信息并可保存;可以生成 8位、4位編碼,4位編碼主要針對一些有 4個COM端的LED/LCD驅動器;同樣可以保存為C/ASM格式數據。 3. 色環電阻阻值計算 本功能主要為記不住色環值的人(像我)用的,比較簡單,單擊相應環的相應顏色,阻值將實時給出。 4. Hex/Bin轉換 Intel Hex格式文件和Bin格式文件相互轉換,本功能使用機會較少。 Hex/Bin文件轉換為文本方式(變量定義方式),將Hex文件或Bin文件轉換為C/ASM源代碼格式的數據。 CRC計算,提供3種計算方法。 5. 串口調試器 可以通過串口接收/發送數據,作為普通的串口調試器,可以手動發送所填內容,也可以發送整個文件; 內存映射功能,對于監控單片機內存非常方便,還可以定義內存變量,自動從接收到的數據中提取變量值,支持字節型、整型、長整型、浮點型、雙精度型、位掩碼(可用于位變量)、數組型(其他不規則變量)等,同時支持10進制、16進制、2進制顯示;可以自由選擇需要實時監測的變量;變量方案可以存盤等等;可以設為固定長度或定義首/尾標志,設置內存中實際起始地址,顯示時和計算變量時用;由map文件自動讀取內存變量(因條件所限,目前只支持由 ImageCraft C(ICC) 編譯器產生的map文件,歡迎提供其他編譯器的map文件樣本); 變量組合,適用于文本方式的變量監測,例如: Var1=1111#var2=2222#var3=333.333 通訊時可以選擇二進制、文本方式顯示;可設置自動滾屏;設置最大顯示行數; 可以選擇多命令交互方式通訊,且可以作為主發方、從發方;主發時可以循環發送所選命令;從發時可以定義自動應答命令,即接收到表中所列的命令后,自動用相應內容應答,是不是很實用? 可以設為手動發送或定時發送。 可自定義通訊超時時間。 可以保存歷史數據,包括發送和接收數據! 計劃加入調制解調器控制。 6. 端口監視器 監視所選串口/并口的一切通訊活動而不占用其資源,可以設置過濾條件,可同時監視多個端口,可以保存數據,可以直接記錄到文件中。
上傳時間: 2013-10-29
上傳用戶:lacsx
軟件介紹:主要用于LED數碼管段位置信息生成,可保存在單片機程序存儲器中供查表使用的數據??勺孕行薷臄荡a管各段的位置信息;可以選擇LED類型:共陰或共陽;自定義位置信息并可保存;可以生成 8位同樣可以保存為C、ASM、PIC、EMC、數組等格式數據。
上傳時間: 2013-12-31
上傳用戶:zwei41
在《軟件加密技術》這本書里看過PE文件各部分的詳細解釋之后,我也有了一個自己寫PE文件分析器的的想法。雖然好的分析器不在少數,但對于一堆十六進制數,有些朋友可能不明白它代表什么意思。如果在程序里就可以將這些01序列轉換成可以直接看懂得信息,那至少用戶可以省去以后去查表的麻煩。懷著這樣的想法,我仔細的研究了書中分析器PEInfo的源代碼,我發現它沒有提供信息轉換的功能。 通過研究發現,PEInfo是通過PE文件在內存中的映象來獲取文件信息的,我在想是否還有別的方法可以繞過將文件映象到內存這一步,直接讀取文件信息。這樣的方法只有直接讀取磁盤上的PE文件,在磁盤上尋找所需要的文件信息。 在這里暫且不說這樣的做法和內存映象法有什么優劣,我在此僅僅只是想找尋另一條解決問題的道路,并實現之??赐晡业姆治龊驮闯绦颍蠹易匀恢朗雰炇肓印?/p>
上傳時間: 2014-01-07
上傳用戶:熊少鋒
C51實例代碼:FLASH驅動,IIC,usart,觸摸液晶控制顯示,電熱壺燒水程序,定點濾波,定時器及計數器的生成,二分法查表,浮點濾波,浮點濾波,控制SED1335的液晶顯示,軟件看門狗,十六進制_BCD碼相互轉換,時間倒計時,實時時鐘,數字時鐘,溫度芯片驅動,無線數據傳輸,以太網芯片
上傳時間: 2015-09-05
上傳用戶:hjshhyy
一、 使用鍵盤顯示接口芯片8279接收按鍵鍵值,并在七段數碼管上顯示出來,通過判斷鍵值進入相應音樂播放處理程序。在音樂播放程序中,使用定時器/計數器8253的計數器2,使其工作在方式¬ ¬ 3—方波發生器,通過查表依次取出樂曲頻率值送入計數器作為計數初值,經out2輸出方波,驅動揚聲器發出不同頻率的聲音,在每個音階之間加入相應的延遲時間,即實現了音樂的播放。
上傳時間: 2014-01-22
上傳用戶:阿四AIR
】 本文主要討論了Modbus 通信協議的R TU 幀格式中常用的錯誤校驗方法,即循環冗余校驗法( CRC) 。 提出了Modbus 協議反轉CRC 校驗的方法,推導了反轉CRC 校驗快速計算表格,并用C 語言實現了基于快速查 表算法的循環冗余校驗程序。
上傳時間: 2015-12-16
上傳用戶:498732662
采用delphi自編的sin函數傅立葉離散數據數據表生成器,正弦函數發生器查表輸出;
上傳時間: 2016-01-21
上傳用戶:1427796291