新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 電子測速里程防盜報警器設(shè)計

電子測速里程防盜報警器設(shè)計

作者: 時間:2012-09-08 來源:網(wǎng)絡(luò) 收藏
//************************************************************//標(biāo)題:4乘4鍵盤的輸入函數(shù)//  函數(shù)描述:   char gotkey(void)//             從4*4小鍵盤輸入數(shù)據(jù),返回0~9,及其它數(shù)據(jù).//***********************************************************//時間//*********************************************************void delay (void)     {unsigned char i,j;for(i=0;i5;i++)for(j=0;j255;j++);}//*************************************************//檢查是否有按鍵按下//*************************************************char keypad_scan()   {char key,i;p2=0xF0;while(p2!=0XF0);do{for(i=0;i=3;i++){  p2=ksp;if(p2!=ksp){delay();key=p2;if(key!=ksp){return(key);}}}}while(1);}//***************************************//取得鍵值//***************************************char gotkey(){char temp,i;temp=keypad_scan();for(i=0;i=15;i++){if(temp==key_code)return(i);}}//**************************************//93c66驅(qū)動程序//**************************************//********************************************unsigned char read_byte(int address){int i, command;unsigned char temp;CS=1;command=(READ|address);write_command(command);for(i=0;i8;i++){SK=1;SK=0;temp=(temp1);if(DO==1)temp=(temp|0X01);}CS=0;return(temp);}//**********************************************void write_enable(){int command;CS=1;command=EWEN;write_command(command);CS=0;}//***********************************************void write_disable(){int command;CS=1;command=EWDSwrite_command(command);CS=0;}//************************************************void write_byte(int address,unsigned char write_date){int i,command;write_enable();CS=1;command=(WRITE|address);write_command(command);for(i=0;i8;i++){if(write_date0X80)}DI=1;elaeDI=0;SK=1;SK=0;write_date=(write_data1);}check_busy();write_disable();}//*************************************************void write_command(int command){int i;command=(commandshiftbit);for(i=0;i12;i++){if(command0X8000)DI=1;elseDI=0;SK=1;SK=0;command=(command1);}}//***********************************************void check_busy(void){CS=0;CS=1;while(DO==0);}//******************************************//標(biāo)題:ISD4004驅(qū)動法程序//功能:語音選段播放//******************************************void delay(unsigned int time) //延遲n微秒{while(time!=0){time-- ;}}void delayms(unsigned int time) //延遲n毫秒{ TMOD=0x01;for(time;time>0;time--){TH0=0xfc;TL0=0x18;TR0=1;while(TF0!=1){;}TF0=0;TR0=0;}}//************************************//ISD4004 spi串行發(fā)送子程序,16位數(shù)據(jù)//************************************void spi_send(unsigned char isdx){ unsigned char isx_counter;SS=0; //ss=0,打開spi通信端SCLK=0;for(isx_counter=0;isx_counter8;isx_counter++) //先發(fā)低位再發(fā)高位,依次發(fā)送。{ if ((isdx0x01)==1)MOSI=1;elseMOSI=0;isdx=isdx>>1;SCLK=1;delay(2);SCLK=0;delay(2);}}//*******************************//發(fā)送stop指令//*******************************void isd_stop(void){ delay(10);spi_send(0x30);SS=1;delayms(50);}//*******************************//發(fā)送上電指令,并延遲50ms//*******************************void isd_pu(void){ delay(10);SS=0;spi_send(0x20);SS=1;delayms(50);}//*******************************//發(fā)送掉電指令,并延遲50ms//*******************************void isd_pd(void){ delay(10);spi_send(0x10);SS=1;delayms(50);}//*******************************//發(fā)送分段語音setplay指令//*******************************void isd_setplay(unsigned char adl,unsigned char adh){isd_pd();delayms(1);spi_send(adl); delay(2);spi_send(adh); delay(2);spi_send(0xe0); SS=1;spi_send(0xf0);SS=1;if(ISD_INT==0)isd_stop();isd_pd(); }


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