预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<at89x52.h>//#include<intrins.h>sbitkey100=P3^2;sbitkey80=P3^3;#defineucharunsignedchar#defineuintunsignedintucharcodeduan[]={0x6F,/*9*/0x7F,/*8*/0x07,/*7*/0x7D,/*6*/0x6D,/*5*/0x66,/*4*/0x4F,/*3*/0x5B,/*2*/0x06,/*1*/0x3F,/*0*/0x6F};uinti=0;main(){IE=0x85;IT0=1;IT1=1;while(1){P2=duan[i];}}voidint0()interrupt0{i++;}voidint1()interrupt2{i--;}现象当数码管跳到0或9以后不能继续加减改进在主函数中加入判断语句if(i<0)i=9;if(i>9)i=0;现象数码管加的时候正常减到0的时候就不能继续了改进将红色部分改为chari=0总结如果想让主函数中的语句一直循环,需要加入判断语句,这样程序才能知道加或减完以后该做什么在定义变量的时候要考虑到变量的范围这个程序中i—会出现负数uint的变化范围不包括负数所以程序仍旧无法正确正确程序如下#include<at89x52.h>sbitkey100=P3^2;sbitkey80=P3^3;#defineucharunsignedcharucharcodeduan[]={0x6F,/*9*/0x7F,/*8*/0x07,/*7*/0x7D,/*6*/0x6D,/*5*/0x66,/*4*/0x4F,/*3*/0x5B,/*2*/0x06,/*1*/0x3F,/*0*/};chari=0;main(){IE=0x85;IT0=1;IT1=1;while(1){P2=duan[i];if(i<0)i=9;if(i>9)i=0;}}voidint0()interrupt0{i++;}voidint1()interrupt2{i--;}