單片機C語言(0到100計時)

2021-01-07 電子產品世界

基於51hei單片機開發板的計時器程序

#include

#define uint unsigned int

#define uchar unsigned char

uchar temp,bai,shi,ge,aa;

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void display(uchar bai,uchar shi,uchar ge);

void delay(uint z);

void init();

void main()

{

init(); //初始化子程序

while(1)

{

if(aa==20)

{

aa=0;

temp++;

if(temp==100)

{

temp=0;

}

bai=temp/100;

shi=temp%100/10;

ge=temp%10;

}

display(bai,shi,ge);

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void display(uchar bai,uchar shi,uchar ge)

{

dula=1;

P0=table[bai];

dula=0;

P0=0xff;//

wela=1;

P0=0xfe; //位選通

wela=0;

delay(1) ;

dula=1;

P0=table[shi];

dula=0;

P0=0xff; //消隱

wela=1;

P0=0xfd;

wela=0;

delay(1) ;

dula=1;

P0=table[ge];

dula=0;

P0=0xff;// 消隱

wela=1;

P0=0xfb;

wela=0;

delay(1) ;

}

void init()

{wela=0;

dula=0;

temp=0;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

void timer0() interrupt 1

{ TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

aa++;

}


相關焦點

  • 單片機C語言程序設計:100 000s 以內的計時程序
    /* 名稱:100 000s 以內的計時程序說明:在 6 只數碼管上完成 0~99 999.9s。unsigned char#define uint unsigned int//段碼uchar codeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//6 只數碼管上顯示的數字uchar Digits_of_6DSY[]={0,0,0,0,0,0
  • 【愛找茬】都是C語言,單片機C語言和普通的C語言究竟有什麼差異呢?
    許多小夥伴在學完C語言後想入門單片機,但學著學著發現明明都是C語言,為什麼單片機C語言和我當初學的C語言有差異呢?今天小編就來梳理我們平時所學的C語言與單片機C語言的有什麼樣的不同。
  • 單片機C語言除法餘法的運用
    就是用到了我們的C語言中的除法,餘法算術運算符這三條語句中,timedata就是我們那個可變化的數,設置成了無符號字符型的話,就是數據在0~255內變化上面仿真圖片這個timedata以一秒的時間計數,從000計到013,我就截圖下來了
  • 單片機控制的簡易定時報警器電路設計
    計時功能:要實現計時功能則需要使用定時器來計時,通過設置定時器的初始值來控制溢出中斷的時間間隔,再利用一個變量記錄定時器溢出的次數,達到定時1秒中的功能。然後,當計時每到1秒鐘後,倒計時的計數器減1。當倒計時計數器到0時,觸發另一個標誌變量,進入閃爍狀態。顯示功能:顯示倒計時的數字要採用動態掃描的方式將數字拆成「十位」和「個位」動態掃描顯示。
  • 「C語言從入門到入土」必備C語言基礎筆記整理
    一、C語言1、什麼是C語言?C語言是人寫機器看的一種語言。C語言是高級語言中的低級語言。C語言貼近硬體。C語言的入門學習比較簡單。彙編語言——>B語言——>C語言2、C語言的特性首先C語言就是你的女朋友。
  • 使用STC14F104W單片機捕獲PWM脈寬
    (P3.2)外部中斷0捕獲引腳P3.2的上升沿和下降沿:上升沿開啟定時器0計時,下降沿終止定時器0計時,這樣讀取計時寄存器的值即可獲得高電平時間:TH0*256+TL0;具體程序段://*******************************************************//函數名稱:void exint0
  • 是單片機高手還是菜鳥?看看你的程序框架就知道了
    從大學參加電子設計大賽到現在,在單片機學習的道路上也有幾年的摸索了,把自己的一些心得體會分享給大家。
  • C語言編寫程序求水仙花數
    程序思路:三位數其範圍就是(100到999),利用循環來完成。個位、十位、百位數字的提取,利用整型數據的整除或者取餘都可以完成。本例是利用整除來完成的,符合初學者的思維,算法容易接受理解。{int x,a,b,c;//定義x,a,b,c四個整型變量。for(x=100;x<1000;x++)//外層循環,水仙花數查詢範圍100到999。
  • C語言程序設計試題及答案
    A) 1 B) 2 C) 2.0 D) 2.57、下面屬於合法的C語言長整型常量的是( )。A) int:a, b, c; B) int a; b; c;C) int a, b, c D) int a, b, c;20、C語言用( )表示邏輯「真」值。
  • avr單片機和stm32區別與優缺點分析
    avr單片機缺點:   1. 是沒有位操作,都是以字節形式來控制和判斷相關寄存器位的   2. C語言與51的C語言在寫法上存在很大的差異,這讓從開始學習51單片機的朋友很不習慣   3. 通用寄存器一共32個(R0~R31),前16個寄存器(R0~R15)都不能直接與立即數打交道,因而通用性有所下降。
  • 51單片機的Timer,運用PWM完成呼吸燈
    51單片機的Timer,運用PWM完成呼吸燈 李倩 發表於 2018-05-02 09:14:53 Pulse Width Modulation脈衝寬度調製,簡稱PWM。
  • 單片機數碼管顯示原理
    原理圖上可以看出來,控制DS1的三極體是Q17,控制Q17的引腳是LEDS0,對應到74HC138上邊就是Y0端的輸出。我們通過圖1可以輕而易舉的看出來,如果我們點亮b和c這兩個LED小燈,也就是數碼管的b段和c段,其他的所有的段都熄滅的話,就可以讓數碼管DS1顯示一個數字1,那麼這個時候實際上P0的值的二進位就是0b11111001,十六進位就是0xF9。那麼我們寫一個程序進去,看看讓數碼管顯示一下看看。
  • C語言和VS
    C語言是一門面向過程的計算機程式語言,與C++、Java等面向對象程式語言有所不同。C語言一般只比彙編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。我們要學習一門程式語言,先得了解它能幹什麼,可以給我們帶來什麼樣的用處,C語言的應用領域主要有幾個方面:
  • C語言編程核心要點
    類型C是強類型語言,有short、long、int、char、float、double等build-in數據類型,類型是貫穿c語言整個課程的核心概念。struct、union、enum屬於c的構造類型,用於自定義類型,擴充類型系統。變量變量用來保存數據,數據是操作的對象,變量的變字意味著它可以在運行時被修改。
  • 基於單片機設計的酒精氣體濃度探測儀
    2 電路設計思路2.1 酒精濃度檢測儀電路由酒精氣體濃度傳感器MQ-3負責檢測空氣中的酒精氣體濃度;由單片機內部自帶的模/數轉換器把檢測到的模擬量(表示酒精濃度)的電壓信號轉換成數字量;然後和預先設定的表示酒精濃度的閥值進行比較,如果比較結果超過閥值就由單片機P2.3口輸出方波信號控制PNP型三極體VT4驅動蜂鳴器發出報警聲;同時由單片機P2.6口輸出低電平控制發光二極體
  • 乾貨——聊聊內存那些事(基於單片機系統)
    static int global_b;//靜態全局變量,默認值為0void fun(){ static int c;//靜態變量,默認值為0 printf("static int c add:0x代碼中雖然看似初始化了c變量三次,其實實際只有第一次有效。
  • STC89C52單片機蜂鳴器唱歌實驗
    ////////////////////////////////////////////////////////////////////////實現功能:通過對單片機定時器的配置,讓其產生不同頻率的方波,蜂鳴器根據頻
  • C語言中「c=a+b」,這種結構合理嗎?
    c = a+++b; printf("a = %d,b = %d,c = %d",a,b,c); return 0; } 輸出結果如下:
  • 馬拉松比賽中是如何計時的?與100米計時不同
    我們都知道100米跑步都是爭分奪秒的運動,所以對計時的準確性要求比較高,很多時候差距都在一秒內,而最新的計時器可以精確到0.001秒,可謂是毫釐之間定勝負。那麼馬拉松比賽中是如何計時的?完全達不到像短跑那樣終點的競爭強度,所以馬拉松比賽一般只精確到秒就可以了。