电子工程实践报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子工程实践报告
电子工程实践报告
专业:电子信息工程班级:电子1006 姓名:张凌飞完
成日期: xx年9月28 日
第1章实践内容简述
(不少于400字)
1.1 无线传感网络部分
一、实验课题:光照传感器,红外反射传感器,温湿度传感器,Zigbee
模块通信,传感器模块与Zigbee模块通信。
二、掌握单片机调试的操作步奏:首先将传感器模块插到USB2UART 板上,
连接好ST-Link下载器与USB连接线,然后使用IAR SWSTM 81.30软件,打开..、2-Sensor_光照传感器、project\Sensor.eww.打开后点击project的REBUIL ALL,
对工程进行编译。编译完后,将程序烧到模块里,点击Download and Debuil进行。打开串口调试器,设置串口和波特率(115200)
1.2 AVR单片机部分
LED驱动实验,独立键盘实验,74HC595数码管应用实验,LCD1602 液晶显示器显示实验,DS1302时钟芯片。
第2章实践项目分析
(不少于1500字)
2.1 运用本次实践所学知识,结合毕业设计,完成你感兴趣的电
子工程
项目设计分析。
2.2.1 设计题目
按键控制LED液晶屏的多功能显示。
2.2.2 设计任务
按键控制LCD液晶屏显示姓名学号,日期时间,滚屏,清屏。
2.2.3 重点研究内容
同时按多键清屏控制不影响其他预计功能使用。
2.3 画出电子工程项目的设计框图
1
2
源程序:
#include "config.h" //头文件#include #define LED_DDR DDRB #define LED_PORT PORTB uchar key; uchar i=0; uchar a=0,b=0,c=0; uchar keyscan(void); uchar const ucString1[]={"zhanglingfei"}; //对于不会改变的常量可在定义时在前面加上const uchar const ucString2[]={"xx15141 "}; uchar const ucString3[]={"wuhao "}; uchar const ucString4[]={"xx15 "}; uchar const
ucString11[]={"01 zhanglingfei"}; //对于不会改变的常量可在
定义时在前面加上const uchar const ucString13[]={"02 wuhao "}; uchar const ucStringq[]={" "}; uchar
sec,min,hour,day,month,year,year2=20; uchar
secs,mins,hours,days,months,years; uchar
secg,ming,hourg,dayg,monthg,yearg; uchar yearb,yearq;
/********************************************************** ****** 端口初始化函数
*********************************************************** *****/ void port_init(void) { PORTA=0x00; DDRA =0xff; //液晶控制端口设置为输出 PORTB=0x00; DDRB =0xff; //液晶数据端口设置为输出 PORTC=0x00; DDRC =0xff; PORTD=0x00; DDRD =0xff; } /********************************************************** ****** 主函数
*********************************************************** *****/ void main(void) { uchar x=0; LED_PORT=0xff;
LED_DDR=0xff; port_init(); //端口初始化 LCD1602Init(); //液晶屏初始化 year=0x13; month=0x09; day=0x28; hour=0x23;
min=0x59; sec=0x55;
DS1302_SetTime(&sec,&min,&hour,&day,&month,&year,&year2); delay_ms(10);
3
while(1) { x=keyscan(); if(x==1)
{ LCD1602MoveToPosition(0,0); //定位函数
LCD1602PrintString(ucStringq);//字符输出函数
LCD1602MoveToPosition(1,0); LCD1602PrintString(ucStringq); } else if(x==2) { LCD1602MoveToPosition(0,0); //定位函数
LCD1602PrintString(ucString1);//字符输出函数
LCD1602MoveToPosition(1,0); LCD1602PrintString(ucString2); } else if(x==3)
{ DS1302_GetTime(&sec,&min,&hour,&day,&month,&year,&year2); xianshi(); } else if(x==4) { LCD1602MoveToPosition(0,0); //定位函数 LCD1602PrintString(ucString11);//字符输出函数
LCD1602MoveToPosition(1,0); LCD1602PrintString(ucString2); delay_ms(100); LCD1602MoveToPosition(0,0);
LCD1602PrintString(ucString13); LCD1602MoveToPosition(1,0); LCD1602PrintString(ucString4); delay_ms(100); }
/*LCD1602MoveToPosition(0,0); //定位函数
LCD1602PrintString(ucString1);//字符输出函数
LCD1602MoveToPosition(1,0); LCD1602PrintString(ucString2); delay_ms(5000); //延时5秒每次只能输出两行字符各显示5S钟LCD1602MoveToPosition(0,0); LCD1602PrintString(ucString3); LCD1602MoveToPosition(1,0); LCD1602PrintString(ucString4); delay_ms(5000); //延时5秒*/ } } uchar keyscan(void) { uchar temp=0; uchar temp2=0; uchar temp3=0; uchar key_value=0; uchar key_value2=0;
4