- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
新建 文本文档.txt
资源名称:AVR.rar [点击查看]
上传用户:sophiecyc
上传日期:2007-10-14
资源大小:14856k
文件大小:2k
源码类别:
单片机开发
开发平台:
C/C++
- void EEPROM_write(unsigned int uiAddress,unsigned char ucData)
- {
- while(EECR & (1<<EEWE)); //等待EEPROM的前一个写操作完成
- EEAR = uiAddress; //设置要写入的EEPROM地址
- EEDR = ucData; //设置要写入的数据
- EECR |= (1<<EEMWE); //写1到EEMWE位
- EECR |= (1<<EEWE);//写1到EEWE位,开始写EEPROM的操作
- }
- unsigned char EEPROM_read(unsigned int uiAddress)
- {
- while(EECR & (1<<EEWE)); //等待EEPROM的前一个写操作完成
- EEAR = uiAddress; //设置要读取的EEPROM地址
- EECR |= (1<<EERE);//写1到EERE位,开始读取EEPROM的操作
- return EEDR; //返回读取的数据
- }
- #pragma data:eeprom //设置数据区到EEPROM
- char key[] = {“RADIO”};
- char password[] = {“CBC:123456%ABC@163.COM: ABCDEFG$”};
- //假设我们用“%”作为密码之间的分割;“$”为密码结束标志
- #pragma data:data //设置数据区回到数据存储器
- unsigned char scan_keyboard(void)
- {
- unsigned char ctemp;
- unsigned char ctempadd;
- unsigned char creturn;
- PORTC = 0XFF;
- for(ctemp=0;ctemp<4;ctemp++)
- {
- PORTC = ~(1<<ctemp); //PC0管脚输出低电平
- delay_us(50); //短延时,等待电平稳定
- ctempadd = PINC&0XF0; //读取列线状态
- if (ctempadd!=0xf0) //有按键按下
- {
- delay_ms(100); //按键消抖
- ctempadd = PINC&0XF0; //再次读取列连状态
- if (ctempadd!=0xf0) //按键仍然处于按下状态
- {
- switch (ctempadd)
- {
- case 0x70 : ctempadd = (ctemp*4+0); break;
- case 0xb0 : ctempadd = (ctemp*4+1); break;
- case 0xd0 : ctempadd = (ctemp*4+2); break;
- case 0xe0 : ctempadd = (ctemp*4+3); break;
- }
- creturn = keytable[ctempadd]; //查表获取键值
- while ((PINC&0XF0)!=0xf0); //等待按键抬起
- return creturn;
- }
- }
- PORTC = 0XFF;
- }
- return 0xaa; //没有按键动作
- }