假設(shè)正脈沖寬度不超過定時器的值設(shè)T1方式1,利用門控位GATE1來啟動定時器。定時器的值×T即為脈沖寬度。 ORG 1000H &[詳細]
1. Brown-Out Reset掉電復(fù)位,或電源電壓跌落復(fù)位, 當(dāng)輸入電壓VCC跌到某一門限時芯片復(fù)位The MCU is reset when the supply voltage VCC is below the Brown-Out Reset threshold voltageand the Brown-out Detector is enabled. The Brown-out threshold voltage is programmable.2. Totem-pole推拉輸出電路3. [詳細]
因為第一次接觸STM的單片機,各種寄存器和API都不熟悉,于是結(jié)合STM的庫函數(shù)和編程手冊對照理解。建立好工程之后,編寫main函數(shù)。1.不管哪種單片機,上電以后第一重要的事就是設(shè)置時鐘和初始化引腳。單看STM32F的時鐘:能作為STM32F103的系統(tǒng)時鐘的有三種,外部時鐘,內(nèi)部時鐘,PLL時鐘。跟蹤到SystemInit里面,[詳細]
1.意外中斷。是否打開了某個中斷,但是沒有響應(yīng)和清除中端標(biāo)志,導(dǎo)致程序一直進入中斷,造成死機假象。2. 中斷變量處理不妥。若定義某些會在中斷中修改的全局變量,這時要注意兩個問題:首先為了防止編譯器優(yōu)化中斷變量,要在這些變量定義時前加 volatile,其次在主循環(huán)中讀取中斷變量前應(yīng)該首先關(guān)閉全局中[詳細]
棧是一種具有先入后出特性的數(shù)據(jù)結(jié)構(gòu),前面說過,這種特性常常用來幫住我們“原理返回”或者“保持原樣”。試想,當(dāng)我們第一次來到一個陌生的城市,走在陌生的街道上,尋找一個陌生的目標(biāo),最令我們有安全感的莫過于仔細記錄走過的每一個街道、穿過的每一個路口--這種安全感來源于潛意識里“萬一找不到目的地就[詳細]
芯片的發(fā)展趨勢是存儲容量越來越大,價格越來越便宜。所以我們應(yīng)該用C來寫單片機程序,不提倡用匯編。每一款單片機的C語言大部分用法都相同,我個人的經(jīng)驗不同系列的單片機的c語言的使用只有兩處的寫法不同,1)對一個I/O口的控制 2)中斷程序。當(dāng)你拿起那厚厚一本的C語言的書籍,心里面也是沉墊墊的。一本書下[詳細]
眾所周知STM32有5個時鐘源HSI、HSE、LSI、LSE、PLL,其實他只有四個,因為從上圖中可以看到PLL都是由HSI或HSE提供的。其中,高速時鐘(HSE和HSI)提供給芯片主體的主時鐘.低速時鐘(LSE和LSI)只是提供給芯片中的RTC(實時時鐘)及獨立看門狗使用,圖中可以看出高速時鐘也可以提供給RTC。內(nèi)部時鐘是在芯片內(nèi)部[詳細]
似乎軟件架構(gòu),只有純上位機軟件才有,其實,嵌入式軟件也有架構(gòu)可言,只有好的架構(gòu),才能結(jié)構(gòu)清晰,方便開發(fā)和讓系統(tǒng)穩(wěn)定的工作。在有嵌入式操作系統(tǒng)的情況下,可以利用多任務(wù)和信號量,事件等設(shè)計嵌入式軟件。但是在沒有操作系統(tǒng)的裸機中,更需要有好的架構(gòu)。例如利用事件和狀態(tài)機模擬實現(xiàn)多任務(wù),或者[詳細]
在pic單片機編程當(dāng)中,會遇到這個問題,程序已經(jīng)沒有問題,也燒錄成功了,硬件也上電了,但是為什么什么反應(yīng)也沒有呢?后來我發(fā)現(xiàn)是我的configuration bits沒有配置好,以下是我總結(jié)出來,如何讓PIC正常工作的所需作的檢查,前提是代碼沒有問題。1、選擇好芯片;2、設(shè)置好Configuration Bits;3、系統(tǒng)上電;針對Con[詳細]
一般認為在c中分為這幾個存儲區(qū)1棧 - 由編譯器自動分配釋放2堆 - 一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時可能由OS回收3全局區(qū)(靜態(tài)區(qū)),全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。 - 程序[詳細]
從單片機上知道,在上電的那一刻,MCU的程序指針PC會被初始化為上電復(fù)位時的地址,從哪個地址處讀取將要執(zhí)行的指令,由此程序在MCU上開始執(zhí)行(當(dāng)然在調(diào)用程序的 main函數(shù)之前,還有一系列其他的的初始化要做,如堆棧的初始化,不過這些我們很少回去修改)。PC在上電時,和MCU差不多,不過讀取的是BIOS,有它完成[詳細]
PICC變量及定義1、當(dāng)變量為多字節(jié)數(shù)據(jù)時,PICC按低字節(jié)存放在低地址、高字節(jié)存放在高地址的原則存放變量,并以最低字節(jié)的地址作為該變量的地址。例如int型變量i的值為0X1234,低字節(jié)0x34存放在0X30,高字節(jié)0x12存放在0X31,并以0x30作為變量i的地址。2、單片機的帶符號的整數(shù)均以補碼方式存放。對于二進制數(shù)來說[詳細]
在一個技術(shù)QQ群中,試著做了一道C的題,感覺是考察for循環(huán)的執(zhí)行流程.原題: 在C語言中,下列代碼的輸出結(jié)果是 ( ) (選擇一項)群里居然有不少人都選了B,那個提問者還一直在問正確的結(jié)果。最終的正確結(jié)果是:A.哈哈,好基本的知識。后來偶就順手寫了一個代碼,大家做了它可以對for循環(huán)的運算順序就比較清楚[詳細]
學(xué)習(xí)單片機最主要的是學(xué)習(xí)寫程序的方法,程序的功能千變?nèi)f化,是學(xué)不完的,只有掌握了一定方法,才能用這種方法去寫新的程序。以c語言寫的單片機程序為例,程序總是從main程序開始,然后順序執(zhí)行到main結(jié)束。由此可知,程序必須包含而且只能包含一個main程序,也就是常說的主程序。main(){主程序的內(nèi)容。。。。[詳細]
按位或 按位與 按位異或 按位取反 左移右移C語言位運算有6種: &, | , ^(亦或), <<(左移), >>(右移)。注意:參與位運算的元素必須是int型或者char型,以補碼形式出現(xiàn)。按位與&&運算常應(yīng)用于:迅速清零保留指定位判斷奇偶性a & 1 = 1;則a為奇數(shù)b & 1 [詳細]
1級優(yōu)先級 左結(jié)合() 圓括號[] 下標(biāo)運算符-> 指向結(jié)構(gòu)體成員運算符. 結(jié)構(gòu)體成員運算符2級優(yōu)先級 右結(jié)合! 邏輯非運算符~ 按位取反運算符++ 自增運算符-- 自減運算符- 負號運算符(類型) 類型轉(zhuǎn)換運算符* 指針運算符& 地址與運算符sizeof 長度運算符3級優(yōu)先級 左結(jié)合* 乘法運算符/ 除法運算符% 取余運[詳細]
延時與中斷出錯,是單片機新手在單片機開發(fā)應(yīng)用過程中,經(jīng)常會遇到的問題,本文匯總整理了包含了MCS-51系列單片機、MSP430單片機、C51單片機、8051F的單片機、avr單片機、STC89C52、PIC單片機…..在內(nèi)的各種單片機常見的延時與中斷問題及解決方法,希望對單片機新手們,有所幫助!擴展閱讀:單片機延時程序分析1[詳細]
用過前面的學(xué)習(xí),我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。DELAY: MOV R7,#250 ;(6)D1: MOV R6,#250 ;(7)D2: DJNZ R6,D2 &nbs[詳細]
C程序中可使用不同類型的變量來進行延時設(shè)計。經(jīng)實驗測試,使用unsigned char類型具有比unsigned int更優(yōu)化的代碼,在使用時應(yīng)該使用unsigned char作為延時變量。 以某晶振為12MHz的單片機為例,晶振為12MHz即一個機器周期為1us。擴展閱讀:匯編延時程序算法詳解一. 500ms延時子程序程序:void delay500ms(void)[詳細]
應(yīng)用單片機的時候,經(jīng)常會遇到需要短時間延時的情況。需要的延時時間很短,一般都是幾十到幾百微妙(us)。有時候還需要很高的精度,比如用單片機驅(qū)動DS18B20的時候,誤差容許的范圍在十幾us以內(nèi),不然很容易出錯。這種情況下,用計時器往往有點小題大做。而在極端的情況下,計時器甚至已經(jīng)全部派上了別的用途。這[詳細]
掃碼關(guān)注我們
0755-82591179
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08
Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved. 粵ICP備14043402號-4