资源简介
该程序可以识别红绿灯,2016年参加省电子设计大赛的时候编写的
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit HC595_RCK = P1^0 ;
sbit HC595_SCK = P1^1 ;
sbit HC595_DATA = P1^4 ;
sbit color_led = P2^4 ;
sbit color_out = P3^5 ;
sbit color_S2 = P2^6 ;
sbit color_S3 = P2^7 ;
sbit voice = P3^4 ;
code unsigned char shu_ma_one_array[10]={0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f };
code unsigned char shu_ma_two_array[8]={0xfe 0xfd 0xfb 0xf7 0xef 0xdf 0xbf 0x7f};
uchar shu_array[8] = {0x00};
//0--0x3f 1--0x06 2--0x5b 3--0x4f 4--0x66 5--0x6d
//6--0x7d 7--0x07 8--0x7f 9--0x6f A--0x77 B--0x7c
//C--0x39 D--0x5e E--0x79 F--0x71 --0x00 P--0x73
//1--0xfe 2--0xfd 3--0xfb 4--0xf7
//5--0xef 6--0xdf 7--0xbf 8--0x7f
unsigned long int count_red count_green count = 0 count_number = 0;
void send_data();
void delay() ;
void uart_send_data();
void send_shu_ma_data(unsigned char shu_ma_DATA_one unsigned char shu_ma_DATA_two) //数码管程序
{
int i ;
HC595_RCK = 0 ;
for( i = 0 ; i < 8 ; i ++)
{
HC595_SCK = 0 ;
if( 0 != (shu_ma_DATA_one&0X80))
{
HC595_DATA = 1 ;
}
else
{
HC595_DATA = 0 ;
}
shu_ma_DATA_one = shu_ma_DATA_one << 1;
HC595_SCK = 1 ;
}
for( i = 0 ; i < 8 ; i ++)
{
HC595_SCK = 0 ;
if( 0 != (shu_ma_DATA_two&0X80))
{
HC595_DATA = 1 ;
}
else
{
HC595_DATA = 0 ;
}
shu_ma_DATA_two = shu_ma_DATA_two << 1 ;
HC595_SCK = 1 ;
}
HC595_RCK = 1 ;
}
void time1_init() //定时器1的初始化
{
TMOD = 0X50 ;
TH1= 0X00 ;
TL1 = 0X00 ;
ET1 = 1 ;
EA = 1 ;
// TR1 = 1 ;
}
void time1_interrupt() interrupt 3 //定时器1中断
{
TH1 = 0X00 ;
TL1 = 0X00 ;
}
void send_data()
{
uchar i ;
shu_array[7] = count%10 ;
shu_array[6] = count/10%10 ;
shu_array[5] = count/100%10 ;
shu_array[4] = count/1000%10 ;
shu_array[3] = count/10000%10 ;
for(i = 0 ; i < 8 ; i ++)
{
send_shu_ma_data(shu_ma_one_array[shu_array[i]]shu_ma_two_array[i]) ;
}
}
void delay()
{
unsigned char i j;
TR1 = 1 ;
i = 5;
j = 5;
do
{
while (--j);
} while (--i);
TR1 = 0 ;
count = TH1*256+TL1;
send_data();
TH1 = 0X00 ;
TL1 = 0X00 ;
}
void main()
{
color_S2 = 1 ;
color_S3 = 1 ; //滤波器类型为红色
color_led = 0 ;
time1_init() ;
while(1)
{
if(count_number == 0)
{
color_S2 = 0 ;
color_S3 = 0 ; //滤波器类型为红色
count_number ++ ;
delay();
count_red = count ;
}
else
{
color_S2 = 1 ;
color_S3 = 1 ; //滤波器类型为绿色
count_number = 0 ;
delay();
count_green = count ;
}
if((count_red > count_green)&(count_red > 100)&(count_green > 0))
{
voice = 0 ;
}
else
{
voice = 1 ;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-08-01 11:13 颜色传感器程序\
文件 7584 2016-07-27 21:16 颜色传感器程序\color (1)
文件 56123 2016-07-26 10:59 颜色传感器程序\color (1).bak
文件 3026 2016-07-31 21:48 颜色传感器程序\color (1).c
文件 2520 2016-07-27 21:16 颜色传感器程序\color (1).hex
文件 60 2016-07-27 21:16 颜色传感器程序\color (1).lnp
文件 7391 2016-07-31 21:48 颜色传感器程序\color (1).LST
文件 9616 2016-07-27 21:16 颜色传感器程序\color (1).M51
文件 8808 2016-07-31 21:48 颜色传感器程序\color (1).OBJ
文件 4885 2016-07-27 21:16 颜色传感器程序\color (1).plg
文件 55223 2016-08-01 11:13 颜色传感器程序\color (1).uvopt
文件 13253 2016-07-27 21:38 颜色传感器程序\color (1).uvproj
文件 55229 2016-07-31 21:48 颜色传感器程序\color (1)_uvopt.bak
文件 13277 2016-07-27 21:19 颜色传感器程序\color (1)_uvproj.bak
文件 0 2016-07-26 10:55 颜色传感器程序\color (2).bak
文件 7790 2016-07-31 21:48 颜色传感器程序\颜色传感器程序
文件 2725 2016-07-31 21:48 颜色传感器程序\颜色传感器程序.hex
文件 55 2016-07-31 21:48 颜色传感器程序\颜色传感器程序.lnp
文件 9357 2016-07-31 21:48 颜色传感器程序\颜色传感器程序.M51
文件 190 2016-08-01 11:14 颜色传感器程序\颜色传感器程序.plg
文件 56121 2016-07-27 21:19 颜色传感器程序\颜色传感器程序.uvopt
文件 13273 2016-07-26 10:59 颜色传感器程序\颜色传感器程序_uvproj.bak
评论
共有 条评论