单片机控制数码管1 按键控制开始、数码管循环显示0-F.时间间隔为1s的程序及硬件图

作者&投稿:延应 (若有异议请与网页底部的电邮联系)
单片机的PO口连数码管,现控制数码管循环显示0-9,循环显示间隔1s。数码管共阴极要画图,写程序。~

把 数码管的 1-9 的 对应的码算出来就好了
例如:#include //数字0-9的字形码unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char dispcount;void delay02s(void);void main(void){P1_0=0;//选通第一位数码管while(1){for(dispcount=0;dispcount0;i--)for(j=30;j>0;j--)for(k=248;k>0;k--);}
补充:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机

请你参考:

代码如下:
#includesbit Button=P3^0;unsigned char code segCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};void Delayms(unsigned int x){ unsigned char t;while(x--)for(t=0;t<120;t++);}void main(){ unsigned char i;while(1){ if(!Button){ Delayms(10);if(!Button)P0=segCode[i];i=++i%16;while(!Button);}} }希望对你有所帮助!!!

P1口外接共阳极的8段数码显示器。
P3.2外接一个按键,按下后,接地,用来起动.
ORG 0000H
JB P3.2, $
MOV R2, #0
LOOP:
INC R2
MOV A, R2
ANL A, #0FH
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV P1, A
LCALL DL500MS
LCALL DL500MS
SJMP LOOP
TAB:
DB 0c0H,0f9H,0a4H,0b0H, 99H, 92H, 82H,0f8H
DB 80H, 90H, 88H, 83H,0c6H,0a1H, 86H, 8eH
DL500MS:
MOV R5, #100
MOV R6, #10
MOV R7, #248
NOP
DJNZ R7, $
DJNZ R6, $ - 5
DJNZ R5, $ - 9
RET


徽县19353142429: 单片机控制数码管1 按键控制开始、数码管循环显示0 - F.时间间隔为1s的程序及硬件图 -
常方高德: P1口外接共阳极的8段数码显示器.P3.2外接一个按键,按下后,接地,用来起动. ORG 0000H JB P3.2, $MOV R2, #0 LOOP: INC R2 MOV A, R2 ANL A, #0FH MOV DPTR, #TAB MOVC A, @A+DPTR MOV P1, A LCALL DL500MS LCALL DL...

徽县19353142429: 求单片机按键控制数码管程序 -
常方高德: 实现方法有挺多种的,下面介绍一种: 1、按键子程序:实现按第一个键使键值keyvalue=1,第二个键使键值keyvalue=2,第三个键使键值keyvalue=3 2、显示子程序定义3个字节的显示缓存,如dispbuf1,dispbuf2,dispbuf3使dispbuf1的数字显...

徽县19353142429: 51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停? -
常方高德: 其实,控制秒表的启动和停止,很简单.要做秒表,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动.当按一下键,再启动,TR0=1,就开始计时了.再 按一下键,就停止,TR0=0,就不计时了.程序好写,先 定义一个按键 sbit key=P1^1; //具体是哪个 键,你自己改 主程序中,判断按键和启动/停止 if(key==0) { delay(); //具体延时时间自己定 if(key==0) { TR0=!TR0; //每按一次,取反 一次 while(key==0); } }

徽县19353142429: 51单片机按键对数码管的控制 -
常方高德: /*----------------------------------------------- 名称:单个共阳数码管动态显示变化数字 内容:通过循环检测P1口按键输入值,然后用数码管输出, 没有按键按下时原值不变 ------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不...

徽县19353142429: 请问单片机中要怎么用按键控制数码管显示的模式..用C语言编程.. -
常方高德: 可以用按键中断,也可以用按键查询. 用按键中断:如果按键按下就进入中断子程序里,然后在中断子程序里改变显示模式即可 按键查询:用while 语句查询某个按键是否按下,如果未按下则继续执行子程序,如果按键按下则跳入到事先写好的子程序,在子程序里改变显示模式希望能帮到你!

徽县19353142429: 使用89C51单片机单个按键控制一个数码管,当按键按下时数码管显示1,再次按下时显示0. -
常方高德: SBUF=dispcode[num0];//第回1位答 while(!TI); TI=0; led0=0; delay(2); led0=1; SBUF=dispcode[num1];//第2位 while(!TI); TI=0; led1=0; delay(2); led1=1; SBUF=dispcode[num2];//第3位 while(!TI); TI=0; led2=0; delay(2); led2=1;

徽县19353142429: 按键控制单片机数码管 -
常方高德: 即使写一个程序也只是给你做参考首先定义接口,比如:#include“reg51.h”sbit S1 =P1^0;sbit S2 =P1^1;sbit S3 =P1^2;sbit S4 =P1^3; //按键对应的单片机IOsbit SMG_EN P1^4; //数码管选通sbit SMG_SET() SMG_EN =0 //数码管公...

徽县19353142429: 51单片机控制数码管显示时钟,独立按键怎么弄 -
常方高德: 独立按键处理起来是非常简单的,一般都是IO口单独控制,所以只需要消抖和判断按键按下抬起状态就好.比如: sbit key=P1^0; if(key==0) {delay(10);if(key==0){keyval=1;while(key==0);} }

徽县19353142429: 用单片机控制数码管工作 -
常方高德: 1. 接电源:vcc(pin40)、gnd(pin20).加接退耦电容0.1uf 2. 接晶体:x1(pin18)、x2(pin19).注意标出晶体频率(选用12mhz),还有辅助电容30pf 3. 接复位:res(pin9).接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:ea(...

徽县19353142429: 现有硬件为AT89C51单片机一个,四位七段数码管,精确到0.01,四个按键控制,要求用一个按键控制开始计数、 -
常方高德: //我的理解#include<reg52.h>#define uchar unsigned char #define uint unsigned int uchar tt,num; sbit key1=P2^0; //开始计数 sbit key2=P2^1; //清零 sbit key4=P2^3; //继续计数 sbit key3=P2^2; //暂停计数 char code table[]={ 0x3f,0x06,0x5b,0x...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网