|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
打印机纸张计数器 测试完美/ }7 h3 O: R) c& @8 B; B" _
0 U. L6 B/ c; V' L2 `0 l& D! f+ J' R
8 h3 b/ Y4 U4 {" m: X: o3 P3 R
8 Q+ g S0 Z3 c+ B% C) q) e, Q
单片机源程序如下:
7 v8 K x, ?& D! W% p" y, u0 J- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- //uchar dd[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极数码管断码表
- uchar dd[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xb6};
- sbit k1=P3^7; //按键接口定义 加
- sbit k2=P3^1; // 减
- sbit k3=P3^6; // 复位
- sbit led1=P2^0;
- sbit led2=P2^1;
- sbit duan1=P2^6;
- sbit wei1=P2^7;
- sbit duan2=P2^5;
- sbit wei2=P2^4;
- uchar shu=0; //计数变量
- void delay1ms() //@11.0592MHz
- {
- unsigned char i, j;
- _nop_();
- _nop_();
- _nop_();
- i = 11;
- j = 190;
- do
- {
- while (--j);
- } while (--i);
- }
- void display_led1() //显示函数
- {
- if(shu>=10)
- {
- wei1=1;
- P0=0XFE;
- wei1=0;
- duan1=1;
- // P0=dd[shu/100]; //百位
- P0=dd[shu/10%10]; //十位
- duan1=0;
- delay1ms(); //?
- }
- wei1=1;
- P0=0XFD;
- wei1=0;
- duan1=1;
- P0=dd[shu%10]; //十位
- duan1=0;
- delay1ms(); //消影
- // wei1=1;
- // P0=0XFB;
- // wei1=0;
- // duan1=1;
- // P0=dd[11]; //个位
- // duan1=0;
- // delay1ms();
- }
- void display_led2() //显示函数
- {
- if(shu>=20)
- {
- wei2=1;
- P1=0XFE;
- wei2=0;
- duan2=1;
- P1=dd[shu*5/100]; //百位
- duan2=0;
- delay1ms();
- }
- if(shu>=1)
- {
- wei2=1;
- P1=0XFD;
- wei2=0;
- duan2=1;
- P1=dd[shu*5/10%10]+0X80; //十位
- led1=0;
- led2=0;
- duan2=0;
- delay1ms(); //消影
- }
- wei2=1;
- P1=0XFB;
- wei2=0;
- duan2=1;
- P1=dd[shu*5%10]; //个位
- duan2=0;
- delay1ms();
- }
- void key() //按键操作函数
- {
- if(k1==0) //判断
- {
- delay1ms(); //消抖
- if(k1==0) //再判断
- {
- shu++;if(shu==200){shu=0;} //计数加,到100回0
- }
- while(k1==0);
- }
- // if(k2==0)
- // {
- // delay1ms();
- // if(k2==0)
- // {
- // shu--;if(shu==-1){shu=199;} //计数减 零以下 回99
- // } while(k2==0);
- // }
- if(k3==0)
- {
- delay1ms();
- if(k3==0)
- {
- shu=0; //变量清零
- led1=1;
- led2=1;
- }
- while(k3==0);
- }
- }
- void main()
- {
- while(1)
- {
- display_led2() ;
- display_led1();
- key();
- }
- }
- . b5 [2 A0 ~$ I0 f
; u2 @: ~0 O O9 ~
; X/ m* E. j( b' o6 {
|
|