单片机怎么让程序等待按键输入

单片机怎么让程序等待按键输入,第1张

先写一个按键扫描程序,不停的扫描,将扫描的值返回给一个数组,例:

uchar i,temp[n]; //n是密码的位数

uchar keyscan()

{

//扫描程序;

temp[i+]=p0 ; //p0是扫描回来的按键值,每当按键按下一次,就给相应 的 temp[i];

if(i=(n-1))

{

i=0;

if(check()) //对temp[n]的值校验,如果密码正确;

response(); //执行相应函数;

}

}

mov ax,4c00h

int 21h

的前面输入

@@:

mov ah,7

int 21h

cmp al,'$'

jne @b

你的要求是当调用int 21h中断的0aH号功能的时候,如果键入'$',则结束程序。

要知道当你调用中断的时候,进程就不是由你所写的程序控制了,它相当于调用系统的子程序。所以要得到你所说的效果,就需要在程序开始的时候对int 21h中断进行修改,

程序结束前再恢复。这样一来的话,程序就不是调用int 21h中断的0aH号功能了,而是调用自己编写的中断程序了。你确定要这么做吗?

定时器是必须采用,不然无法产生音频信号。

T0H EQU 30H

T0L EQU 31H

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#01H

SETB ET0

SETB EA

LOOP:

MOV DPTR,#FREQ

MOV A,P2 ;控制高中低音区

MOV R1,#0

ANL A,#03H

JB ACC0,LOOP01

MOV R1,#14

SJMP LOOP0

LOOP01:

JB ACC1,LOOP0

MOV R1,#28

LOOP0:

JB P00,LOOP1 ;控制音频1234567

MOV A,R1

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP1:

JB P01,LOOP2

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP2:

JB P02,LOOP3

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP3:

JB P03,LOOP4

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP4:

JB P04,LOOP5

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP5:

JB P05,LOOP6

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP6:

JB P06,LOOP7

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP7:

CLR TR0

LJMP LOOP

;-----------------------------

T0ISR:

CLR TR0

MOV TH0,T0H

MOV TL0,T0L

SETB TR0

CPL P30

RETI

;-----------------------------

FREQ:

DB 0F2H,03DH ;低音1

DB 0F3H,0BDH ;低音2

DB 0F5H,014H ;低音3

DB 0F5H,0B1H ;低音4

DB 0F6H,0D0H ;低音5

DB 0F7H,0D1H ;低音6

DB 0F8H,0B5H ;低音7

DB 0F9H,01EH ;中音1

DB 0F9H,0DEH ;中音2

DB 0FAH,08AH ;中音3

DB 0FAH,0D8H ;中音4

DB 0FBH,068H ;中音5

DB 0FBH,0E8H ;中音6

DB 0FCH,05AH ;中音7

DB 0FCH,08FH ;高音1

DB 0FCH,0EFH ;高音2

DB 0FDH,045H ;高音3

DB 0FDH,06CH ;高音4

DB 0FDH,0B4H ;高音5

DB 0FDH,0F4H ;高音6

DB 0FEH,029H ;高音7

;-----------------------------

END

一、常用快捷键

F1 显示当前程序或者Windows的帮助内容。

F2 当你选中一个文件的话,这意味着“重命名”

F3 当你在桌面上的时候是打开“查找:所有文件”

对话框

F10或ALT激活当前程序的菜单栏

windows键或CTRL+ESC

打开开始菜单

CTRL+ALT+DELETE

在win9x中打开关闭程序对话框

DELETE 删除被选择的选择项目,如果是文件,将被放入回收站

SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站

CTRL+Z

撤消

CTRL+C

复制

CTRL+V

粘贴

CTRL+ESC

显示“开始”菜单

CTRL+N 新建一个新的文件

CTRL+O 打开“打开文件”对话框

CTRL+P 打开“打印”对话框

CTRL+S 保存当前 *** 作的文件

CTRL+X 剪切被选择的项目到剪贴板

CTRL+INSERT

CTRL+C复制被选择的项目到剪贴板

SHIFT+INSERT

CTRL+V 粘贴剪贴板中的内容到当前位置

ALT+菜单上带下划线的字母执行菜单上相应的命令

ALT+F4

关闭当前窗口或退出程序

ALT+空格键

显示当前窗口的系统菜单

ALT+TAB

切换到另一个窗口

ALT+BACKSPACE

