這個是關于按鍵長按和短按 通過定時器處理的程序 請大家一起看看 或有什么建議
標簽: 按鍵程序
上傳時間: 2013-11-07
上傳用戶:kelimu
假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序為get_ad(); 1、限幅濾波法(又稱程序判斷濾波法) A、方法: 根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設為A) 每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值 B、優(yōu)點: 能有效克服因偶然因素引起的脈沖干擾 C、缺點 無法抑制那種周期性的干擾 平滑度差 /* A值可根據(jù)實際情況調整 value為有效值,new_value為當前采樣值 濾波程序返回有效的實際值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值濾波法 A、方法: 連續(xù)采樣N次(N取奇數(shù)) 把N次采樣值按大小排列 取中間值為本次有效值 B、優(yōu)點: 能有效克服因偶然因素引起的波動干擾 對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果 C、缺點: 對流量、速度等快速變化的參數(shù)不宜 /* N值可根據(jù)實際情況調整 排序采用冒泡法*/
上傳時間: 2014-12-26
上傳用戶:nanshan
“看門狗定時器”是這樣一種東西,從功能上說它可以讓微控制器在意外狀況下(比如程序陷入死循環(huán))重新回復到系統(tǒng)上電狀態(tài),以保證系統(tǒng)出問題的時候重啟一次。就跟我們用電腦一樣,死機了你就按一下reset鍵重啟一次電腦,看門狗就是負責干這個事兒的。它是52單片機增加的一個功能,以前Intel 8031、……、AT89C51時代單片機片內都沒有“看門狗”功能,需要我們外擴看門狗芯片,比如X5045。 很多人初次接觸丌太理解怎么用,書上也講的含含糊糊,故意說的很復雜很玄妙(可能是現(xiàn)在寫書人的通病,生怕寫的簡單的別人覺得他沒水平)。其實要是說明白點:“看門狗”就是一個計數(shù)器,由于位數(shù)有限計數(shù)器能夠裝的數(shù)值是有限的(比如8位的最多裝256個數(shù)、16位的最多裝65536個數(shù)),從開啟“看門狗”那刻起,它就開始丌停的數(shù)機器周期,數(shù)一個機器周期就計數(shù)器加1,加到計數(shù)器盛丌下了(術語叫溢出)就就產(chǎn)生一個復位信號,重啟系統(tǒng)。
上傳時間: 2013-11-11
上傳用戶:yepeng139
4.1 編程的步驟、方法和技巧4.1.2 編程的方法和技巧 4.1.3 匯編語言程序的基本結構 4.2 匯編語言源程序的編輯和匯編 4.2.1 源程序編輯 4.2.2 源程序的匯編 4.2.3 偽指令 計算機在完成一項工作時,必須按順序執(zhí)行各種操作。這些操作是程序設計人員用計算機所能接受的語言把解決問題的步驟事先描述好的,也就是事先編好計算機程序,再由計算機去執(zhí)行。匯編語言程序設計,要求設計人員對單片機的硬件結構有較詳細的了解。編程時,對數(shù)據(jù)的存放、寄存器和工作單元的使用等要由設計者安排;而高語言程序設計時,這些工作是由計算機軟件完成的,程序設計人員不必考慮。 4.1.1 編程步驟 一、分析問題 首先,要對需要解決的問題進行分析,以求對問題有正確的理解。例如,解決問題的任務是什么?工作過程是什么?現(xiàn)有的條件,已知的數(shù)據(jù),對運算的精確和速度方面的要求是什么?設計的硬件結構是否方便編程等等。 二、確定算法 算法就是如何將實際問題轉化成程序模塊來處理。 解決一個問題,常常有幾種可選擇的方法。從數(shù)學角度來描述,可能有幾種不同的算法。在編制程序以前,先要對不同的算法進行分析、比較,找出最適宜的算法。 ? 三、畫程序流程圖 程序流程圖是使用各種圖形、符號、有向線段等來說明程序設計過程的一種直觀的表示,常采用以下圖形及符號:橢圓框( )或桶行框( )表示程序的開始或結束。 矩形框( )表示要進行的工作。 菱形框( )表示要判斷的事情,菱形框內的表達式表示要判斷的內容。 圓圈( )表示連接點。 指向線(→)表示程序的流向。 流程圖步驟分得越細致,編寫程序時也就越方便。
上傳時間: 2013-10-10
上傳用戶:18888888888
所學的指令LD、LDI、OUT AND、ANI OR、 ORI LDP、 LDF、ANDP、ANDF、 ORP、 ORF ORB、 ANB MPS、 MRD、 MPP MC、 MCRSET RSTNOP END 自鎖電路觸點的動作發(fā)光二極管的工作原理。八段碼顯示是利用發(fā)光二極管的不同段碼組合來實現(xiàn)的,它可以實現(xiàn)0到F的顯示。搶答器的顯示就是利用八段碼顯示的特性,來完成幾個不同組別的顯示。用PLC實現(xiàn)八段碼顯示0~9組的3組以上搶答器的程序編寫,并完成以下要求:1)設計由PLC實現(xiàn)的八段碼顯示0~9組的3組以上搶答器的程序編寫,并完成以下要求: ①列出PLC的輸入輸出地址分配表 ②畫出PLC的輸入輸出接線圖(即I/O接線圖) ③設計PLC的梯形圖 ④根據(jù)梯形圖列寫指令表 2)按PLC控制I/O口(輸入/輸出)接線圖在模擬實驗設備上正確接線。
上傳時間: 2013-11-22
上傳用戶:lmeeworm
51單片機工程師實例設計程序集-(20種常見應用整編) \7290\ ;ZLG7290例程*\7290a\ ;ZLG7290匯編例程*\bell\ ;蜂鳴器音樂例程*\buzz\ ;蜂鳴器響例程*\eeprom\ ;讀EEPROM并顯示例程*\ex26a_lcd\ ;16×2LCD模塊例程*\ex36a_lcm\ ;128×64點陣LCD模塊例程*\KEY_IO\ ;直連KEY和LED例程\led_light\ ;直連LED例程*\lin_park\ ;lin模塊的原碼及例程。\lin\ ;LIN總線例程\rs232\ ;RS232例程(包括PC端和書上了串口例程)\USB1.1\ ;USB1.1例程(包括PC端)\RS485\ ;RS485例程\USB2.0\ ;USB2.0例程(有3個,包括PC端)\TCPIP\ ;基于ETHERNET的TCPIP例程\RTC\ ;時鐘顯示例程\CAN_SELF\ ;CAN自發(fā)自收例程 外中斷1\CAN\ ;CAN例程\USBPACK 2.0\ ;USB2.0PC例程 注意:帶*程序為MON51調試程序。在MON時程序下載后停不下來,可以按一下RSE按鈕復位一下。
上傳時間: 2013-10-13
上傳用戶:雨出驚人love
14-2. 智能小車運動控制方式14-3. 聲控的實現(xiàn)方法利用聲音控制小車運動狀態(tài)要求:編程使小車原地旋轉(順時針轉5秒逆時針轉5秒,重復進行),通過聲音檢測電路產(chǎn)生中斷使小車停止。范例分析:設計中首先要求控制小車按要求運動,這包含以下內容小車電機的驅動方式——硬件電路1小車運動方式控制方法 其次要求采用聲音控制小車的運動,這一過程包含以下內容聲音檢測電路的工作原理——硬件電路2如何實現(xiàn)對小車的控制——程序設計思路
上傳時間: 2014-04-16
上傳用戶:xianglee
微型計算機課程設計論文—通用微機發(fā)聲程序的匯編設計 本文講述了在微型計算機中利用可編程時間間隔定時器的通用發(fā)聲程序設計,重點講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動畫程序原理,并以設計一個簡單的樂曲評分程序為引子,分析程序設計的細節(jié)。關鍵字:微機 8253 通用發(fā)聲程序 動畫技術 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機中,有一個可編程時間間隔定時器8253,它能夠根據(jù)程序提供的計數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計數(shù)/定時脈沖,提供給系統(tǒng)各個部件使用。本設計是利用計算機控制發(fā)聲的原理,編寫演奏樂曲的程序。 在8253/54定時器內部有3個獨立工作的計數(shù)器:計數(shù)器0,計數(shù)器1和計數(shù)器2,每個計數(shù)器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數(shù)器和控制器尋址. 對8353/54編程時,先要設定控制字,以選擇計數(shù)器,確定工作方式和計數(shù)值的格式.每計數(shù)器由三個引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數(shù)/定時信號輸入端.每個計數(shù)器中包含一個16位計數(shù)寄存器,這個計數(shù)器時以倒計數(shù)的方式計數(shù)的,也就是說,從計數(shù)初值逐次減1,直到減為0為止. 8253/54的三個計數(shù)器是分別編程的,在對任一個計數(shù)器編程時,必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數(shù)器輸入一個計數(shù)初值,因為這個計數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數(shù)器2設定為方式3,(關于計數(shù)器的工作方式參閱教材第325—330頁)計數(shù)初值為65536. MOV AL,10110110B ;選擇計數(shù)器2,按方式3工作,計數(shù)值是二進制格式 OUT 43H,AL ; j將控制字送入控制寄存器 MOV AL,0 ;計數(shù)初值為0 OUT 42H,AL ;將計數(shù)初值的低字節(jié)送入計數(shù)器2 OUT 42H,AL ;將計數(shù)初值的高字節(jié)送入計數(shù)器2 在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關于8255A的結構和工作原理及應用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機中的揚聲器接口電路”一節(jié)介紹了揚聲器的驅動原理,并給出了通用發(fā)聲程序.本設計正是基于這個原理,通過編程,控制加到揚聲器上的信號的頻率,奏出樂曲的.2.發(fā)聲程序的設計下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:MOV AL, 10110110B ;8253控制字:通道2,先寫低字節(jié),后寫高字節(jié) ;方式3,二進制計數(shù)OUT 43H, AL ;寫入控制字MOV DX, 0012H ;被除數(shù)高位MOV AX, 35DEH ;被除數(shù)低位 DIV ID ;求計數(shù)初值n,結果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;讀入8255A端口B的內容MOV AH, AL ;保護B口的原狀態(tài)OR AL, 03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚聲器,使它發(fā)聲
上傳時間: 2013-10-17
上傳用戶:sunjet
§4-1 程序設計語言計算機程序設計語言是指計算機能夠理解和執(zhí)行的語言。 程序設計語言的種類很多,歸納起來有三種: 機器語言、匯編語言和高級語言。 編程時采用哪種語言由程序設計語言的特點和適用場合決定。 機器語言、匯編語言和高級語言比較一覽表§4-2 匯編語言源程序格式匯編語言源程序格式如下:1、匯編語言源程序由一條一條匯編語句組成。2、每條匯編語句獨占一行,以CR—LF結束。3、典型的匯編語句由四部分組成: 標號:操作碼 操作數(shù);注釋§4-3 偽指令一、偽指令與指令的區(qū)別: 偽指令由匯編程序識別,用來對匯編過程進行某種控制,或者對符號、標號賦值。在匯編過程中, 偽指令不產(chǎn)生可執(zhí)行的目標代碼;而指令由CPU執(zhí)行,在匯編過程中,產(chǎn)生可執(zhí)行的目標代碼,完成對數(shù)據(jù)的運算與處理。二、常用的偽指令:ORG END EQU DATA DB DW DS §4-4 匯編語言程序設計基礎一、匯編語言程序設計的一般步驟 分析課題 確定算法 畫流程圖 編寫程序 上機調試二、程序結構 按程序的走向可以將程序分成4種結構: 簡單程序 分支程序 循環(huán)程序 子程序
上傳時間: 2013-10-15
上傳用戶:daoxiang126
I2C總線高頻頭控制程序(Keil C51程序 基于芯片TSA5522系列) /*I2C總線高頻頭控制Keil C51程序(PLL芯片為TSA5522系列) *///--------------------------------------------------------------------------//// 源程序大公開 //// (c) Copyright 2001-2003 xuwenjun //// All Rights Reserved //// V1.00 ////--------------------------------------------------------------------------////標 題: I2C總線高頻頭控制程序(PLL芯片為TSA5522系列) ////文件名: xwj_fi1256.c ////版 本: V1.00 ////修改人: 徐文軍 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 首次公開 ////描 述: I2C總線高頻頭控制程序(PLL芯片為TSA5522系列) ////聲 明: //// 以下代碼僅免費提供給學習用途,但引用或修改后必須在文件中聲明出處. //// 如用于商業(yè)用途請與作者聯(lián)系. E-mail:xuwenjun@21cn.com //// 有問題請mailto xuwenjun@21cn.com 歡迎與我交流! ////--------------------------------------------------------------------------////老版本: 無 老版本文件名: ////創(chuàng)建人: 徐文軍 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 ////描 述: ////--------------------------------------------------------------------------// /* 頻率單位為KHz */#define FUENCY 38900 /* 中頻頻率 */#define PLLdataH(f) ((f+FUENCY)*16/1000/256) /* 頻率數(shù)據(jù)高 第1字節(jié)*/#define PLLdataL(f) ((f+FUENCY)*16/1000%256) /* 頻率數(shù)據(jù)低 第2字節(jié)*/#define PLLCON1 0x8e /* 控制字1 第3字節(jié)*/ /* 控制字2 第4字節(jié)*/#define PLLCON2(f) (((f)<(168000))?(0xa0):(((f)<(450000))?(0x90):(0x30)))#define PLLdata3(fchan) PLLdataH (fchan),PLLdataL (fchan),PLLCON2 (fchan)
上傳時間: 2013-11-10
上傳用戶:nanfeicui