|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
打印机纸张计数器 测试完美, j1 N1 b' c' u ^" ]& l
+ b: |8 I6 }: w/ i# K - I7 {' @4 A, H4 \' n
( S, B1 ^" _( v- w6 n( ^/ O单片机源程序如下:
7 M" `! F' D& |! q) q9 c7 B8 P9 D8 q- #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();
- }
- }
2 T7 k4 ^" z# ^: s% ?
+ d% T7 X% `1 x9 p0 n
! k6 y9 w$ s4 g |
|