久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
˜Ëî}:
Œ‘ºÃµÄ³¬Â•²¨œy¾à´ú´a£¬Õˆ´óÉñ½o¼ÓÒ»‚€ÕZÒô²¥ˆóÄ£‰K£¬ÔÚ¾€µÈ£¬¼±Ç󣡣¡£¡
[´òÓ¡±¾í“]
×÷Õß:
834824887csm
•rég:
2017-6-6 09:31
˜Ëî}:
Œ‘ºÃµÄ³¬Â•²¨œy¾à´ú´a£¬Õˆ´óÉñ½o¼ÓÒ»‚€ÕZÒô²¥ˆóÄ£‰K£¬ÔÚ¾€µÈ£¬¼±Ç󣡣¡£¡
#include <reg52.h> //¦Ì¡Â¨®Ã¦Ì£¤Æ¬»¨²¨ª¡¤Îļt
#define uchar unsigned char //ÎT¡¤ûoÅ¡ÁÖ¡¤ûD¨ª o¨º¶¡§¨°å ¡À䨢¿¡¤¶Î¡ì0~255
#define uint unsigned int //ÎT¡¤ûoÅÕûD¨ª o¨º¶¡§¨°å ¡À䨢¿¡¤¶Î¡ì0~65535
#include <intrins.h>
#include "eeprom52.h"
//¨ºyÂë1¨¹¶ÎÑ¡¶¡§¨°å 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
0x60,0x25,0x39,0x26,0x31,0x71,0xff}; //¶ÏÂë
uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
//¨ºyÂë1¨¹Î»Ñ¡¶¡§¨°å
sbit smg_we1 = P3^4; //¨ºyÂë1¨¹Î»Ñ¡¶¡§¨°å
sbit smg_we2 = P3^5;
sbit smg_we3 = P3^6;
sbit smg_we4 = P3^7;
sbit c_send = P3^2; //3¬¨¦¨´2¡§¡¤¡é¨¦ä
sbit c_recive = P3^3; //3¬¨¦¨´2¡§½¨®¨ºÕ
sbit beep = P2^3; //¡¤äè´Æ¡ÂIO¿¨²¶¡§¨°å
uchar smg_i = 3; //ÏÔ¨º¾¨ºyÂë1¨¹¦Ìĸöλ¨ºy
bit flag_300ms ;
long distance; //¾¨¤¨¤ë
uint set_d; //¾¨¤¨¤ë
uchar flag_csb_juli; //3¬¨¦¨´2¡§3¬3ö¨¢¿3¨¬
uint flag_time0; //¨®Ã¨¤¡ä¡À¡ê¡äæ¶¡§¨º¡ÀÆ¡Â0¦ÌĨº¡Ào¨°¦ÌÄ
uchar menu_1; //2˦̣¤¨¦¨¨¼Æ¦ÌÄ¡À䨢¿
/***********************1msѨ®¨º¡Ào¡¥¨ºy*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/***********************¡ä|¨¤¨ª¾¨¤¨¤ëo¡¥¨ºy****************************/
void smg_display()
{
dis_smg[0] = smg_du[distance % 10];
dis_smg[1] = smg_du[distance / 10 % 10];
dis_smg[2] = smg_du[distance / 100 % 10] & 0xdf; ;
}
/******************¡ãѨºy¾Y¡À¡ê¡äæ¦Ì½¦Ì£¤Æ¬»¨²Ä¨²2¿eepromÖD******************/
void write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000, set_d % 256);
byte_write(0x2001, set_d / 256);
byte_write(0x2058, a_a);
}
/******************¡ãѨºy¾Y¡ä¨®¦Ì£¤Æ¬»¨²Ä¨²2¿eepromÖD¶¨¢3ö¨¤¡ä*****************/
void read_eeprom()
{
set_d = byte_read(0x2001);
set_d <<= 8;
set_d |= byte_read(0x2000);
a_a = byte_read(0x2058);
}
/**************¿a»¨²¡ÁÔ¼¨¬eeprom3õ¨º¼»¡¥*****************/
void init_eeprom()
{
read_eeprom(); //Ϩ¨¶¨¢
if(a_a != 1) //D¦ÌĦ̣¤Æ¬»¨²3õ¨º¼¦Ì£¤Æ¬»¨²Ä¨²Î¨ºeeprom
{
set_d = 50;
a_a = 1;
write_eeprom(); //¡À¡ê¡ä樺y¾Y
}
}
/********************¶¨¤¨¢¡é¡ã¡ä¼¨¹3¨¬D¨°*****************/
uchar key_can; //¡ã¡ä¼¨¹Ö¦Ì
void key() //¶¨¤¨¢¡é¡ã¡ä¼¨¹3¨¬D¨°
{
static uchar key_new;
key_can = 20; //¡ã¡ä¼¨¹Ö¦Ì»1Ô-
P2 |= 0x07;
if((P2 & 0x07) != 0x07) //¡ã¡ä¼¨¹¡ã¡äÏÂ
{
delay_1ms(1); //¡ã¡ä¼¨¹Ïû¶¶¶¡¥
if(((P2 & 0x07) != 0x07) && (key_new == 1))
{ //¨¨¡¤¨¨Ï¨ºÇ¡ã¡ä¼¨¹¡ã¡äÏÂ
key_new = 0;
switch(P2 & 0x07)
{
case 0x06: key_can = 3; break; //¦Ìæ̽k2¼¨¹Ö¦Ì
case 0x05: key_can = 2; break; //¦Ìæ̽k3¼¨¹Ö¦Ì
case 0x03: key_can = 1; break; //¦Ìæ̽k4¼¨¹Ö¦Ì
}
}
}
else
key_new = 1;
}
/****************¡ã¡ä¼¨¹¡ä|¨¤¨ªÏÔ¨º¾o¡¥¨ºy***************/
void key_with()
{
if(key_can == 1) //¨¦¨¨Öü¨¹
{
menu_1 ++;
if(menu_1 >= 2)
{
menu_1 = 0;
smg_i = 3; //Ö»ÏÔ¨º¾3λ¨ºyÂë1¨¹
}
if(menu_1 == 1)
{
smg_i = 4; //Ö»ÏÔ¨º¾4λ¨ºyÂë1¨¹
}
}
if(menu_1 == 1) //¨¦¨¨ÖáÀ¡§¾¡¥
{
if(key_can == 2)
{
set_d ++ ; //¼¨®1
if(set_d > 400)
set_d = 400;
}
if(key_can == 3)
{
set_d -- ; //¼õ1
if(set_d <= 1)
set_d = 1;
}
dis_smg[0] = smg_du[set_d % 10]; //¨¨¡D¡¨ºyÏÔ¨º¾
dis_smg[1] = smg_du[set_d / 10 % 10] ; //¨¨¡¸öλÏÔ¨º¾
dis_smg[2] = smg_du[set_d / 100 % 10] & 0xdf ; //¨¨¡¨º®Î»ÏÔ¨º¾
dis_smg[3] = 0x60; //a
write_eeprom(); //¡À¡ê¡ä樺y¾Y
}
}
/****************¡À¡§¾¡¥o¡¥¨ºy***************/
void clock_h_l()
{
static uchar value;
if(distance <= set_d)
{
value ++; //Ïû3y¨º¦Ì¼¨º¾¨¤¨¤ëÔ¨²¨¦¨¨¶¡§¾¨¤¨¤ë¡Á¨®¨®¨°¡À仡¥¨º¡À¦Ìĸ¨¦¨¨Å
if(value >= 2)
{
beep = ~beep; //¡¤äè´Æ¡Â¡À¡§¾¡¥
}
}
else
{
value = 0;
beep = 1; //¨¨¡Ïû¡À¡§¾¡¥
}
}
/***********************¨ºyÂëλѡo¡¥¨ºy*****************************/
void smg_we_switch(uchar i)
{
switch(i)
{
case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;
case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;
case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;
case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break;
}
}
/***********************¨ºyÂëÏÔ¨º¾o¡¥¨ºy*****************************/
void display()
{
static uchar i;
i++;
if(i >= smg_i)
i = 0;
smg_we_switch(i); //λѡ
P1 = dis_smg[i]; //¶ÎÑ¡
}
/******************D¡Ñ¨®¨º¡Ào¡¥¨ºy*****************/
void delay()
{
_nop_(); //Ö¡äDD¨°»¨¬õ_nop_()Ö¸¨¢î¾¨ª¨ºÇ1us
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/*********************3¬¨¦¨´2¡§2a¾¨¤3¨¬D¨°*****************************/
void send_wave()
{
c_send = 1; //10us¦ÌĸߦÌçÆ½¡ä£¤¡¤¡é
delay();
c_send = 0;
TH0 = 0; //¸ø¶¡§¨º¡ÀÆ¡Â0Ç娢ã
TL0 = 0;
TR0 = 0; //1ض¡§¨º¡ÀÆ¡Â0¶¡§¨º¡À
while(!c_recive); //¦Ì¡Àc_reciveÎa¨¢ã¨º¡À¦Ì¨¨¡äy
TR0=1;
while(c_recive) //¦Ì¡Àc_reciveÎa1¼Æ¨ºy2¡é¦Ì¨¨¡äy
{
flag_time0 = TH0 * 256 + TL0;
if((flag_time0 > 40000)) //¦Ì¡À3¬¨¦¨´2¡§3¬1y2a¨¢¿¡¤¶Î¡ì¨º¡À¡ê¬ÏÔ¨º¾3¸ö888
{
TR0 = 0;
flag_csb_juli = 2;
distance = 888;
break ;
}
else
{
flag_csb_juli = 1;
}
}
if(flag_csb_juli == 1)
{
TR0=0; //1ض¡§¨º¡ÀÆ¡Â0¶¡§¨º¡À
distance =flag_time0; //¶¨¢3ö¶¡§¨º¡ÀÆ¡Â0¦ÌĨº¡À¼ä
distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M Ëã3ö¨¤¡ä¨ºÇáÁ
if((distance > 500)) //¾¨¤¨¤ë = ˨´¶¨¨ * ¨º¡À¼ä
{
distance = 888; //¨¨ç1û¡ä¨®¨®¨²3.8m¾¨ª3¬3ö3¬¨¦¨´2¡§¦ÌĨ¢¿3¨¬
}
}
}
/*********************¶¡§¨º¡ÀÆ¡Â0¡¡é¶¡§¨º¡ÀÆ¡Â13õ¨º¼»¡¥******************/
void time_init()
{
EA = 1; //¿a¡Á¨¹ÖD¶Ï
TMOD = 0X11; //¶¡§¨º¡ÀÆ¡Â0¡¡é¶¡§¨º¡ÀÆ¡Â11¡è¡Á¡Â¡¤½¨º½1
ET0 = 0; //1ض¡§¨º¡ÀÆ¡Â0ÖD¶Ï
TR0 = 1; //Ô¨ºD¨ª¶¡§¨º¡ÀÆ¡Â0¶¡§¨º¡À
ET1 = 1; //¿a¶¡§¨º¡ÀÆ¡Â1ÖD¶Ï
TR1 = 1; //Ô¨ºD¨ª¶¡§¨º¡ÀÆ¡Â1¶¡§¨º¡À
}
/***************Ö¡Âo¡¥¨ºy*****************/
void main()
{
beep = 0; //¿a»¨²½D¨°»¨¦¨´
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //3õ¨º¼»¡¥¦Ì£¤Æ¬»¨²IO¿¨²Îa¸ß¦ÌçÆ½
send_wave(); //2a¾¨¤¨¤ëo¡¥¨ºy
smg_display(); //¡ä|¨¤¨ª¾¨¤¨¤ëÏÔ¨º¾o¡¥¨ºy
time_init(); //¶¡§¨º¡ÀÆ¡Â3õ¨º¼»¡¥3¨¬D¨°
init_eeprom(); //¿a¨º¼3õ¨º¼»¡¥¡À¡ê¡äæ¦ÌĨºy¾Y
send_wave(); //2a¾¨¤¨¤ëo¡¥¨ºy
send_wave(); //2a¾¨¤¨¤ëo¡¥¨ºy
while(1)
{
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //¡À¡§¾¡¥o¡¥¨ºy
if(beep == 1)
send_wave(); //2a¾¨¤¨¤ëo¡¥¨ºy
if(menu_1 == 0)
smg_display(); //¡ä|¨¤¨ª¾¨¤¨¤ëÏÔ¨º¾o¡¥¨ºy
}
key(); //¡ã¡ä¼¨¹o¡¥¨ºy
if(key_can < 10)
{
key_with(); //¡ã¡ä¼¨¹¡ä|¨¤¨ªo¡¥¨ºy
}
}
}
/*********************¶¡§¨º¡ÀÆ¡Â1ÖD¶Ï¡¤tÎñ3¨¬D¨°************************/
void time1_int() interrupt 3
{
static uchar value; //¶¡§¨º¡À2msÖD¶Ï¨°»¡äÎ
TH1 = 0xf8;
TL1 = 0x30; //2ms
display(); //¨ºyÂë1¨¹ÏÔ¨º¾o¡¥¨ºy
value++;
if(value >= 150)
{
value = 0;
flag_300ms = 1;
}
}
//////EEPRO52.h
#ifndef _EEPROM52_H_
#define _EEPROM52_H_
uchar a_a;
/********STC89C51¨¦¨¨Çø¡¤Ö2¼*******
¦Ì¨²¨°»¨¦¨¨Çø¡êo1000H--11FF
¦Ì¨²¶t¨¦¨¨Çø¡êo1200H--13FF
¦Ì¨²¨¨y¨¦¨¨Çø¡êo1400H--15FF
¦Ì¨²ËĨ¦¨¨Çø¡êo1600H--17FF
¦Ì¨²Î娦¨¨Çø¡êo1800H--19FF
¦Ì¨²¨¢¨´¨¦¨¨Çø¡êo1A00H--1BFF
¦Ì¨²Æß¨¦¨¨Çø¡êo1C00H--1DFF
¦Ì¨²¡ã˨¦¨¨Çø¡êo1E00H--1FFF
*****************/
/********STC89C52¨¦¨¨Çø¡¤Ö2¼*******
¦Ì¨²¨°»¨¦¨¨Çø¡êo2000H--21FF
¦Ì¨²¶t¨¦¨¨Çø¡êo2200H--23FF
¦Ì¨²¨¨y¨¦¨¨Çø¡êo2400H--25FF
¦Ì¨²ËĨ¦¨¨Çø¡êo2600H--27FF
¦Ì¨²Î娦¨¨Çø¡êo2800H--29FF
¦Ì¨²¨¢¨´¨¦¨¨Çø¡êo2A00H--2BFF
¦Ì¨²Æß¨¦¨¨Çø¡êo2C00H--2DFF
¦Ì¨²¡ã˨¦¨¨Çø¡êo2E00H--2FFF
*****************/
#define RdCommand 0x01 //¶¡§¨°åISP¦ÌÄ2¨´¡Á¡Â蹨¢î
#define PrgCommand 0x02
#define EraseCommand 0x03
#define Error 1
#define Ok 0
#define WaitTime 0x01 //¶¡§¨°åCPU¦ÌĦ̨¨¡äy¨º¡À¼ä
sfr ISP_DATA=0xe2; //¼Ä¡äæÆ¡Â¨¦¨ºÃ¡Â
sfr ISP_ADDRH=0xe3;
sfr ISP_ADDRL=0xe4;
sfr ISP_CMD=0xe5;
sfr ISP_TRIG=0xe6;
sfr ISP_CONTR=0xe7;
/* ================ ¡ä¨°¿a ISP,IAP 1|Ĩ¹ ================= */
void ISP_IAP_enable(void)
{
EA = 0; /* 1ØÖD¶Ï */
ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 */
ISP_CONTR = ISP_CONTR | WaitTime; /* D¡ä¨¨ë¨®2¼tѨ®¨º¡À */
ISP_CONTR = ISP_CONTR | 0x80; /* ISPEN=1 */
}
/* =============== 1Ø¡ÀÕ ISP,IAP 1|Ĩ¹ ================== */
void ISP_IAP_disable(void)
{
ISP_CONTR = ISP_CONTR & 0x7f; /* ISPEN = 0 */
ISP_TRIG = 0x00;
EA = 1; /* ¿aÖD¶Ï */
}
/* ================ 1«¨®Ã¦Ìġ䣤¡¤¡é¡ä¨²Âë ==================== */
void ISPgoon(void)
{
ISP_IAP_enable(); /* ¡ä¨°¿a ISP,IAP 1|Ĩ¹ */
ISP_TRIG = 0x46; /* ¡ä£¤¡¤¡éISP_IAP蹨¢î¡ÁÖ½¨²1 */
ISP_TRIG = 0xb9; /* ¡ä£¤¡¤¡éISP_IAP蹨¢î¡ÁÖ½¨²2 */
_nop_();
}
/* ==================== ¡ÁÖ½¨²¶¨¢ ======================== */
unsigned char byte_read(unsigned int byte_addr)
{
EA = 0;
ISP_ADDRH = (unsigned char)(byte_addr >> 8);/* ¦ÌØÖ¡¤¸3Ö¦Ì */
ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
ISP_CMD = ISP_CMD & 0xf8; /* Çå3y¦Ì¨ª3λ */
ISP_CMD = ISP_CMD | RdCommand; /* D¡ä¨¨ë¶¨¢Ã¨¹¨¢î */
ISPgoon(); /* ¡ä£¤¡¤¡éÖ¡äDD */
ISP_IAP_disable(); /* 1Ø¡ÀÕISP,IAP1|Ĩ¹ */
EA = 1;
return (ISP_DATA); /* ¡¤¦Ì»Ø¶¨¢¦Ì½¦ÌĨºy¾Y */
}
/* ================== ¨¦¨¨Çø2¨¢3y ======================== */
void SectorErase(unsigned int sector_addr)
{
unsigned int iSectorAddr;
iSectorAddr = (sector_addr & 0xfe00); /* ¨¨¡¨¦¨¨Çø¦ÌØÖ¡¤ */
ISP_ADDRH = (unsigned char)(iSectorAddr >> 8);
ISP_ADDRL = 0x00;
ISP_CMD = ISP_CMD & 0xf8; /* Çå¿Õ¦Ì¨ª3λ */
ISP_CMD = ISP_CMD | EraseCommand; /* 2¨¢3y蹨¢î3 */
ISPgoon(); /* ¡ä£¤¡¤¡éÖ¡äDD */
ISP_IAP_disable(); /* 1Ø¡ÀÕISP,IAP1|Ĩ¹ */
}
/* ==================== ¡ÁÖ½¨²D¡ä ======================== */
void byte_write(unsigned int byte_addr, unsigned char original_data)
{
EA = 0;
// SectorErase(byte_addr);
ISP_ADDRH = (unsigned char)(byte_addr >> 8); /* ¨¨¡¦ÌØÖ¡¤ */
ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
ISP_CMD = ISP_CMD & 0xf8; /* Çå¦Ì¨ª3λ */
ISP_CMD = ISP_CMD | PrgCommand; /* D¡ä蹨¢î2 */
ISP_DATA = original_data; /* D¡ä¨¨ë¨ºy¾Y¡Á¼¡À¸ */
ISPgoon(); /* ¡ä£¤¡¤¡éÖ¡äDD */
ISP_IAP_disable(); /* 1Ø¡ÀÕIAP1|Ĩ¹ */
EA =1;
}
#endif
×÷Õß:
cjjcjj1
•rég:
2017-6-6 10:39
Ìáʾ:
×÷Õß±»½ûÖ¹»ò„h³ý ƒÈ(n¨¨i)ÈÝ×Ô„ÓÆÁ±Î
šgÓ¹âÅR (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
国产1区在线
|
91日日
|
亚洲欧美日韩国产综合
|
一区二区福利视频
|
色本道
|
男女又爽又黄视频
|
亚洲精品在线视频
|
懂色av一区二区三区在线播放
|
久久久www成人免费无遮挡大片
|
国产精品久久久久久久久久妞妞
|
欧美久久久久久
|
亚洲成人自拍
|
一区二区三区视频在线观看
|
一级黄色大片
|
日本一区二区三区四区
|
国产999精品久久久久久
|
99久久免费精品国产免费高清
|
99久久国产
|
在线观看中文视频
|
天天插天天操
|
成人免费看片又大又黄
|
中文字幕视频在线观看免费
|
99精品久久久久久
|
日韩电影一区二区三区
|
91社影院在线观看
|
亚洲美女网站
|
国产亚洲精品久久午夜玫瑰园
|
作爱视频免费观看
|
成人在线视频免费观看
|
成人国内精品久久久久一区
|
国产欧美视频一区二区三区
|
久久久久中文字幕
|
精品久久一区二区
|
91精品久久久久久久久久入口
|
日本三级电影在线观看视频
|
亚洲视频免费观看
|
日韩在线播放av
|
日韩精品视频在线观看一区二区三区
|
av在线天堂
|
亚洲超碰在线观看
|
国产精品久久久久无码av
|