Linux系統下的51微控制器數碼管實現精準計時

2021-07-24 22:21:09 字數 1782 閱讀 6485

**數碼管主要是利用視覺暫留的效果,通過快速迴圈點亮數

碼管方式,將資料呈現出來數碼管是 led 的公升級,每位數碼管裡面繼承了 8 個 led,點亮led就是點亮數碼管**

裡面的 led。

中斷暫存器的初始化:

tcon 高四位控制定時計數器的啟動和中斷申請

高四位: tf1,tr1,tf0,tr0

tr0開關 其他的固定

tmod=0x01; 將工作方式暫存器tmod置為 0000 0001 即m0=1,m1=0————工作方式一:16位定時器/計數器。同時c/t=0設定為定時器,gate設為0。

ea=1;                    中斷允許暫存器ie開啟全域性中斷控制

et0=1; t0——定時器/計數器的開關在中斷允許暫存器ie的d1位

tr0=1; 定時器/計數器控制允許暫存器tcon的d4位,在gate為0的情況下,啟動,停止僅由tr0控制

這裡只舉例方式1

計數是16位 , 由tl0 作為低8位, th0作為高8位 組成加1計數器

個數與初值關係: x=2^16-n

如,計算50000 (50毫秒)

th0=(65536-50000)/256 放入高8位

tl0=(65536-50000)%256 放入低8位

要在數碼管上面顯示相應的值,就是點亮不同位置的 led。數碼管有共陰和共陽兩種,共陰數碼管公共端是所有 led 的負極連線在一起,相**陽數

碼管公共端是所有 led 的正極連線在一起。一般公共端稱作「位選」,

控制每乙個 led 的稱為「段選…….

數碼管動態顯示就是延時程式和數碼管靜態顯示的結合,首先點亮數碼管顯示數值,然

後將數值顯示一段時間,然後再關閉顯示,重新點亮數碼管顯示另乙個數值,實現動態顯示。

下面為我自己寫的計時**:

//定時時間,作為秒計數時間,當一秒產生時,秒

//計數加1,秒計數到60時,自動從0開始。微控制器

//晶振頻率為12mhz

#include<8051.h> //linux下的標頭檔案

#define uchar unsigned char

#define uint unsigned int

uchar table=;

void display(uchar miao);

uchar a,miao,shu;

uint num;

void delay(uint z);

void init();

void main()

}void timer0()__interrupt(1)__using(1)

}//初始化函式

void init()

//顯示函式

void display(uchar miao)

void delay(uint z)

注意將跳帽將j1短接, 學會看懂原理和其微控制器的引腳

linux下開發51微控制器

系統環境 linux mint 18.3 xfce 64bit 基於ubuntu16.04.01 需要軟體及環境 1 codeblocks 2 sdcc編譯器 3 python serial 4 stcflash linux配置stm32開發環境概述 在linux下開發51微控制器也非常簡單,以前介...

51微控制器中斷系統

1.什麼是中斷 中斷是cpu在執行程式是不需要管中斷源的狀態,當中斷源滿足中斷觸發條件時cpu再去進行終端處理 2.中斷源 80c51共五個中斷源分別是兩個外部中斷源 int0 int1,兩個定時中斷源t0 t1,乙個序列口中斷源 每個中斷源對應著乙個中斷入口位址 中斷源入口位址 外部中斷源int0...

51微控制器

數碼管顯示幾乎是每次藍橋杯微控制器設計與開發組競賽的必考部分,相對於使用lcd1602作為顯示裝置,使用數碼管來顯示能夠更好的考察參賽選手的微控制器基本功,因為ct107d開發平台的設計使得數碼管的顯示不僅牽扯到數碼管顯示的 基本內容,還涉及到74hc573鎖存器,74hc02異或門,74hc138...