资讯详情

数码管按键移动位数闪烁实验(51单片机)

#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit k1=P1^0; void delay(uint k) { while(k--); } code uchar seg[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60}; // 码表 code uchar tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //数码管位选 uchar move,flag; void time0_init() { TMOD=0x01; TH0=0x00; TL0=0x00; TR0=1; } void str_init() //中断初始化 { EA=1; ET0=1; } void time0_event() interrupt 1//中断事件 { static uchar i; i++; if(i==15) { flag=~flag;i=0; } } void show() { uchar i; for(i=0;i<4;i++) { if(i==move) { P0=seg[i]|(0xdf&flag); } else { P0=seg[i]; } P2=tab[i]; delay(100); P0=0xff; P2=0xff; } } void key() { static uchar i,j; if(k1==0) { if(i==0) { j++; if(j>10) { if(k1==0) { i=1;j=0; move++; if(move==4)move=0; } } } } else { i=0; j=0; } } void main() { time0_init(); str_init(); while(1) { key(); show(); } } -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台