锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2024-05-26 04:37:11

(2)数码管动态显示(循环显示0~9,时间间隔为1秒,1秒的时间间隔用定时器T0实现)  ①汇编语言:ORG 0000H     AJMP MAIN     ORG 000BH     AJMP INTT0     ORG 0030HMAIN:CLR P2.7     MOV DPTR,#TAB     CLR A     MOV R2,#0H     MOV R3,#0H     MOV TMOD,#01H     MOV TH0,#4CH     MOV TL0,#00H     SETB EA     SETB ET0     SETB TR0HERE: CJNE R2,#14H,HERE      MOV R2,#0H      PUSH ACC      MOVC A,@A+DPTR      MOV P0,A      POP ACC      INC A      INC R3          CJNE R3,#0AH,HERE MOV R3,#00H        ;此处用DJNZ 更方便,只不过R3的初始值;要设置为0AH,同时取消INC R3指令(此行上面第二行)         CLR A      AJMP HERE      ORG 80HINTT0:MOV TH0,#4CH      MOV TL0,#00H      INC R2      RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H     END②C语言#include#define uint unsigned int#define uchar unsigned charsbit p27=P2^7;//数码管位选端定义uchar c,i;//数码管译码表unsigned char code NumDecode[] ={                0XC0,//;0                0XF9,//;1                0XA4,//;2                0XB0,//;3                0X99,//;4                0X92,//;5                0X82,//;6                0XF8,//;7                0X80,//;8                0X90,//;9};void main(){       i=0;//10秒计时设置       c=0;//中断次数计数       p27=1;//数码管位选端关闭       TMOD=1;//设置定时器0为工作方式1       TH0=(65536-46080)/256;//定时50ms高8位求模       TL0=(65536-46080)%256;//定时50ms低8位求余       EA=1;//开总中断       ET0=1;//定时器0中断       TR0=1;//启动定时器0       while(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++;//中断次数} 

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章