ZKX's LAB

键盘输入的单片机语言 关于单片机C语言一个输入的问题

2021-04-09知识3

51单片机,用键盘输入数码管显示的程序!!!用汇编语言,大家帮忙看看哪里错了!谢谢了!!! ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#78HMOV 78H,#00HMOV 79H,#00HMOV 7AH,#00HMOV 7BH,#00HMOV 7CH,#00HMOV 7DH,#00HMOV 7EH,#00HMOV R0,#79HMOV R1,#0KEYI:ACALL KS1CJNE A,#0F0H,LK1ACALL DIRAJMP KEYILK1:ACALL DIRACALL KS1CJNE A,#0F0H,LK2ACALL DIRAJMP KEYILK2:ACALL KS1MOV R2,AORL A,#0FHMOV P3,AMOV A,P3ANL A,#0FHADD A,R2;键特征2113值CJNE A,#0EEH,JZHI1MOV A,#00HPUSH ACCSJMP JZH20JZHI1:CJNE A,#0DEH,JZHI2MOV A,#01HPUSH ACCSJMP JZH20JZHI2:CJNE A,#0BEH,JZHI3MOV A,#02HPUSH ACCSJMP JZH20JZHI3:CJNE A,#7EH,JZHI4MOV A,#03HPUSH ACCSJMP JZH20JZHI4:CJNE A,#0EDH,JZHI5MOV A,#04HPUSH ACCSJMP JZH20JZHI5:CJNE A,#0DDH,JZHI6MOV A,#05HPUSH ACCSJMP JZH20JZHI6:CJNE A,#0BDH,JZHI7MOV A,#06HPUSH ACCSJMP JZH20JZHI7:CJNE A,#07DH,JZHI8MOV A,#07HPUSH ACCSJMP JZH20JZHI8:CJNE A,#0EBH,JZHI9MOV A,#08HPUSH ACCSJMP JZH20JZHI9:CJNE A,#0DBH,KEYIMOV A,#09HPUSH ACCJZH20:POP ACCMOV@R0,AINC R0INC R1MOV A,R1CJNE A,#6,JZH21MOV R0,#79HMOV 。

C语言:帮忙做一下一、请写出程序,其功能是:从键盘输入一个大写字母,要求改用小写字母输出 谢谢 #includevoid main(){char c;printf(\"请输入一个大写字母\");scanf(\"%c\",&c);loop:if(65<;=c&&90>;=c){printf(\"变换后为:%c\\n\",c+32);}else{printf(\"请正确输入大写字母\");scanf(\"%c\",&c);goto loop;}}他那一个会出现死循环的,C语言中不允许的,但是在单片机里是可以的,我这一个使用了goto,它能够跳到指定的位置,在我的程序里它跳到了loop所在的位置,从新执行,但是我的有一个不足之处是它只能执行一次。不过下面的这个更完善。includevoid main(){char c;int n;int i=1;printf(\"请输入一个大写字母:\");printf(\"请输入执行的次数:\");scanf(\"%c\",&c);scanf(\"%d\",&n);while(i){loop:if(65<;=c&&90>;=c){printf(\"变换后为:%c\\n\",c+32);i+;}else{printf(\"请正确输入大写字母\");scanf(\"%c\",&c);goto loop;}}printf(\"程序结束共执行了&d次\\n\",i);}

求一个C语言程序,在单片机上运行的。在矩阵键盘上输入数字,按确定键后改变led的闪烁周期 定义个数组比如 uchar DS[3];(数组长度是你最长显示的数据位数比如共3位,定义成3)然后一个矩阵键盘数据记录(即你按下数字1键,他就记录1)uchar KEY_DATA,和一个输入总长度记录的数据变量,你按键每次按下一个有效的数字键都会+1,uchar MAX。然后每次有效输入的数据MAX+1;同时比较是否达到要求值。然后DS[MAX]=KEY_DATA;这样你显示的时候反过来显示,比如MAX为3那么显示的时候就;送一个显示码i-;显示程序就是比如你数码管数据是P0吧uchar j;for(j=MAX;j>;0;j-){位选什么的我就不写了。P0=DS[j];这里实际P0应该是你的查表数据比如LED[DS[j]];延时,在下一位。这个你可以全在for循环里面写}

#键盘输入的单片机语言

随机阅读

qrcode
访问手机版