曲達科技所有標準HMI 產品均采用異步、全雙工串口(UART),串口模式為8n1,即每個數據傳送采用10個位:1 個起始位,8 個數據位(低位在前傳送,lsb),1 個停止位。 上電時,如果終端的I/O0 引腳為高電平或者浮空狀態,串口波特率由用戶預先設置,范圍為1200-115200bps ,具體設置方法參考0xE0 指令。
上傳時間: 2013-11-07
上傳用戶:蘇蘇蘇蘇
自動檢測80C51串行通訊中的波特率:本文介紹一種在80C51 串行通訊應用中自動檢測波特率的方法。按照經驗,程序起動后所接收到的第1 個字符用于測量波特率。這種方法可以不用設定難于記憶的開關,還可以免去在有關應用中使用多種不同波特率的煩惱。人們可以設想:一種可靠地實現自動波特檢測的方法是可能的,它無須嚴格限制可被確認的字符。問題是:在各種的條件下,如何可以在大量允許出現的字符中找出波特率定時間隔。顯然,最快捷的方法是檢測一個單獨位時間(single bit time),以確定接收波特率應該是多少。可是,在RS-232 模式下,許多ASCII 字符并不能測量出一個單獨位時間。對于大多數字符來說,只要波特率存在合理波動(這里的波特率是指標準波特率),從起始位到最后一位“可見”位的數據傳輸周期就會在一定范圍內發生變化。此外,許多系統采用8 位數據、無奇偶校驗的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節不會有MSB 設定,并且,UART總是先發送數據低位(lsb),后發送數據高位(MSB),我們總會看見數據的停止位。在下面的波特率檢測程序中,先等待串行通訊輸入管腳的起始信號(下降沿),然后起動定時器T0。在其后的串行數據的每一個上升沿,將定時器T0 的數值捕獲并保存。當定時器T0溢出時,其最后一次捕獲的數值即為從串行數據起始位到最后一個上升沿(我們假設是停止位)過程所持續的時間。
上傳時間: 2014-08-22
上傳用戶:dajin
16 16點陣顯示漢字原理及顯示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define DOTLED_LINE_PIN PINB #define DOTLED_LINE_SCKT PB1 #define DOTLED_LINE_SCKH PB5 #define DOTLED_LINE_SDA PB3 #define DOTLED_ROW_PORT PORTC #define DOTLED_ROW_DDR DDRC #define DOTLED_ROW_PIN PINC #define DOTLED_ROW_A0 PC0 #define DOTLED_ROW_A1 PC1 #define DOTLED_ROW_A2 PC2 #define DOTLED_ROW_A3 PC3 #define DOTLED_ROW_E PC4 uint8 font[] = { /*-- 調入了一幅圖像:這是您新建的圖像 --*/ /*-- 寬度x高度=16x16 --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) { uint8 i; for(i = 0 ; i < 8 ; i ++) { if(byte & (1 << i)) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); } else { DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA); } //__delay_cycles(100); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH); //__delay_cycles(100); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH); //__delay_cycles(100); } } static void SelectRow(uint8 row) { //row -= 1; row |= DOTLED_ROW_PIN & 0xe0; DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) { DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH)); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA); DOTLED_ROW_PORT |= 0x1f; DOTLED_ROW_PORT &= 0xf0; DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) { if(IsEnable) { DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E); } else { DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E); } } void PrintDotLed(uint8 * buffer) { uint8 i , tmp; for(i = 0 ; i < 16 ; i ++) { tmp = *buffer ++; TransmitByte(~tmp); tmp = *buffer ++; TransmitByte(~tmp); SelectRow(i); FlipLatchLine(); } } void main(void) { InitDotLedPort(); EnableRow(TRUE); while(1) { PrintDotLed(font); __delay_cycles(5000); } } //---------------------------------------------------- config.h文件 #ifndef _CONFIG_H #define _CONFIG_H //#define GCCAVR #define CPU_CYCLES 7372800L #ifndef GCCAVR #define _BV(bit) (1 << (bit)) #endif #define MSB 0x80 #define lsb 0x01 #define FALSE 0 #define TRUE 1 typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef unsigned char boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----
上傳時間: 2013-11-18
上傳用戶:mnacyf
本文以對步伐特征的研究為基礎,描述一個采用3軸加速度計ADXL345的全功能計步器參考設計,它能辨別并計數步伐,測量距離、速度甚至所消耗的卡路里。 ADXL345專有的(正在申請專利)片內32級先進先出(FIFO)緩沖器可以存儲數據,并執行計步器應用的相關操作,從而最大程度地減少主處理器干預,為便攜式設備節省寶貴的系統功率。其13位分辨率(4 mg/lsb)甚至允許計步器以合理的精度測量超低速步行(每步加速度變化約55 mg)。
上傳時間: 2013-12-22
上傳用戶:wff
ADXL345是ADI公司生產的一款超低功耗3軸加速度計,廣泛應用于手機、醫療儀器、游戲和定點設備、工業儀器儀表及個人導航設備領域,他的分 辨率高達13位,測量范圍達± 16g。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數字接口訪問。ADXL345非常適合移動設備應用。它可以在傾斜檢測 應用中測量靜態重力加速度,還可以測量運動或沖擊導致的動態加速度。其高分辨率(3.9mg/lsb),能夠測量不到1.0°的傾斜角度變化。該器件提供 多種特殊檢測功能。活動和非活動檢測功能通過比較任意軸上的加速度與用戶設置的閾值來檢測有無運動發生。敲擊檢測功能可以檢測任意方向的單振和雙振動作。 自由落體檢測功能可以檢測器件是否正在掉落。這些功能可以獨立映射到兩個中斷輸出引腳中的一個。正在申請專利的集成式存儲器管理系統采用一個32級先進先 出(FIFO)緩沖器,可用于存儲數據,從而將主機處理器負荷降至最低,并降低整體系統功耗。低功耗模式支持基于運動的智能電源管理,從而以極低的功耗進 行閾值感測和運動加速度測量。
上傳時間: 2013-11-07
上傳用戶:moerwang
This unit uses an array of bytes to represent a LARGE number. The number is binairy-stored in the array, with the Least Significant Byte (lsb) first and the Most Significant Byte (MSB) last, like all Intel-integer types.
標簽: number binairy-stored represent LARGE
上傳時間: 2015-10-08
上傳用戶:xieguodong1234
1. 對給定語料估計其基音周期。 要求用MATLAB語言實現有關基音檢測算法,并給出檢測結果。2. 實驗語料:aoYiSheng.raw 發音:“茅以升”;時長0.9s;采樣率:8kHz;量化精度為16bits/sample;數據格式 lsb,MSB分析幀長:20ms(160樣點)總幀數:45
上傳時間: 2014-12-01
上傳用戶:z754970244
一個實用的水印加密解密程序,基于lsb算法
上傳時間: 2016-05-21
上傳用戶:lo25643
利用difference expansion水印隱藏! 方法是利用Haar整數變換,或是S變換在lsb里隱藏水印信息
標簽: difference expansion Haar 水印
上傳時間: 2014-09-03
上傳用戶:libenshu01
基于Matlab實現了各種數字圖像水印,包括小波變換、lsb等
上傳時間: 2016-07-14
上傳用戶:hoperingcong