51单片机数码管,用动态显示0到123怎么编程?
0-1 2 3 ,需要三位数字管。
#include#define uchar unsigned char;uchar disstab[]={0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 d,0x07 ,0x7 f,0x6 f,0x7 7 ,0x7 c,0x3 9 ,0x5 e,0x7 9 ,0x7 1 ,0x00}; // 0至fuchar编号,dat [3 ],nn = 0,cnt = 0 ;; void t0isr()中断1 {th0 =(6 5 5 3 6 -5 000)/2 5 6 ; tl0 =(6 5 5 3 6 -5 000)%2 5 6 ; num ber ++; number%= 3 ; p2 = 0x01 << number; p0 = disstab [dat [number]]; cnt ++; if(cnt> 9 9 ){cnt = 0; nn ++; nn%= 1 2 4 ; dat [0] = nn/1 00; dat [1 ] =(nn%1 00)/1 0; dat [2 ] = nn%1 0; }} main(){tmod = 0x01 ; th0 =(6 5 5 3 6 -5 000)/2 5 6 ; tl0 =(6 5 5 3 6 -5 000)%2 5 6 ; tr0 = 1 ; et0 = 1 ; et0 = 1 ; ea = 1 ; ea = 1 ; while(1 );}}}}}
用51单片机程序显示3位7段数码管,求具体程序
假设这是一个总阴极数字管,输入端子连接到微控制器的端口P1 ,并且总阴极连接到0.1 .2 端口P2 的接触。
我的程序如下,目前显示编号1 2 3 #inculce typedefunsignedchint8 ; typedefunsignedtuint1 6 ; Typedflongintuint3 2 ; copeuint8 number [] = {0x3 f,0x06 .0x5 b,0x4 f,0x6 6 .0x6 d,0x7 .07 f,0x7 f,0x7 f,0x7 f。
oiddelai_ms(uint1 6 x)// 1 ms延迟{uint8 i = 1 2 1 ; 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 VENUE000000000000000000000000000000 f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000& ) 我-; x-;}} vooidxianshi(uint1 6 x){uint8 i = 0; for(i = 0; i
利用51单片机和3位数码管实现10分钟内的简易计时器
Modified as follows: #include#define uint unsigned int#define uchar unsigned char uchar code table[]={0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 d,0x07 ,0x7 f,0x6 f,0x7 7 ,0x7 c,0x3 9 ,0x5 e,0x7 9 ,0x7 1 }; sbit key1 = p2 ^7 ; sbit key2 = p2 ^6 ; sbit weih = p3 ^0; sbit weim = p3 ^1 ; sbit weil = p3 ^2 ; uint num = 0,uint num = 0,ge = 0,ge = 0,shi = 0,shi = 0,shi = 0,fen = 0,k; // num用于计数,ge是每个位的显示,shi是十位的显示,而fen是minute show void delayms(uint xmms)的显示{uint I,j; for(i = xms; i> 0; i> 0; i-)// i = xmm for(j = 1 1 0; j> 0; j - );} uchar key1 scan(void){if(key1 == 0){delayms(1 0); if(key1 == 0){while(!key1 ); r turn 1 ;}返回0;} uchar key2 scan(void){if(key2 == 0){delayms(1 0); if(key2 == 0){while(!key2 ); return 1 ; return 1 ;}} return;} void showtime(void showtime( )/2 5 6 ; tl0 =(6 5 5 3 6 -5 000)%2 5 6 ; num ++; num%= 3 ; switch(num){情况0:weil = 1 ; //显示秒的单位数字p1 = 0xff; p1 = table [ge]; delayms(5 ); weil = 0; break; break; case 1 :weim = 1 ; //显示秒的十个数字p1 = 0xff; p1 = table e [shi]; delayms(5 ); weim = 0; break; break; case 2 :weih = 1 ; //显示分钟,仅0-9 p1 = 0xff; p1 = table [fen]; delayms(5 ); weih = 0; break;} void main(){tmod = 0x01 ; th0 =(6 5 5 3 6 -5 000)/2 5 6 /2 5 6 /2 5 6 ; tl0 =(6 5 5 5 3 6 -5 000)%2 5 6 ; tr0 = 1 ; et0 = 1 ; ea = 1 ; num = 0; num = 0; while(1 ){if(((key1 scan()== 1 )&&(key2 scan()!= 1 ))break; //按键1 ,键2 不按以启动定时},而(1 ){ - ge> 9 ){
在51单片机中用数码管可不可以单独显示超过255的三位数字?
当然可以。