导航:首页 > 操作系统 > 单片机按键菜单

单片机按键菜单

发布时间:2022-12-14 00:17:30

单片机按键进行菜单选择的编程思想

有以下几种情况:
1.循环查询按键。当按键按第一次时间,进入第一层循环查询语句内部,执行恢复。不跳出该层循环,继续查询按键。当第二次按下时间,进入第二层循环查询语句内部,执行暂停。循环结束。若想反复暂停和恢复,就在外面再加一层while(1)类似的死循环,反复执行其内部的两层循环查询语句。
2.用一个标志变量,记住按键的状态。初始化为个值,如“暂停”,按键之后检查标志变量,是“暂停”就执行“恢复”,再让它变为“恢复”说明当前已经执行了恢复。反之亦然。
3.掉电暂停。这样需要按键能触发cpu工作。所以,需要按键接到外部中断上面。中断后可以恢复cpu工作。在中断中再判断是否要让cpu掉电与否。
不知道这种方法你能接受不?还是用外部中断。此按键触发中断后,关掉所有其他的中断,也即ea=0(最好先用个变量记住ea,方便恢复),然后就一直在中断中等待该按键第二次按下再恢复ea,最后退出中断。

⑵ 请问如何用单片机实现液晶菜单程序中的返回上一级菜单功能

单片机!呵呵,我学的也是51系列那些乱七八糟的,大学专业课是白学了。不过业余的时候学了很多软件,英语也很感兴趣,出来就可以找自己感兴趣的工作。
我是去年毕业的,出来换了5份工作,都TNND不称心,现在还好。

我只想告诉你,公司一般录用新人不会直接给你项目或者让你参加一些比较重要的开发。都会给你很多简单的东西让你慢慢适应,老板看中的是你这个人有没有魄力,有没有上进心!不会不要紧,不逼迫自己不会知道自己有多优秀,年轻人,不要自己吓唬自己,破釜沉舟去尝试,即便有一天你被PASS掉,至少你尝试过,男人不仅需要责任还有勇气!

不管你说什么,记住回答要坚决肯定,简洁,才能显得出你的干练。

⑶ 51单片机液晶显示菜单

这个题目说实在的不难,只是很繁琐,放到这里我想没人会给你做的。

⑷ 利用单片机的定时器和数码管,设计一个电子时钟

给你个电路和程序,//前几天帮一个网友写,单片机定时时钟在调节功能,可以参考一下我程序

/***************************************************
* 6位数码管显示电子钟
*
* 功能: 按键加,按键减, 按键,启动和停止。
*
*
***************************************************/
#include "REG52.H"

