生成一段MCS-51系列单片机程序,要求:设计一种简易的售货机,可以识别10元和5元纸币基本要求: (1)用按键A和B分别表示10元和5元纸币的投放; (2)设定啤酒每罐10元,可乐每罐5元,并在LCD显示屏显示价钱; (3)用C和D两个按键表示选择啤酒或可乐,同时对应两个LED灯点亮; (4)当C或D被按下后,相应的营业灯亮(表示可以投币),同时用A和B按 键投入金额; (5)当投币金额等于物品价格时,取货LED亮起表示即可取货; (6)当投币金额大于物品价格时,取货LED亮起,同时找零LED亮起表示找 零。用MCS-51系列单片机设计一种简易的售货机,可以识别10元和5元纸币基本要求: (1)用按键A和B分别表示10元和5元纸币的投放; (2)设定啤酒每罐10元,可乐每罐5元,并在LCD显示屏显示价钱; (3)用C和D两个按键表示选择啤酒或可乐,同时对应两个LED灯点亮; (4)当C或D被按下后,相应的营业灯亮(表示可以投币),同时用A和B按 键投入金额; (5)当投币金额等于物品价格时,取货LED亮起表示即可取货; (6)当投币金额大于物品价格时,取货LED亮起,同时找零LED亮起表示找 零。
时间: 2023-06-24 13:07:22 浏览: 159
由于这是一段MCS-51系列单片机程序的代码,我将提供伪代码来实现此售货机:
1. 定义变量:啤酒价格为10元,可乐价格为5元,投入的金额为0元,选择的饮料为0(默认为无选择)。
2. 初始化:设置按键A、B、C、D和LED灯的引脚方向,设置LCD显示屏并清空。
3. 主循环:
a. 检测按键C和D是否被按下,如果有一个被按下,则相应的LED灯点亮,选择的饮料为啤酒或可乐(根据按下的按键)。
b. 检测按键A和B是否被按下,如果有一个被按下,则相应的投入金额增加10元或5元。
c. 显示LCD屏幕上的投入金额和选择的饮料的价格。
d. 如果投入金额等于所选饮料的价格,则取货LED亮起,投入金额清零。
e. 如果投入金额大于所选饮料的价格,则取货LED亮起,找零LED亮起,投入金额减去所选饮料的价格。
f. 循环执行以上步骤。
下面是代码的伪代码实现:
```
// 定义变量
int beer_price = 10;
int cola_price = 5;
int input_money = 0;
int selected_drink = 0; // 0:无选择,1:啤酒,2:可乐
// 初始化
setup() {
set_pin_directions(); // 设置引脚方向
clear_lcd_screen(); // 清空LCD显示屏
}
// 主循环
loop() {
// 检测按键C和D
if (button_c_pressed()) {
turn_on_led_c(); // 点亮LED灯C
selected_drink = 1; // 选择啤酒
} else if (button_d_pressed()) {
turn_on_led_d(); // 点亮LED灯D
selected_drink = 2; // 选择可乐
}
// 检测按键A和B
if (button_a_pressed()) {
input_money += 10; // 投入10元
} else if (button_b_pressed()) {
input_money += 5; // 投入5元
}
// 显示LCD屏幕
display_lcd_screen(input_money, selected_drink);
// 判断投入金额是否足够购买饮料
if (input_money == beer_price && selected_drink == 1) {
turn_on_led_take(); // 点亮取货LED灯
input_money = 0; // 投入金额清零
selected_drink = 0; // 取消选择
} else if (input_money == cola_price && selected_drink == 2) {
turn_on_led_take(); // 点亮取货LED灯
input_money = 0; // 投入金额清零
selected_drink = 0; // 取消选择
} else if (input_money > beer_price && selected_drink == 1) {
turn_on_led_take(); // 点亮取货LED灯
turn_on_led_change(); // 点亮找零LED灯
input_money -= beer_price; // 投入金额减去啤酒价格
selected_drink = 0; // 取消选择
} else if (input_money > cola_price && selected_drink == 2) {
turn_on_led_take(); // 点亮取货LED灯
turn_on_led_change(); // 点亮找零LED灯
input_money -= cola_price; // 投入金额减去可乐价格
selected_drink = 0; // 取消选择
}
delay(100); // 延时100毫秒
}
```
阅读全文