本文目录
- 利用C语言编程在单只静态数码管循环显示0~9的10个数字
- 51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
- 数码管是共阳极接法,计算出LED数码管显示0-9的段码,列出分别用二进制数与十六进制数表示
- 单片机数码管显示0到999c语言程序怎么编
- 单数码管循环怎么显示0到9
- 显示一个数码管0-9
- 单片机数码管显示0到9
- 单数码管循环显示0到9
- 一位数码管循环显示0到9实验程序
- 求:用单片机C语言编一位数码管的数字显示 要求可以从0变化到9
利用C语言编程在单只静态数码管循环显示0~9的10个数字
说明:主程序中的循环语句反复将 0~9 的段码送至 P0 口,使数字 0~9 循环显示*/#include《reg51.h》#include《intrins.h》#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//延时void DelayMS(uint x){uchar t;while(x--) for(t=0;t《120;t++);}//主程序void main(){uchar i=0;P0=0x00;while(1){P0=~DSY_CODE;i=(i+1)%10;DelayMS(300);}}
51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
假设你的是共阳极数码管,P0接数码。按键接P2^0;#include《reg52.h》typedef unsinged int uint;sbit key=P2^0;unsigned char tab={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void denay(uint x){uint i,j;for(i=x;i》0;i--) for(j=110;j》0;j--)}void main(){uchar a;while(1){P0=tab;if (key1==0){delay(10);if(key==0){while(!key1);a++;if(a==10) a=0;}}}
数码管是共阳极接法,计算出LED数码管显示0-9的段码,列出分别用二进制数与十六进制数表示
若数码管共阳,则低电平有效,所对应的16进制表示方式,为:0-0xc0,1-0xf9,2-0xa4,3-0xb0,4-0x99,5-0x92,6-0x82,7-0xf8,8-0x80,9-0x90。若数码管共阴则高电平有效,所对应的16进制表示方式为0-0x7f,1-0x06,2-0x5b,3-0x4f,4-0x66,5-0x6d,6-0x7d,7-0x07,8-7f,9-0x6f。
单片机数码管显示0到999c语言程序怎么编
#include《reg51.h》
unsigned char xs_d={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time=0,s,sz;delay(unsigned int k){
unsigned int i,j;
for(i=0;i《k;i++)
for(j=0;j《125;j++);
}INT_0()interrupt 0
{ delay(10);
if(INT0==0){sz++;《br》 if(sz》2){sz=0;}}}
void T0_int()interrupt 1{
TH0=(65535-50000)/256;//设置初值
TL0=(65535-50000)%256;
s++;if(s》20){s=0;《br》 if(sz==1)time++;《br》 if(time》999){time=0;}
if(sz==0){time=0;//清零《br》 }
扩展资料:
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。
ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
运算器有两个功能:
(1) 执行各种算术运算。
(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
单数码管循环怎么显示0到9
方法如下:
#include “reg51.h“#define uchar unsigned char#define uint unsigned intuchar code table_numberP = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar code table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uint n;uint ge;void main(){ge = 0;TMOD = 0x01;TH0 = (65536-45872)/256;TL0 = (65536-45872)%256;EA = 1;ET0 = 1;TR0 = 1;while(1);}void T0_time()interrupt 1{TH0 = (65536-45872)/256;TL0 = (65536-45872)%256;n++;if(n%20 == 0){if(ge《=9){P1 = table_numberP;P0 = table;ge++;if(ge == 10){ge = 0;}}}}
主函数中的P2 = LED_CODE;led++;可以删去,没有任何的意义,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE=0xF9,对应显示1,依次类推,从而显示0--9。
显示一个数码管0-9
先上数码管的引脚图
首先,数码管的原理是,给数码管的某段加一个合适的电压,该段就会发亮。七段式数码管有七段加一点(DP),这种数码管有两种,一种是共阳极,这种接低电平时亮,另一种就是共阴极,就是楼主用的这种,通高电平亮。
数码管左边的引脚从上至下依次是接a,b,c,d,e,f,g,dp。要让数码管显示数字,就是需要指定部分亮,比如0,就是需要a,b,c,d,e,f这六段亮,也就是P0.0~P0.5为1,即P0=00111111=0x3f,而现在shuma=0x3f,就不需要取反了。至于为何要这样做呢,统计不亮的段比较方便,毕竟不亮的少嘛,也许只是习惯问题。
单片机数码管显示0到9
#include《reg51.h》
sbit k1=P1^0;
#define uint16 unsigned int
#define uchar unsigned char
uchar code shuzu={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(){
uint16 i=1000;
while(i--);}
void main()
{
uchar n ;
P2=0xfe;
P1=0xff;
while(1)
{
if(k1==0){
if(n》=9) n=0;
else n++;
P0=shuzu;
while(!k1);
delay();
while(!k1);
}
}
}
扩展资料:
51单片机的功能特性
1,可以仿真63K程序空间,接近64K 的16位地址空间;
2,可以仿真64Kxdata 空间,全部64K 的16位地址空间;
3,可以真实仿真全部32 条IO脚;
4,完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;
5,可以使用C51语言或者ASM汇编语言进行调试 ;
6,可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;
7,可选 使用用户晶振,支持0-40MHZ晶振频率;
8,片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;
9,可以仿真双DPTR 指针;
10,可以仿真去除ALE 信号输出. ;
11,自适应300-38400bps 的所有波特率通讯;
12,体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;
13,仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;
14,仿真时监控和用户代码分离,不可能产生不能仿真的软故障;
15,RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。
参考资料来源:百度百科-51单片机
单数码管循环显示0到9
我的是共阳数码管,是8位的,我选通的是第一位,你可以自己改一个地方#include《reg52.h》unsigned char code s8={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay(int i){ int j; for(;i》=0;i--) { for(j=0;j《115;j++) {;} }}void main(){ int i; while(1) { P2=0x7f;/*这是选通位,你可以根据自己的数码管来写*/ for(i=0;i《10;i++) { P0=s8; delay(400); P0=0xff; delay(100); } i=0; }}
一位数码管循环显示0到9实验程序
具体程序如下:
#include 《reg51.h》
#define uchar unsigned char
sbit P20=P2^0;
void delay_ms(unsigned int ms) //1ms延时
{
uchar a;
while(ms--)
for(a=123;a》0;a--);
}
uchar code tab={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F};
void main()
{
while(1)
{uchar b;
P20=0;
P0=tab;
delay_ms(1000);//1s延时
b++;
if(b==10)
b=0;
}
}
扩展资料:
数码管原理
数码管常用段数一般为7段有的另加一个小数点,还有一种数码管是类似于3位“+1”型。数码管位数有半位,1,2,3,4,5,6,8,10位等。数码管根据LED的接法不同分为共阴和共阳两类,了解数码管的这些特性,数码管对编程是很重要的。
因为不同类型的数码管,除了数码管的硬件电路有差异外,数码管编程方法也是不同的。数码管的发光原理是一样的,只是数码管的电源极性不同而已。
数码管颜色有红,绿,蓝,黄等几种。数码管广泛用于仪表,时钟,车站,家电等场合。选用数码管时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用数码管内部引脚图片。
数码管引脚定义每一笔划都是对应数码管一个字母表示数码管DP是小数点。数码管透过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是数码管动态驱动。每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应。
尽管实际上各位数码管并非同时点亮LED数码管,但只要数码管扫描的速度足够快,数码管给人的印象就是一组稳定的显示资料,数码管不会有闪烁感,数码管动态显示的效果和静态显示是一样的,数码管能够节省大量的I/O口,而且数码管功耗更低。
求:用单片机C语言编一位数码管的数字显示 要求可以从0变化到9
//程序功能:000-999显示//2012-//作者:李超峰//版本:VER:1.0//=============================#include《reg51.h》sbitSEG=P1^5;unsignedcharSEGTAB={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};////////延时子函数////////////////////voiddelay(intx){inti,j;for(i=0;i《x;i++)for(j=0;j《120;j++);}///////////主函数部分///////////////////main(void){while(1){inti;for(i=0;i《9;i++){SEG=0;P0=SEGTAB;delay(1000);}}}