CTRL+Z

撤销上一步的 *** 作

ALT+SHIFT+BACKSPACE

重做上一步被撤销的 *** 作

Windows键+M

最小化所有被打开的窗口。

Windows键+CTRL+M重新将恢复上一项 *** 作前窗口的大小和位置

Windows键+E

打开资源管理器

Windows键+F

打开“查找:所有文件”对话框

Windows键+R

打开“运行”对话框

Windows键+BREAK

打开“系统属性”对话框

Windows键+CTRL+F打开“查找:计算机”对话框

SHIFT+F10或鼠标右击

打开当前活动项目的快捷菜单

SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开Word的时候按下不放,可以跳过自启动的宏

ALT+F4 关闭当前应用程序

ALT+SPACEBAR打开程序最左上角的菜单

ALT+TAB

切换当前程序

ALT+ESC

切换当前程序

ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换

PRINT

SCREEN将当前屏幕以图象方式拷贝到剪贴板

ALT+PRINT

SCREEN将当前活动程序窗口以图象方式拷贝到剪贴板

CTRL+F4

关闭当前应用程序中的当前文本(如word中)

CTRL+F6

切换到当前应用程序中的下一个文本(加shift

可以跳到前一个窗口)

二、Windows快捷键

目的快捷键

WINDOWS+TAB

在任务栏上的按钮间循环

WINDOWS+F

显示“查找:所有文件”

CTRL+WINDOWS+F

显示“查找:计算机”

WINDOWS+F1

显示“帮助”

WINDOWS+R

显示“运行”命令

WINDOWS+

R

WINDOWS

显示“开始”WINDOWS+BREAK 显示“系统属性”对话框

WINDOWS+E

显示“Windows资源管理器”

WINDOWS+D

最小化或还原所有窗口

SHIFT+WINDOWS+M

撤消最小化所有窗口

三、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键

选择项目时,可以使用以下快捷键。

按住

SHIFT插入CD-ROM

插入光盘时不用“自动播放”

创建快捷方式按住CTRL+SHIFT拖动文件

复制文件按住

CTRL拖动文件

SHIFT+DELETE

立即删除某项目而不将其放入“回收站”

APPLICATION键

显示项目的快捷菜单

F5

显示“查找:所有文件”

F2

重命名项目

CTRL+A

选择所有项目

ALT+ENTER或ALT+双击

查看项目的属性

四、Microsoft放大程序的快捷键

Windows徽标+PRINT

SCREEN

将屏幕复制到剪贴板(包括鼠标光标)

Windows徽标+SCROLL

LOCK

将屏幕复制到剪贴板(不包括鼠标光标)

Windows徽标+PAGE

UP

切换反色

Windows徽标+PAGE

DOWN

切换跟随鼠标光标

Windows徽标+向上箭头

增加放大率

Windows徽标+向下箭头

减小放大率

五、辅助选项快捷键

右SHIFT八秒

切换筛选键开关

左ALT+左SHIFT+PRINT

SCREEN

切换高对比度开关

左ALT+左SHIFT+NUM

LOCK

切换鼠标键开关

SHIFT键五次

切换粘滞键开关

NUM

LOCK五秒

切换切换键开关

需要组件,标签1一个!复制代码:版本 2支持库 shellEx支持库 eAPI程序集 窗口程序集1程序集变量 F1按键ABCD, 整数型子程序 __启动窗口_创建完毕F1按键ABCD = 注册热键 (_启动窗口取窗口句柄 (), 标签1取窗口句柄 (), 0, #F1键)子程序 _标签1_反馈事件, 整数型参数 参数一, 整数型参数 参数二, 整数型如果真 (参数一 = F1按键ABCD) 模拟按键 (#A键, #B键, #C键) 模拟按键 (#D键,#F键 , )如果真结束记得采纳,我是第一个回答的哦

不是的,前面的判断加上for(j=0;j<4;j++) { in[j]=0; }的处理是,如果用户对密码的错误输入次数超过3次,就对密码数组(4个字符的串)置零,也就是恢复初始值的4个零状态。

呵呵,这个Keil C程序做得很简洁。

以上就是关于单片机怎么让程序等待按键输入全部的内容,包括:单片机怎么让程序等待按键输入、如何让程序在特定按键输入时退出返回DOS、51单片机程序,我想要个按键输入的,可以让蜂鸣器输出音阶1234567,怎么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9457261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存