sbit SHUG_01 = P2^0; //数码管1
sbit SHUG_02 = P2^1; //数码管2
sbit SHUG_03 = P2^2; //数码管3
sbit SHUG_04 = P2^3; //数码管4
sbit SHUG_05 = P2^4; //数码管5
sbit SHUG_06 = P2^5; //数码管6
sbit KEY0_01 = P0^0; //按键 启动或停止sbit KEY0_02 = P0^1; //按键 加
sbit KEY0_03 = P0^2; //按键减
sbit KEY0_04 = P0^3; //按键菜单
#define LED_DATA P1 //P1数据端口
unsigned char value_temp = 0;unsigned char value_Outk = 0;
unsigned char value_shio = 8;
unsigned char value_feno = 40;
unsigned char value_miao = 0;
unsigned char code value_tab0[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //共阳极unsigned char code value_tab1[]={0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; //共阳极带点

/*
* 延时1ms延时子函数
**/
void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}
/* * 程序运行【启动和停止】子函数
**/
void Disp_layledketCmd(void)
{
/***小时***/
SHUG_01 = 1;
LED_DATA = value_tab0[value_shio / 10]; /*******小时的十位数显示***************/
Delay_1ms(5);
SHUG_01 = 0;
SHUG_02 = 1;
LED_DATA = value_tab1[value_shio % 10]; /*******小时的个位数显示***************/
Delay_1ms(5);
SHUG_02 = 0;
/***分钟***/ SHUG_03 = 1;
LED_DATA = value_tab0[value_feno / 10]; /*******分钟的十位数显示***************/
Delay_1ms(5);
SHUG_03 = 0;
SHUG_04 = 1;
LED_DATA = value_tab1[value_feno % 10]; /*******分钟的个位数显示***************/
Delay_1ms(5);
SHUG_04 = 0;
/***秒钟***/ SHUG_05 = 1;
LED_DATA = value_tab0[value_miao / 10]; /*******秒钟的十位数显示***************/
Delay_1ms(5);
SHUG_05 = 0;
SHUG_06 = 1;
LED_DATA = value_tab0[value_miao % 10]; /*******秒钟的个位数显示***************/
Delay_1ms(5);
SHUG_06 = 0;
}
/* * 定时器初始化定时50ms
**/
void Tero_Init(void)
{
TMOD = 0x01;
TH0 = 0x4C;
TL0 = 0x00;
ET0 = 1;
TR0 = 1;
EA = 1;
}
/* * 按键开关【启动和停止】子函数
**/
void Scan_keyoutCmd(void)
{
if(KEY0_01 == 0)
{
Delay_1ms(10);
if(KEY0_01 == 0)
{
TR0 = ~ TR0;
}
while(KEY0_01 == 0);
}
if(KEY0_02 == 0) {
Delay_1ms(10);
if(KEY0_02 == 0)
{
value_miao--;
if(value_miao == -1)
{
value_feno--;
value_miao = 59;
if(value_feno == -1)
{
value_shio--;
value_feno = 59;
if(value_shio == -1)
{
value_shio = 23;
}
}
}
while(KEY0_02 == 0);
}
}
if(KEY0_03 == 0) {
Delay_1ms(10);
if(KEY0_03 == 0)
{
value_miao++;
if(value_miao == 60)
{
value_miao = 0;
value_feno++;
if(value_feno == 60)
{
value_feno = 0;
value_shio++;
if(value_shio == 24)
{
value_shio = 0;
}
}
}
while(KEY0_03 == 0); //检测松手
}
}
}
/* * 函数主体
**/
int main(void)
{
P1 = P2 = P3 = 0x00;
Tero_Init();

while(1)
{
Scan_keyoutCmd();
Disp_layledketCmd(); //执行应运程序
}
}
/* * 定时器中断服务程序
**/
void Tmero()interrupt 1
{
TH0 = 0x4C;
TL0 = 0x00;
value_temp++;
if(value_temp == 20)
{
value_temp = 0;
value_miao++;
if(value_miao == 60)
{
value_feno++;
value_miao = 0;
if(value_feno == 60)
{
value_shio++;
value_feno = 0;
if(value_shio == 24)
{
value_shio = 0;
}
}
} }
}

⑸ 单片机按键进行菜单选择的编程思想

这一个视频我看了,思路不错,可以做一个,至于什么思想吧!一般只是把状态值用变量存储起来,语句嘛!判断选择结构之类的,你选择开始学习程序编辑,相信不久之后,你也能做到这一步!

⑹ 用C语言写的多级菜单源程序(单片机),自己试验过,不要网上拷贝过来,谢谢。

程序中首先定义了一个结构体类型,他的名字叫做kbdtabstruct,然后用这个类型定义了一个数组,该数组的长度为size-of-keybd-menu
keytab[1]={1,7,2......}
1给了结构体成员 keystateindex,也就是keytab[1].keystateindex=1;
7给了keydnstate,也就是keytab[1].keydnstate=7;……依此类推。

⑺ c51单片机如何用矩阵实现菜单功能

在完成实现菜单功能,需要在单片机的连接输入时,更改一下驱动处理的芯片参数。
参数设置为矩阵模式,应用相关数据函数完成。

⑻ 51单片机C语言编程,4×4键盘控制LCD12864显示菜单,如何设计

像这种要求,基本上可以当做一个小项目来开发了。我以前做过,想做成信号源或者示波器的那种菜单,但没做完,主要是这个程序太大,51的内核做出来效果不好,对外的响应很不好。建议你用ARM来做,这样看起来确实像一个菜单。

⑼ 急急急请问大家怎么定义单片机的菜单

恐怕你想问的是怎么实现吧.4X4的按键扫描后应该有个码,这个码就是一一对应的按键状态.
我在bbs.eeworld有例子欢迎你来

阅读全文

与单片机按键菜单相关的资料

热点内容
dvd光盘存储汉子算法 浏览:755
苹果邮件无法连接服务器地址 浏览:958
phpffmpeg转码 浏览:669
长沙好玩的解压项目 浏览:140
专属学情分析报告是什么app 浏览:562
php工程部署 浏览:831
android全屏透明 浏览:730
阿里云服务器已开通怎么办 浏览:801
光遇为什么登录时服务器已满 浏览:300
PDF分析 浏览:483
h3c光纤全工半全工设置命令 浏览:140
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:681
如何取消命令方块指令 浏览:347
风翼app为什么进不去了 浏览:777
im4java压缩图片 浏览:360
数据查询网站源码 浏览:148
伊克塞尔文档怎么进行加密 浏览:888
app转账是什么 浏览:162