用89c51单片机写一个数码管显示HELLO的程序,是在一个七段数码管上依次出现几个字母

作者&投稿:重旺 (若有异议请与网页底部的电邮联系)
用89c51单片机写一个数码管显示HELLO的程序,是在一个七段数码管上依次出现几个字母~

在数码管依次排列好这一句话,首先取模,然后写显示函数,写完函数放置while(1)中无限循环下去
代码如下:
#include; //用的是单独操作,没有用总线
sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;
sbit led4 = P1^3;
sbit led5 = P1^4;
sbit led6 = P1^5;
sbit led7 = P1^6; //看清楚自己的管脚,不一定对应,这里采用P0对应段选
code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};// H E L L Ovoid delay(unsigned int um)//延时函数
{
int i,j;
for(i = 0;i < um;i++){for(j = 0;j < 200;j++);}}void display(){P0 = led_paly[0];//显示Hled2 = 0;delay(50);led2 = 1;P0 = led_paly[1];//显示Eled3 = 0;delay(50);led3 = 1;P0 = led_paly[2];//显示Lled4 = 0;delay(50);led4 = 1;P0 = led_paly[3];//显示Eled5 = 0;delay(50);led5 = 1;P0 = led_paly[4];//显示Oled6 = 0;delay(50);led6 = 1; }void main(void){while(1){display();}}

扩展资料:
51单片机的接口作用
P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。
P3口:既可以做标准输入输出I/O,也可作为AT89C51的一些特殊功能口。

端口接动态数码管原理。P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。

在数码管依次排列好这一句话,首先取模,然后写显示函数,写完函数放置while(1)中无限循环下去

代码如下:

#include; //用的是单独操作,没有用总线

sbit led1 = P1^0;

sbit led2 = P1^1;

sbit led3 = P1^2;

sbit led4 = P1^3;

sbit led5 = P1^4;

sbit led6 = P1^5;

sbit led7 = P1^6; //看清楚自己的管脚,不一定对应,这里采用P0对应段选

code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};// H E L L O

void delay(unsigned int um)//延时函数

{

int i,j;

for(i = 0;i &lt; um;i++)

{

for(j = 0;j &lt; 200;j++);

}

}

void display()

{

P0 = led_paly[0];//显示H

led2 = 0;

delay(50);

led2 = 1;

P0 = led_paly[1];//显示E

led3 = 0;

delay(50);

led3 = 1;

P0 = led_paly[2];//显示L

led4 = 0;

delay(50);

led4 = 1;

P0 = led_paly[3];//显示E

led5 = 0;

delay(50);

led5 = 1;

P0 = led_paly[4];//显示O

led6 = 0;

delay(50);

led6 = 1;

}

void main(void)

{

while(1)

{

display();

}

}

扩展资料:

51单片机的接口作用

P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。

P3口:既可以做标准输入输出I/O,也可作为AT89C51的一些特殊功能口。




单片机89c51的烧录
双列直插的 直接放到烧写器中 然后选择好器件 和所需的hex代码 烧写即可 由于C51不支持ISP在线编程烧写 目前没有方法解决将C51放到工作电路中烧写 如果想放到电路中烧写 将89c51换成89s51 然后用ISP下载线进行在线烧写 ISP方式不需要买烧写器 你的方式是采用isp方式 直接用个并口或串口 jtag下载线即可 ...

89c51单片机中断c程序
方法类似,补写程序如下:include define uint unsigned int define uchar unsigned char sbit led=p0^0;sbit led1=p0^1;void delay1ms (uint z){ uint x,y;for (x=z;x>0;x--)for (y=110;y>0;y--);} void exter()interrupt 2 { delay1ms(600);led=0;delay1ms(200);led=1;} ...

89c51单片机编写一段2分钟的延时程序
假设石英晶振频率为12MHZ,单片机为51 汇编:delay:mov r4, #10 dly0: mov r5, #120 dly1: mov r6, #200 dly2: mov r7, #250 dly3: djnz r7, dly3 djnz r6, dly2 djnz r5, dly1 djnz r4, dly0 ret C51:void delay(){ TMOD=0x01;unsigned int i=24000;while(i--){ TH0=-(...

求高手用C语言写一下89C51单片机内部定时器中断典型运用
说一下思路吧,使用两个定时器(T0和T1),T0为P0.0的接的LED定时,T1为P0.1接LED定时,需要两个变量led1_time和led2_time来计时(单位是秒),然后分别根据LED的状态来判断led1_time(或led2_time)需要计多少秒,按照你的要求,LED1(P0.0)亮时led1_time需要计时3秒,LED1灭时led1_...

89C51单片机汇编程序题
MOV 20H,R0 ;R0、R1要作为指针,所以内容直接转存到20H、21H MOV 21H,R1 MOV A,PSW ;RS1,RS0的值代表了当前寄存器组中R0的绝对地址 ANL A,#18H ;取当前寄存器组的绝对地址 ADD A,#2H ;指针指向R2,R0、R1已经处理过了 MOV R0,A ;把当前寄存器组R2的地址送R0,设置...

89C51是什么单片机
AT89C51是老式的255位单片机,STC89C51在AT89C51上加入了AD数模转换,集成程度更高。MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)8751等通用产品。

单片机89c51一个6位LED数码管显示功能 程序,希望能准确点的程序,只显...
include <reg51.h> include <intrins.h> void delay(unsigned int i); \/\/函数声名 char DelayCNT;\/\/定义变量 \/\/此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; \/\/段码控制 \/\/...

