新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機10秒倒計時c語言匯編語言程序

        單片機10秒倒計時c語言匯編語言程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        (2)數碼管動態顯示(循環顯示0~9,時間間隔為1秒,1秒的時間間隔用定時器T0實現)
        匯編語言:ORG 0000HAJMP MAINORG 000BHAJMP INTT0ORG 0030HMAIN:CLR P2.7MOV DPTR,#TABCLR AMOV R2,#0HMOV R3,#0HMOV TMOD,#01HMOV TH0,#4CHMOV TL0,#00HSETB EASETB ET0SETB TR0HERE: CJNE R2,#14H,HEREMOV R2,#0HPUSH ACCMOVC A,@A+DPTRMOV P0,APOP ACCINC AINC R3    CJNE R3,#0AH,HEREMOV R3,#00H        ;此處用DJNZ 更方便,只不過R3的初始值;要設置為0AH,同時取消INC R3指令(此行上面第二行)   CLR AAJMP HEREORG 80HINTT0:MOV TH0,#4CHMOV TL0,#00HINC R2RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND②C語言#include#define uint unsigned int#define uchar unsigned charsbit p27=P2^7;//數碼管位選端定義uchar c,i;//數碼管譯碼表unsigned char code NumDecode[] ={0XC0,//;00XF9,//;10XA4,//;20XB0,//;30X99,//;40X92,//;50X82,//;60XF8,//;70X80,//;80X90,//;9};void main(){i=0;//10秒計時設置c=0;//中斷次數計數p27=1;//數碼管位選端關閉TMOD=1;//設置定時器0為工作方式1TH0=(65536-46080)/256;//定時50ms高8位求模TL0=(65536-46080)%256;//定時50ms低8位求余EA=1;//開總中斷ET0=1;//定時器0中斷TR0=1;//啟動定時器0while(1){if(c==20)//50ms中斷20次{c=0;i++;//倒計時總數每秒減1}if(i<10){p27=0;//數碼管位選選通P0=NumDecode[i];//顯示數據}else  //循環計時設置{i=0;}}}void timer0() interrupt 1//定時器0中斷入口{TH0=(65536-46080)/256;//定時器重新賦初值TL0=(65536-46080)%256;c++;//中斷次數}


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 甘孜| 库伦旗| 贡觉县| 宽城| 工布江达县| 阳泉市| 乡宁县| 金乡县| 疏附县| 东山县| 昌图县| 江山市| 买车| 北京市| 遂川县| 穆棱市| 城市| 时尚| 灵璧县| 江口县| 陵川县| 惠安县| 吴川市| 綦江县| 彭阳县| 沁水县| 永泰县| 齐齐哈尔市| 商洛市| 花莲市| 平凉市| 平武县| 万载县| 安图县| 杭锦旗| 松潘县| 阿城市| 平利县| 沂水县| 启东市| 民和|