网站建设制作与运营wordpress模板制作软件
news/
2025/10/3 13:26:21/
文章来源:
网站建设制作与运营,wordpress模板制作软件,百度 seo优化作用,怎么在建设部网站查注册造价师使用Proteus仿真软件设计一个开机登录程序,单片机选用ATmegga48. 基础要求: 1.程序启动后在LCD1602液晶屏上提示用户通过独立按键输入密码(6位)。 2.密码输入错误则在屏幕上提示密码错误,密码输入正确则在屏幕上提示密 码正确后等待约3秒后进入主界面,在屏幕中央显示HelloWorld…使用Proteus仿真软件设计一个开机登录程序,单片机选用ATmegga48. 基础要求: 1.程序启动后在LCD1602液晶屏上提示用户通过独立按键输入密码(6位)。 2.密码输入错误则在屏幕上提示密码错误,密码输入正确则在屏幕上提示密 码正确后等待约3秒后进入主界面,在屏幕中央显示HelloWorld。 附加任务:在原题基础上 1.LCD1602改用LCD12864液晶屏显示,独立按键改用4x4巨阵键盘。 2.首次开机可直接设置新密码,非首次开机提示用户输入密码,尽量使用内 部EEPROM。 3.进入主界面后用几个按键来实现修改之前保存的密码,修改E时屏幕上有光 标和相关提示。 实验报告基于ATmega48的开机登录程序设计
一、实验目的
设计并实现一个基于ATmega48单片机的开机登录程序通过Proteus仿真软件进行仿真使用LCD12864液晶屏和4x4矩阵键盘实现密码输入和验证功能初次开机可以设置新密码后续可以通过按键修改密码。
二、实验器材
ATmega48单片机LCD12864液晶屏4x4矩阵键盘Proteus仿真软件按键和其他必要的电子元件
三、硬件连接
LCD12864液晶屏连接 数据线连接到单片机的PORTB控制线E、RS、RW、复位等连接到PORTC的相应引脚 4x4矩阵键盘连接 行和列引脚分别连接到单片机的PORTD的输入输出引脚
四、设计原理
1. 程序启动流程
程序启动后在LCD12864液晶屏上提示用户输入密码6位。初次开机允许用户设置新密码密码保存在内部EEPROM中。用户输入密码后程序进行验证若密码正确显示“Hello World”欢迎界面若密码错误提示用户重新输入。进入主界面后用户可以通过特定按键修改之前保存的密码。
2. 程序功能模块
LCD12864液晶屏的初始化与控制 液晶屏初始化函数F12864_init()设定文本和图形显示区地址、光标形状和显示方式等。液晶屏显示控制函数包括写命令、写数据、清屏等功能。 EEPROM读写操作 通过内部EEPROM保存和读取密码EEPROM_read()和EEPROM_write()函数实现读写操作。 密码输入与验证 用户通过矩阵键盘输入密码程序实时显示输入的密码。初次开机时允许用户设置新密码并保存在EEPROM中。非初次开机时读取EEPROM中的密码进行验证。 按键扫描 矩阵键盘按键扫描函数get_key()实现按键识别。 修改密码 进入主界面后用户可以通过按键进入修改密码模式按步骤输入旧密码和新密码进行修改并更新EEPROM中的密码。
五、程序原理
// LCD12864初始化函数
void F12864_init(void) {// 数据方向设置DDRB 0xFF;DDRC 0xFF;// 复位REST_0;delay_nms(20);REST_1;// 设置文本显示区首地址、宽度和图形显示区首地址、宽度write_ddc(0x40, 0x00, 0x00);write_ddc(0x41, 128 / 8, 0x00);write_ddc(0x42, 0x00, 0x08);write_ddc(0x43, 128 / 8, 0x00);// 光标形状、显示方式和显示开关设置write_commond(0xA0);write_commond(0x80);write_commond(0x98);write_commond(0x9F);
}// 读取EEPROM中的密码
void read_pwd(void) {for (char i 0; i 6; i) {SYSTEM_PASSWORD[i] EEPROM_read(0x0040 i);}
}// 写入密码到EEPROM
void write_pwd(void) {for (char i 0; i 6; i) {EEPROM_write(0x0040 i, SYSTEM_PASSWORD[i]);}
}// 主程序
void main(void) {// 初始化F12864_init();F12864_clear();// 判断是否为首次开机if (get_vaild_pwd() 0) {// 设置新密码流程set_new_password();} else {// 读取密码并进行验证read_pwd();verify_password();}// 进入主界面允许用户修改密码enter_main_interface();
}// 延时函数
void delay_nms(unsigned int time) {for (; time 0; time--) {for (int i 0; i 500; i);}
}六、实验总结
通过本次实验我们熟悉了ATmega48单片机的基本操作掌握了LCD12864液晶屏的驱动方法和EEPROM的读写操作。通过Proteus仿真验证了设计的开机登录程序功能的实现。通过合理的模块化设计使得程序结构清晰、功能完善为后续类似设计提供了参考和借鉴。
资源代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tabBB08J2
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925943.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!