ZKX's LAB

51单片机 8个数码管初始显示“87654321”,然后用8个独立按键分别控制这8个数码管,每按一 独立按键控制8位数码管

2020-08-11知识20

单片机 怎样用两个独立按键控制一位数码管显示,就是按下其中一个按键就加1,按下另一个按键就减1,0~9显 很简单 比如你定义的数是AA,汇编的是这样写的:MAIN;。51单片机 8个数码管初始显示“87654321”,然后用8个独立按键分别控制这8个数码管,每按一 你好!可以根据你的硬件连接具体情况完成编程c语言,怎样用两个独立按键控制一位数码管显示,就是按下其中一个按键就加1按下另一个按键就减1 0~9显示? 这个实现是很容易的,定义两个键,一个为加,一个为减,数码管因为只有一个,所以可以用静态显示。程序和仿真图如下:#include<;reg51.h>;#defineucharunsignedcharuchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};sbitkeyup=P3^0;sbitkeydn=P3^1;main(){uchari;i=0;while(1){P1=table[i];if(keyup=0){i+;while(keyup=0);}if(keydn=0){if(i>;0)i-;while(keydn=0);}i%10;}}用51单片机用4个独立按键控制8个数码管的加减和 用4个独立按键控制8个数码管的加减和,你这是实物开发板吧,数码管电路中8个数码管的位控制端LED1~LED8接哪啦,还应该有位控电路的,估计是用一片74HC138(或74LS138)控制的,这位控未知,不能写程序。要求第三位数码管显示+号,这实现不了,数码管是无法显示+号的。51单片机,用独立键盘控制静态数码管显示1-8,自学的,错误连篇,求大神帮忙 程序功能能否实现你自己验证,先把错误给你改了,已编译通过。includeincludedefine dig P2define uint unsigned intdefine uchar unsigned char codeuchar number[10]={0xc0,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbit K1=P0^0;sbit K2=P0^1;10sbit K3=P0^2;sbit K4=P0^3;sbit K5=P0^4;sbit K6=P0^5;sbit K7=P0^6;sbit K8=P0^7;void anjian();这里没分号void yanshi(uint nms);void main()/20{P0=0xff;初始化anjian();这里多void 少分号}按键程序30void anjian(){uint i;这以后的错误是变量i没定义if(K1=0){yanshi(10);if(K1=0){dig=number[1];while((K1=0)&(i)){/40yanshi(10);i+;}i=0;}}if(K2=0){yanshi(10);if(K2=0)/50{dig=number[2];while((K2=0)&(i)){yanshi(10);i+;}i=0;}}/60if(K3=0){yanshi(10);if(K3=0){dig=number[3];while((K3=0)&(i)){yanshi(10);i+;70}i=0;}}if(K4=0){yanshi(10);if(K4=0){dig=number[4];80while((K4=0)&(i)){yanshi(10);i+;}i=0;}}if(K5=0){/90yanshi(10);if(K5=0){dig=number[5];while((K5=0)&(i)){yanshi(10);i+;}i=0;100}}if(K6=0){yanshi(10);if。一个独立按键控制数码管动态显示程序亮灭c语言 ^有点类似,你看5261看吧:includeinclude<;intrins.h>;4102/反转法1653控制按键define uint unsigned intdefine uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;uchar a,b,c,d,keya,keyb;uint e;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint x)/延时{uint i,j;for(i=x;i>;0;i-)for(j=110;j>;0;j-);}void shumaguan(uchar a)/数码管{wela=1;P0=0xc0;wela=0;dula=1;P0=table[a];a在键盘函数引用dula=0;delay(10);}void liushuideng()/流水灯{b=0xc9;while(e>;=0&e){P1=b;delay(50);b=_crol_(b,1);e+;if(e=80)b=0xff;}}uchar key()/有返回值的按键函数{P3=0x0f;定行P3=P3&0x0f;判断哪一行有被按下的键if(P3。0x0f){delay(10);P3=0x0f;P3=P3&0x0f;if(P3。0x0f){c=P3&0x0f;P3=0xf0;d=P3&0xf0;判断列,行反转return(c+d);}}return 0xff;}void main(){while(1){keyb=key();switch(keyb){case 0xee:keya=0;while(key()。0xff);shumaguan(keya);break;判断按键case 0xed:keya=1;while(key()。0xff);shumaguan(keya);break;case 0xeb:keya=2;while(key()。0xff);。4个独立按键如何分别控制4个数码管从0到9到0变化的编程 是要仿真吗?还是要实物开发板上实现。首先要画仿真图或原理图,才能根据原理图写程序。那个四个按键接在什么脚,四位数码管怎么接的。单片机上用两个按键独立控制两个数码管,怎样使在按下一个按键使对应的数码管改变后,另一个数码管亮着 给你个思路,在while循环里要实时刷新数码管显示,按键的判断放在定时器里,设一个变量,当按键按下时累加定时器中断次数,然后在主函数里判断变量值,超过一定数量则判断为按下,这时数码管计数变量+,当然你还要设按键抬起标志,仔细思考一下,肯定能写出来单片机独立式键盘八个按键控制一个数码管的汇编程序 并且依次显示1 8个按键,按那个键,就显示哪个数?是吗?那也不用单片机呀,用数字电路就能实现,用一片编码器就行了。

#单片机#数码管#unsigned

随机阅读

qrcode
访问手机版