Open Yhzhtk opened 9 years ago
所用单片机均是 51,参加学校智能车大赛的代码。分两个代码:
#include "reg52.h" #define uint unsigned int #define uchar unsigned char uchar num[] ={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; sbit p1_0=P1^0; //D2,低有效 sbit p1_1=P1^1; //D3,低有效 sbit p1_2=P1^2; // sbit p1_3=P1^3; // sbit p1_4=P1^4; //K1,低有效 sbit p1_5=P1^5; //K2,低有效 sbit p1_6=P1^6; //控制蜂鸣器,低有效 sbit p1_7=P1^7; //控制数码管,低有效 bit duoJiFlag; bit dianJiFlag; uint i; uint maxDij; uint highDij; uint maxDoj; uint highDoj; void delay_ms(uint i) { uint m,n; for(m=0;m<i;m++ ) for(n=0;n<137;n++) ; } void uint_inter() { TMOD=0X01; // 定时器0方式1 EA = 1; // 允许所有中断 duoJiFlag=1; maxDoj=19000; highDoj=15000; ET0 = 1; // 开定时器0中断 TR0 = 1; // Timer0开始计数 } void timer0(void) interrupt 1 { ET0=0; TR0=0; if(duoJiFlag) { p1_0=1; p1_6=1; TH0=(65535-highDoj)/256; TL0=(65535-highDoj)%256; } else { p1_0=0; p1_6=0; TH0=(65535-maxDoj+highDoj)/256; TL0=(65535-maxDoj+highDoj)%256; } duoJiFlag=~duoJiFlag; ET0 = 1; // 开定时器0中断 TR0 = 1; // Timer0开始计数 } main() { p1_7=0; i=0; while(1) { if(p1_5==0) { i++; p1_0=p1_5; delay_ms(200); } else p1_0=1; if(i==10) i=0; P2=num[i]; } }
#include "reg52.h" #define uint unsigned int #define uchar unsigned char uchar num[] ={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; sbit p1_0=P1^0; //D2,低有效 sbit p1_1=P1^1; //D3,低有效 sbit p1_2=P1^2; // sbit p1_3=P1^3; // sbit p1_4=P1^4; //K1,低有效 sbit p1_5=P1^5; //K2,低有效 sbit p1_6=P1^6; //控制蜂鸣器,低有效 sbit p1_7=P1^7; //控制数码管,低有效 bit duoJiFlag; bit dianJiFlag; uint i; uint maxDij; uint highDij; uint maxDoj; uint highDoj; void delay_ms(uint i) { uint m,n; for(m=0;m<i;m++ ) for(n=0;n<137;n++) ; } void uint_inter() { TMOD=0X01; // 定时器0方式1 EA = 1; // 允许所有中断 duoJiFlag=1; maxDoj=19000; highDoj=15000; ET0 = 1; // 开定时器0中断 TR0 = 1; // Timer0开始计数 } void timer0(void) interrupt 1 { ET0=0; TR0=0; if(duoJiFlag) { p1_0=1; p1_6=1; TH0=(65535-highDoj)/256; TL0=(65535-highDoj)%256; } else { p1_0=0; p1_6=0; TH0=(65535-maxDoj+highDoj)/256; TL0=(65535-maxDoj+highDoj)%256; } duoJiFlag=~duoJiFlag; ET0 = 1; // 开定时器0中断 TR0 = 1; // Timer0开始计数 } main() { p1_7=0; i=0; while(1) { if(p1_5==0) { i++; if(i==10) i=0; p1_0=p1_5; delay_ms(200); } else p1_0=1; if(p1_4==0) { i--; if(i==-1) i=9; p1_1=p1_4; delay_ms(200); } else p1_1=1; P2=num[i]; } }
👌🏻,这代码怎么样?有实战过的兄弟吗?
实战过,没问题的
@Yhzhtk 多谢
所用单片机均是 51,参加学校智能车大赛的代码。分两个代码:
代码一
代码二