亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

高級(jí)數(shù)據(jù)鏈路控制

  • RD系列微型打印機打印實例

    C51控制并口打印機實例:/* 沈陽新榮達電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機 BUSY 接P1.2sbit STB = P1^0; //打印機 STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機忙,等待BUSY 為0 再發數data_8=j;STB=0;i++;i--;STB=1; //給出數據鎖存時鐘BUSY=1;}void main(void){BUSY = 1; //忙信號置高STB = 1; //選通信號置高print(0x1b); //打印機初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發送漢字內碼“新榮達”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}

    標簽: 微型打印機 打印

    上傳時間: 2013-11-13

    上傳用戶:lwq11

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-08

    上傳用戶:dingdingcandy

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-23

    上傳用戶:mqien

  • 7400 2輸入端四與非門 7401 集電極開路2輸入端四與非門 7402 2輸入端四或非門 7403 集電極開路2輸入端四與非門 7404 六反相器 7405 集電極開路六反相器

    7400 2輸入端四與非門 7401 集電極開路2輸入端四與非門 7402 2輸入端四或非門 7403 集電極開路2輸入端四與非門 7404 六反相器 7405 集電極開路六反相器 7406 集電極開路六反相高壓驅動器 7407 集電極開路六正相高壓驅動器 7408 2輸入端四與門 7409 集電極開路2輸入端四與門 7410 3輸入端3與非門 74107 帶清除主從雙J-K觸發器 74109 帶預置清除正觸發雙J-K觸發器 7411 3輸入端3與門 74112 帶預置清除負觸發雙J-K觸發器 7412 開路輸出3輸入端三與非門 74121 單穩態多諧振蕩器 74122 可再觸發單穩態多諧振蕩器 74123 雙可再觸發單穩態多諧振蕩器 74125 三態輸出高有效四總線緩沖門 74126 三態輸出低有效四總線緩沖門 7413 4輸入端雙與非施密特觸發器 74132 2輸入端四與非施密特觸發器 74133 13輸入端與非門 74136 四異或門 74138 3-8線譯碼器/復工器 74139 雙2-4線譯碼器/復工器 7414 六反相施密特觸發器 74145 BCD—十進制譯碼/驅動器 7415 開路輸出3輸入端三與門 74150 16選1數據選擇/多路開關 74151 8選1數據選擇器 74153 雙4選1數據選擇器 74154 4線—16線譯碼器

    標簽: 輸入端 7400 7401 7402

    上傳時間: 2014-01-10

    上傳用戶:jackgao

  • 長高44b0xi BIOS源碼 FS44B0II BIOS具有啟動、引導

    長高44b0xi BIOS源碼 FS44B0II BIOS具有啟動、引導,下載、燒寫,設置日期、時間,設置工作頻率等多種功能,並且支持各種參數的存儲和自動調用。 可以用flashpgm等軟件將BIOS燒寫到Flash中去,BIOS的自身駐留地址位于NOR FLASH的0x1f0000處,系統參數保存在0x1ff000以上區域中。所以在燒寫完BIOS,上電復位后先要執一定要執行backup命令把BIOS本身拷貝到NOR FLASH的高端1f0000去。

    標簽: BIOS 44 0xi 0II

    上傳時間: 2013-12-25

    上傳用戶:ainimao

  • 據說著名猶太歷史學家 Josephus有過以下的故事:在羅馬人佔領喬塔帕特後

    據說著名猶太歷史學家 Josephus有過以下的故事:在羅馬人佔領喬塔帕特後,39 個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定寧願死也不要被敵人到,於是決定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下一個重新報數,直到所有人都自殺身亡為止。 然而Josephus 和他的朋友並不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,於是逃過了這場死亡遊戲。

    標簽: Josephus

    上傳時間: 2013-12-20

    上傳用戶:王慶才

  • 根據bluelab3.5.2實例hid-keyboard做出應用

    根據bluelab3.5.2實例hid-keyboard做出應用,能發出數字鍵1-5

    標簽: hid-keyboard bluelab

    上傳時間: 2013-12-24

    上傳用戶:牧羊人8920

  • 對于給定的一組進程

    對于給定的一組進程,采用優先級加時間片輪轉法進行調度。設有一個就緒隊列,就緒進程按優先數(優先數范圍0-100)由小到大排列(優先數越小,級別越高)。當某一進程運行完一個時間片后,其優先級應下調(如優先數加3),試對如下給定的一組進程給出其調度順序。每當結束一進程時要給出當前系統的狀態(即顯示就緒隊列)。這里,進程可用進程控制塊(PCB)表示為如右表所示。 進程名 A B C D E F G H J K L M 到達時間 0 1 2 3 6 8 12 12 12 18 25 25 服務時間 6 4 10 5 1 2 5 10 4 3 15 8

    標簽: 進程

    上傳時間: 2014-01-13

    上傳用戶:chfanjiang

  • CMS4J 是 JAVA / JSP 版網站管理系統 (Content Manage System For Java)的簡稱

    CMS4J 是 JAVA / JSP 版網站管理系統 (Content Manage System For Java)的簡稱,讀作 “CMS For J” 國內 JAVA版網站管理系統 的領航者,依托于 JAVA 技術,專注于 網站內容管理 CMS4J絕非國外一些開源產品的改造版,我們秉承用戶本土化的原 則,切身體驗國內CMS系統的應用現狀與實際需求,為中小企業量身定 做,CMS4J項目在立項時,就已經立下了以下四大目標:   [目標 1]: 不編程,做動態網站 要讓網站設計師、美工也會做動 態網站,動態網站不再是程序員的專長;   [目標 2]: 高擴展,插件式架構 系統基于Plug-in結構,所有模 塊均插件化, 良好的二次開發接口;   [目標 3]: 小投資,低成本運營 讓網站可以低成本運營,絕對不 允許存在第三方不必要的軟件開支;   [目標 4]: 大應用,分布式部署 立足日訪量為1至100百萬網站的 應用,向千萬級大型綜合門戶應用邁進;

    標簽: Content Manage System CMS4J

    上傳時間: 2013-12-17

    上傳用戶:dsgkjgkjg

  • 粒子濾波程序

    粒子濾波程序,仿真實現自由度機器人對目標的跟蹤,使用kalman濾波估計總雅可比矩陣J,噪聲為非高斯噪聲

    標簽: 粒子濾波 程序

    上傳時間: 2014-01-25

    上傳用戶:頂得柱

主站蜘蛛池模板: 诸城市| 贵德县| 重庆市| 县级市| 盐边县| 惠东县| 昌江| 新巴尔虎左旗| 满城县| 青海省| 永平县| 简阳市| 乐山市| 墨玉县| 犍为县| 山阳县| 娄烦县| 五大连池市| 苍山县| 民丰县| 巴林左旗| 射阳县| 中超| 克什克腾旗| 溧阳市| 中牟县| 仁化县| 左云县| 蓝田县| 独山县| 德昌县| 托克逊县| 鄢陵县| 宿迁市| 阿勒泰市| 雅安市| 珲春市| 榕江县| 阿瓦提县| 三门县| 印江|