您的位置 首页 传感器

单片机10秒倒计时c言语汇编言语程序

(2)数码管动态显示(循环显示0~9,时间间隔为1秒,1秒的时间间隔用定时器T0实现)①汇编语言:ORG0000HAJMPMAIN

(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++;//中止次数}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/317882.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部