求利用单片机89c51一个6位LED数码管显示功能 程序
include<reg52.h> define uchar unsigned char define uint unsigned int sbit dula=P2^6;sbit wela=P2^7;void delay(uint z);void display(uchar num1,uchar num2,uchar num3);uchar code tabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/uchar code tablewe[]...

求89C51单片机与PC链接并运行的步骤。(从keil编写程序(C语言)到单片...
你说你用89c51单片机是stc还是ATmel的。给你一重STC89C系列的吧(你可参照宏晶科技网址)下载程序上面有一步一步教你,至于MCU和PC怎么相连,这系列单片机用串口下程序,看看就明白了,相信你是聪明人 祝好 补充说明:1、对于atmel公司的AT89C51需要用专门的编程器才能下载,AT89S51\/2可以自己做个下载线...

高分!急求89C51单片机外部中断程序。有三个外部中断源,控制3个IO口的...
\/\/低0.3S,P02 = 0; \/\/P0.2口输出低电平.DL_x_10ms(30);\/\/下面的定时,可以自行编写 \/\/高0.3S,\/\/低0.58S,\/\/高0.12S,\/\/低1.08S,\/\/高2.55S,\/\/低0.47S,\/\/高0.075S,高低电平很多次这样。.EX0 = 0;EX1 = 1; \/\/开放INT1(K3)中断 } ...

杜尔伯特蒙古族自治县17745465197: 用单片机89C51实现数码管的显示,要求0 - F任意按下一个键,用4个数码管显示它的二进制值,并滚动显示 -
福疫塞奇: 这个很容易,我不给你程序,给你 个建议吧,设置是十六个键,设一个变量'i'每个键按下要存储'i'值,分别为0000,0001......1111.按下k1之后判断前面所存储的值是多少然后给显示出来 显示数码应该会的吧,用动态扫描数码管,四个就可以了,k2更好办,按k2之后执行将i值清零.这个是入门,入门之后你就会喜欢编程了

杜尔伯特蒙古族自治县17745465197: 使用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;

杜尔伯特蒙古族自治县17745465197: 用89c51单片机 数码管显示HELLO的程序 六段数码管上 -
福疫塞奇: 大概理解你的意思,是在数码管一次排列好这一句话,首先第一步需要做的是数码管的取模工作.#include//这边为了让你看的更容易,用的是单独操作,没有用总线 sbit led1 = p1^0; sbit led2 = p1^1; sbit led3 = p1^2; sbit led4 = p1^3; sbit led5 = ...

杜尔伯特蒙古族自治县17745465197: 89C51的七段数码管显示程序,要求很简单,只要显示1、2、3、4四个数就OK了,跪求
福疫塞奇: 编程在四位数码管上显示0123四个数字,每经过一秒四个数字循环左移一位显示,依次是0123,1230,2301,……无限往复…… 本人用的AT89S52单片机,使用的P1端口驱动数码管.

杜尔伯特蒙古族自治县17745465197: 用89C51单片机的数码管显示配套遥控器的键值的汇编程序 -
福疫塞奇: 采纳率:55%13级 2013.08.18这是数码管动态动态现实方式0—7,一共8个数字,你自己可以改成学好,对应显示就可以了.ORG 00HMOV 20H,#3FHMOV 21H,#06HMOV 22H,#5BHMOV 23H,#4FHMOV 24H,#66HMOV 25H,#6DHMOV 26H,#7...

杜尔伯特蒙古族自治县17745465197: 用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键分别控制暂停、加一秒、减一秒和继续 -
福疫塞奇: #include<reg51.h>#define uchar unsigned char; uchar LED1,LED2; uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar num=0;sec,key; void delay(unsigned int a) { unsigned int i,j; for(i=0;i<a;i++) for(j=0;j<120;j++); } void ...

杜尔伯特蒙古族自治县17745465197: 用89c51实现8位7段数码管显示数字1~8(汇编程序)
福疫塞奇: 参考一下: http://zhidao.baidu.com/question/168209662.html 可以试试自己修改成显示数字1~8,如有困难可到我的空间留言.

杜尔伯特蒙古族自治县17745465197: 用89c51单片机和4位数码管做一个动态显示的时钟,程序怎么编写,求大神帮助. -
福疫塞奇: # include <reg51.h> // 显示 0 1 2 3 4 5 6 7 , 8位数码管 试试 char code table[] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c,0x39, 0x53, 0x79, 0x71}; void delayms(int k); void main() { while (1) { char i = 0; for (P3 = 0xfe; P3 !...

杜尔伯特蒙古族自治县17745465197: 谁能告诉我用单片机AT89C51怎么制作一个3个共阴极的数码管,让十位、个位、百位的数码一起显示出来 -
福疫塞奇: 3个数码管咋能同时显示0~8,我就纳闷了,直接用个8位共阴数码管,就可以用动态显示,同时显示0~7或者1~8,驱动的话...

杜尔伯特蒙古族自治县17745465197: 4位一体数码管用89c51在数码管上显示频率,c语言怎么写啊? -
福疫塞奇: 最好把,频率采集放到外部中断口,然后准备一个计数器,每次中断计数器加一. 然后开时钟中断,设为1/8秒,每次时钟中断成功就把外部中断计数器的数字取出来乘以8后放入数码管显示,同时把计数器清零.要成品的话真没有...

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