蓝桥杯单片机学习过程记录(二十五)第六届国赛智能物料传送系统
应用内容,超声波部分没写,
小灯、数码管
独立按键、定时器
EEP的读写
IIC中RB2的读取
出现的问题如下
/*
----------------------------------
第六届国赛
本来想把数码管写中断,可是一直闪啊闪啊闪啊,没找到错误
还有一个问题是小灯的开闭,单独用P0^1的话其余小灯会闪啊闪啊闪啊
此部分超声波没写。
2020.3.5
----------------------------------
*/
#include<STC15F2K60S2.H>
#include<iic.h>
sbit s7=P3^0;
sbit s6=P3^1;
sbit s5=P3^2;
sbit s4=P3^3;
int dianya;
unsigned char count_s6;
unsigned char time_move,time_set1,time_set2;
unsigned char distance=31,type,distance_set=30;
unsigned char time0_i,time1_i;
unsigned char yi,er,san,si,wu,liu,qi,ba;
unsigned char seg[]={
0XC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
unsigned char flag_yemian=3,flag_move,flag_stop,time0_flag;
void Timer1Init(void);
void Timer0Init(void);
void delayms(int ms);
void allinit();
void display_12(yi,er);
void display_34(san,si);
void display_56(wu,liu);
void display_78(qi,ba);
void dianya_pd();
unsigned char iic_read();
void distance_pd();
void key_scan();
void eeprom_write(unsigned char add ,unsigned char dat);
unsigned char eeprom_read(unsigned char add);
void main(){
allinit();
Timer0Init();
Timer1Init();
EA=1;ET0=1;ET1=1;
yi=10;er=10;san=10;si=10;wu=10;liu=10;qi=10;ba=10;
time_set1=eeprom_read(0x01);
time_set2=eeprom_read(0x02);
while(1){
//电压读取转换
dianya=1.96*iic_read();
//初始界面黑屏
if(flag_yemian==3){
dianya_pd();
yi=11;er=11;san=11;si=11;wu=11;liu=11;qi=11;ba=11;
}
//界面1进行判断
else if(flag_yemian==0){
dianya_pd();
distance_pd();
yi=1;er=11;san=11;si=distance/10;wu=distance%10;liu=11;qi=11;ba=type;
}<