做网站买什么书,微信小程序购物平台,女生学电子商务专业好吗,大数据机电荷2018级课程设计题目及要求 题1:电子称重器设计 功能要求: 1)开机显示时间(小时、分)、时分可修改; 2)用滑动变阻器模拟称重传感器(测量范围0- 200g),数码管显示当前重量值,当重量值高于高 值时,红灯长亮; 3)当重量值低于低值时,黄灯长亮; 4)当重量值在正常值时,绿灯亮; 5…机电荷2018级课程设计题目及要求 题1:电子称重器设计 功能要求: 1)开机显示时间(小时、分)、时分可修改; 2)用滑动变阻器模拟称重传感器(测量范围0- 200g),数码管显示当前重量值,当重量值高于高 值时,红灯长亮; 3)当重量值低于低值时,黄灯长亮; 4)当重量值在正常值时,绿灯亮; 5)重量高值150g-200g和低值30g。 硬件调试:实现以上功能
数码管 段选RORTD八个引脚 位选PC0 PC1 PA1 PA2 PA3 PA4 PA5(只用到7位数码管) 按键四个 PB0 PB1 PB2 PB3 滑动变阻器接PA0 三个灯黄绿红接PB4 PB5 PB6
功能: 1数码管前四个显示时和分比如0158代表1点58分。数码管最后三位显示重量000到200表示多少g。 重量低于30则黄灯亮。 重量正常则绿灯亮。 重量高于150则红灯亮。 按键1增加小时按键2减少小时。(调时) 按键3增加分钟按键4减少分钟。(调分) 正常走时。 电子称重器设计
功能要求
显示时间开机后显示当前时间小时和分钟并且可以通过按键进行时、分的修改。重量测量使用滑动变阻器模拟称重传感器测量范围为0到200克。数码管实时显示当前重量。重量报警根据测量的重量值分别控制三种指示灯 当重量高于150克时红灯亮。当重量低于30克时黄灯亮。当重量在30克到150克之间时绿灯亮。
硬件配置
数码管用于显示时间和重量。段选引脚连接RORTD位选引脚连接PC0、PC1、PA1、PA2、PA3、PA4、PA5只使用7位数码管。按键四个按键分别连接到PB0、PB1、PB2、PB3。用于调整时间。滑动变阻器连接到PA0用于模拟称重传感器。指示灯三个灯黄、绿、红分别连接到PB4、PB5、PB6。
系统原理 时间显示与调整 数码管的前四个位置用于显示当前时间。例如显示0158表示当前时间是1点58分。通过按键1和按键2可以增加或减少小时通过按键3和按键4可以增加或减少分钟。时间正常计时并且每秒钟更新一次。 重量测量与显示 滑动变阻器模拟称重传感器通过AD转换器将模拟信号转换为数字信号。AD转换后的数据经过处理显示在数码管的后三位。例如显示050表示当前重量为50克。重量的变化实时更新到数码管上。 重量报警指示 程序根据重量值的范围控制相应的指示灯。 当重量低于30克时黄灯亮表示重量过轻。当重量在30克到150克之间时绿灯亮表示重量正常。当重量超过150克时红灯亮表示重量过重。
程序实现与讲解
1. 初始化设置
DDRA 0xFF - 0x01; // 配置引脚的输入输出关系
DDRC | 0x03; // 配置引脚的输入输出关系
DDRD 0xFF; // 配置引脚的输入输出关系
DDRB 0xF0; // 配置引脚的输入输出关系这段代码配置了各个引脚的输入输出关系。数码管、滑动变阻器和指示灯分别连接到不同的端口。
2. 时间更新与显示
SEG_DISP[0] LED_Disbuf[time_hour % 100 / 10];
SEG_DISP[1] LED_Disbuf[time_hour % 10];
SEG_DISP[2] LED_Disbuf[time_minute % 100 / 10];
SEG_DISP[3] LED_Disbuf[time_minute % 10];这段代码将当前时间的小时和分钟分解成个位和十位并将其转换为数码管显示的内容。
3. 按键检测与时间调整
int GetKey(void) {if ((PINB 0x01) 0) {return 1; // 第1个按键} else if ((PINB 0x02) 0) {return 2; // 第2个按键} else if ((PINB 0x04) 0) {return 3; // 第3个按键} else if ((PINB 0x08) 0) {return 4; // 第4个按键}return 0;
}这个函数检测哪个按键被按下并返回相应的按键编号。通过这个返回值可以调整时间。
if (keyvalue 1) { // 按键1的功能time_hour;if (time_hour 24) time_hour 0;
} else if (keyvalue 2) { // 按键2的功能if (time_hour 0) {time_hour 23;} else {time_hour--;}
} else if (keyvalue 3) { // 按键3的功能time_minute;if (time_minute 60) time_minute 0;
} else if (keyvalue 4) { // 按键4的功能if (time_minute 0) {time_minute 59;} else {time_minute--;}
}根据按键检测结果调整小时和分钟。按键1和按键2用于增加和减少小时按键3和按键4用于增加和减少分钟。
4. 重量检测与显示
unsigned int AD_GetData(void) {unsigned int ADData0;ADMUX (1 REFS0); // ADC参考电压为AVccADC结果右对齐选择通道ADC0ADCSRA | (1 ADEN) | (1 ADPS2) | (1 ADPS1); // 使能AD转换ADC时钟64分频ADCSRA | (1 ADSC); // 开始AD转换while (!(ADCSRA (1 ADIF)));ADCSRA | (1 ADIF); // 清零ADC中断标志位ADData0 ADC;ADData0 ((long)ADData0 * 5010 / 1024); // 将获得的AD值转换为电压值单位为mvADData0 ADData0 / 25; // 数值换算到0~200greturn ADData0;
}该函数通过AD转换器获取滑动变阻器的电压值并将其转换为重量值显示在数码管上。
5. 指示灯控制
if (ADData0 30) { // 重量低于30PORTB ~0x10; // PB4低电平黄灯亮PORTB | 0x20; // PB5高电平绿灯不亮PORTB | 0x40; // PB6高电平红灯不亮
} else if (ADData0 150) {PORTB ~0x20; // PB5低电平绿灯亮PORTB | 0x10; // PB4高电平黄灯不亮PORTB | 0x40; // PB6高电平红灯不亮
} else {PORTB ~0x40; // PB6低电平红灯亮PORTB | 0x20; // PB5高电平绿灯不亮PORTB | 0x10; // PB4高电平黄灯不亮
}根据重量值控制相应的指示灯。当重量低于30克时黄灯亮重量在30克到150克之间时绿灯亮重量超过150克时红灯亮。
通过以上功能模块的合理设计和实现可以完成电子称重器的主要功能包括时间显示与调整、重量测量与显示以及重量报警指示。
资源
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?ubdf8eeb84961492ba2b62f7bfee641eatabBB08J2