论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
4.3.2 键盘扫描程序: unsigned char Key_Scan( void ) // 键盘扫描程序 (返回按键值)
{
unsigned char Key = 0 ; // 定义按键值变量
PORTD = 0x0f ; // PD0~PD3输出低电平,PD4~PD7上拉电阻
DDRD = 0xf0 ; // PD0~PD3定义为输出,PD4~PD7定义为输入
if ( ( PIND & 0x04 ) == 0 )
Key_1 = 1 ; // 读取相应输入口的电平
else if ( ( PIND & 0x02 ) == 0 ) // 以确定是否有按键按下
Key_1 = 2 ; // 并赋予相应的Key值
else if ( ( PIND & 0x01 ) == 0 )
Key_1 = 3 ;
delay_nms(50) ; // 延时50ms
4.4 EEPROM读写程序 Atmega8芯片内集成有512个字节的EEPROM,擦写次数高达100000次。本系统的全部信息都存储在此EEPROM内,包括:登录密码、被允许的IC卡信息。所有输入的数据都要与EEPROM内的数据比较,符合要求的才能被允许。所以此EEPROM在本系统中起着到关重要的作用。EEPROM的读写程序如下:
// 写EEPROM程序 // 写入的地址形参 // 写入的数据 void EEPROM_write( unsigned int uiAddress , unsigned char ucData )
{
while(EECR & ( 1 << EEWE ) ) ; // 等待上一次写操作结束
EEAR = uiAddress ; // 地址传递 (科教范文网 lw.nseaC.Com编辑发布)
EEDR = ucData ; // 数据传递
EECR |= ( 1 << EEMWE ) ; // 置位EEMWE
EECR |= ( 1 << EEWE ) ; // 置位EEWE以启动写操作
}
// 读EEPROM程序 // 读出的地址形参 unsigned char EEPROM_read( unsigned int uiAddress )
{
while ( EECR & ( 1 << EEWE ) ) ; // 等待上一次写操作结束
EEAR = uiAddress ; // 地址传递
EECR |= ( 1 << EERE ) ; // 设置EERE以启动读操作
return EEDR ; // 自数据寄存器返回数据
}
参考文献:
[1] 马潮、詹卫前、耿德根。Atmega8原理及应用手册。清华大学出版社,2004
[2] 沈文、Eagle lee、詹卫前。AVR单片机C开发入门。清华大学出版社,2004
[3] 马忠梅、籍顺心、张凯、马岩。单片机的C语言应用程序设计。北京航空航天大学出版社,2005
[4] 郑莉、董渊。C++语言程序设计(第二版)。清华大学出版社,2004
[5] 胡键。单片机原理及接口技术。出版社,2005
[6] 谢自美。线路设计-实验-测试(第二版)。华中科技大学出版社,2004
[7] 和飞、周苏平。2006届本科生优秀(设计)选。广东人民出版社,2006