实验总结:
1, 在最后加到99时要进行判断使其在加等于一。
2, 在减到0时再减时进行判断使其再减等于99。
3, 在编程时进行循环的语句时经常出错,但在舍友的帮助下完成了。
4, 刚开始电源接错了。
电路原理图如下:
程序流程图:
单片机源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define ucharunsigned char
- #define uint unsigned int
- sbit key1=P3^2; //将按键1接到p3.2
- sbit key2=P3^3; //将按键2接到p3.3
- charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //
- char i;
- void delay(uint z) //延时函数
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main(){
- EA=1; //总中断允许
- EX0=1; //INT0允许
- EX1=1; //脉冲触发
- while(1);
- }
- void INT0_srv(void) interrupt 0 using 1
- {
- delay(300);
- if(INT0==0) //INT0按下
- {i++; //向后加一位
- if(i==100) //当数字为100是输零
- i=0;
- P1=led_mod[i/10]; //p1输出十位
- P2=led_mod[i%10];
- while(key1==1); //p2输出个位
- }
- }
- void INT1_srv(void) interrupt 2 using 2
- {
- delay(30);
- if(INT1==0) //INT1触发
- {i--; //后减一位
- if(i<0)
- i=99; //零减一位输出99
- P1=led_mod[i/10]; //
- P2=led_mod[i%10]; //
- while(key2==0);
- }
复制代码
实验二 单片机.docx
(178.95 KB, 下载次数: 14)
|