barriers / 阅读 / 详情

求51单片机C语言编程大神帮忙

2023-10-05 11:16:03
共2条回复
snjk

#include

#define uchar unsigned char

#define uint unsigned int

sbit db=P2^7;

char i,sec,min,h,date,month,year,flag;

uchar j,k,m,n,o,p;

sbit dula=P2^0;

sbit wela1=P2^1;

sbit wela2=P2^2;

sbit key_ch=P3^5;

sbit key_add=P3^6;

sbit key_minus=P3^7;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void init();

void delay(uint);

void second_display();

void minute_display();

void hour_display();

void date_display();

void month_display();

void year_display();

void control();

void time();

void main()

{

init();

while(1)

{

second_display();

minute_display();

hour_display();

date_display();

month_display();

year_display();

control();

}

}

void init()

{

db=0;

i=0;

sec=0;

min=0;

h=0;

date=1;

month=1;

year=1;

flag=0;

wela1=0;

wela2=0;

EA=1;

ET0=1;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void second_display()

{

int sec_shi,sec_ge;

sec_shi=sec/10;

sec_ge=sec%10;

if(flag==1&&j!=1)

j++;

else

{

j=0;

dula=1;

P0=~table[sec_ge];

dula=0;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x20;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[sec_shi];

dula=0;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x10;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

}

}

void minute_display()

{

int min_shi,min_ge;

min_shi=min/10;

min_ge=min%10;

if(flag==2&&k!=1)

k++;

else

{

k=0;

dula=1;

P0=~table[min_ge];

dula=0;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x08;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[min_shi];

dula=0;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x04;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

}

}

void hour_display()

{

int h_shi,h_ge;

h_shi=h/10;

h_ge=h%10;

if(flag==3&&m!=1)

m++;

else

{

m=0;

dula=1;

P0=~table[h_ge];

dula=0;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x02;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

delay(1);

dula=1;

P0=~table[h_shi];

dula=0;

wela1=1;

P1=0x00;

wela1=1;

P1=0x00;

wela1=0;

wela2=1;

P1=0x01;

wela2=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

wela2=0;

delay(1);

}

}

void date_display()

{

int date_shi,date_ge;

date_shi=date/10;

date_ge=date%10;

if(flag==4&&n!=1)

n++;

else

{

n=0;

dula=1;

P0=~table[date_ge];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x80;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[date_shi];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x40;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

}

}

void month_display()

{

int month_shi,month_ge;

month_shi=month/10;

month_ge=month%10;

if(flag==5&&o!=1)

o++;

else

{

o=0;

dula=1;

P0=~table[month_ge];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x20;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[month_shi];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x10;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

}

}

void year_display()

{

int year_qian,year_bai,year_shi,year_ge;

year_qian=year/1000;

year_bai=year%1000/100;

year_shi=year%1000%100/10;

year_ge=year%10;

if(flag==6&&p!=1)

p++;

else

{

p=0;

dula=1;

P0=~table[year_ge];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x08;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[year_shi];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x04;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[year_bai];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x02;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

dula=1;

P0=~table[2];

dula=0;

wela2=1;

P1=0x00;

wela2=0;

wela1=1;

P1=0x01;

wela1=0;

delay(1);

dula=1;

P0=0xff;

dula=0;

wela1=0;

}

}

void control()

{

if(!key_ch)

{

delay(5);

if(!key_ch)

{

flag++;

if(flag==7)

flag=0;

}

}

while(!key_ch);

if(flag==1&&key_add==0)

{

while(!key_add);

sec++;

if(sec==60)

sec=0;

}

if(flag==1&&key_minus==0)

{

while(!key_minus);

sec--;

if(sec==-1)

sec=59;

}

if(flag==2&&key_add==0)

{

while(!key_add);

min++;

if(min==60)

min=0;

}

if(flag==2&&key_minus==0)

{

while(!key_minus);

min--;

if(min==-1)

min=59;

}

if(flag==3&&key_add==0)

{

while(!key_add);

h++;

if(h==24)

h=0;

}

if(flag==3&&key_minus==0)

{

while(!key_minus);

h--;

if(h==-1)

h=23;

}

if(flag==4&&key_add==0)

{

while(!key_add);

date++;

if(date==29)

if((year%4!=0)&&(month==2))

date=1;

if(date==30)

if((year%4==0)&&(month==2))

date=1;

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

date=1;

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

date=1;

}

if(flag==5&&key_add==0)

{

while(!key_add);

month++;

if(month==13)

month=1;

}

if(flag==5&&key_minus==0)

{

while(!key_minus);

month--;

if(month==0)

month=12;

}

if(flag==6&&key_add==0)

{

while(!key_add);

year++;

if(year==99)

year=1;

}

if(flag==6&&key_minus==0)

{

while(!key_minus);

year--;

if(year==0)

year=99;

}

}

void T0_rpt() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

i++;

time();

}

void time()

{

if(i==20)

{

i=0;

sec++;

if(sec==60)

{

sec=0;

min++;

if(min==60)

{

min=0;

h++;

if(h==24)

{

h=0;

min=0;

sec=0;

date++;

if(date==29)

if((year%4!=0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==30)

if((year%4==0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

}

}

}

}

}

牛云

如何才能将所有要实现的功能把他做成一个程序

相关推荐

单片机用什么语言编程

单片机用以下语言可以编程:1、C语言。单片机C语言是一种编译语言,具有编译语言的特点。C语言具有功能丰富的库函数、计算速度快、编译效率高、可移植性好,可直接控制系统。此外,C语言程序具有完整的程序模块结构,为软件开发中模块化程序设计方法的使用提供了有力的保证。2、汇编语言。它的主要优点是占用资源少,程序执行效率高。因为它有一个指令,所以每个指令都很清晰,堆叠和调整都很容易控制,调试也很方便。但是不同类型的单片机可能有不同的编码语言,所以不容易移植。3、PL/M编程语言。P/M是一种具有L/M语言的高级语言,不仅具有L/M语言的高级汇编,而且直接利用CPU的硬件特性进行编程。因此,与其他高级语言相比,它具有更多的功能和更广泛的应用,尤其是在16台单片机的应用领域。4、BASIC编程语言。BASIC是一种高级语言,其英文意思是初学者通用符号代码。在过去的几十年里,BASIC语言被认为是初学者编程的语言,已经从QBASIC发展到很多版本,有很多结构化的思维和编程方法,比如函数、模块、局部变量、全局变量、数据传输等。使用单片机语言的注意事项。1、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。2、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。3、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。4、高级语言编写单片机程序的缺陷高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。
2023-09-11 21:27:181

单片机编程用什么语言

摘要:单片机编程是学习单片机的一个重要部分,编程关系到单片机能否正常运行,一般情况下,单片机的程序是用C语言编写的,不过不是传统C语言,而是变种后的C51语言;此外,启动部分、一些要求时效性特别强的部分会用汇编语言编程。学习单片机编程的时候,先要模仿例题,然后试着自己写,熟练了再看别人的编程进行改进。下面一起来了解一下单片机编程用什么语言吧。一、单片机编程用什么语言单片机编程是指编写单片机运行的程序,一般来说,对于刚刚入门学习单片机的朋友来说,学习单片机的编程是很重要的,那么单片机用什么语言编程呢?1、C语言大多数情况下,单片机运行的程序,都是C语言编写的。不过并不是纯粹的传统C语言,而是变种后的C51语言。单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的工程师,能够轻松地掌握单片机C51语言的程序设计。2、汇编语言汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,也称为符号语言。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。在一些情况下,C51并不能完美的实现功能,所以汇编语言是对C51的一个重要补充。一般来说,启动部分(基础硬件的初始化),往往是由汇编语言完成的。除此以外,一些要求时效性特别强,效率要求特别高时,也需要使用汇编语言完成。二、怎么学好单片机编程单片机的编程并不简单,一个完整程序的形成需要有C语言知识以及编程逻辑,编程逻辑决定一个程序是否优秀,是单片机编程一个很重要的问题,只有通过多阅读大神的优秀代码和多动手编写的时候才能一点一点的积累。在学习单片机编程的过程中,按照以下过程学习,效果会更好:1、作为一个初学者,我们就如同一个婴儿一样,我们的第一个能力就是模仿。通过例题的模仿,先熟悉C语言的编写和编辑器的使用。2、然后尝试着不看案例自己写,多写几次找出自己的不足,再通过看书补足。3、最后我们再试着去修改程序,最简单的就是从左到右变成从右到左。最后去阅读一些优质的代码,研究人家的编程思路,找出自己思路的差异多想一下为什么;领会其中每一条语句的作用;对有疑问的地方试着按照自己的思路修改程序,运行别人的程序和自己修改的程序有何不同,领会其中的奥妙。在学会单片机的编程后,多去看看企业制作产品的标准,自己去动手做,多做项目累积经验,熟能生巧。
2023-09-11 21:27:411

51单片机c语言编程?

对端口输出操作,直接适用赋值语句即可。 比如 P1 = 0x03;对端口读取操作,直接赋值给局部变量即可。对数码管操作,需要先定义 对应的 码表, Tab[16] = {, }分别对应 0~F 的端口输出值、点亮相应的LED位; 然后直接 操作端口输出对应字符即可,比如P1=Tab[3] 数码管输出显示3
2023-09-11 21:29:281

用c语言编程实现C8051F300单片机1s定时,50Hz的方波输出

#include sbit wave=P1^0;void SetupTimer0(){ TMOD &= 0XF0; //仅保留T1信息 TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器 TH0 = 256-250;//定时每0.25ms中断一次 TL0 = 256-250; TR0 = 1; //开启定时器 ET0 = 1; //定时器0中断打开}data unsigned char us250;data unsigned int ms;bit WAVE; //用以记住当前wave的状态void Timer0_ISR() interrupt 1 //定时中断服务程序,为按键消抖服务{if (++us250<4) return; us250=0; ++ms;if (ms<10) return;//每10ms波形变化一次,20ms完成一个波形,所以波形是50Hz的ms=0; WAVE=~WAVE; wave=WAVE; //方波输出}void main(){ us250=ms=0;wave=WAVE=0;SetupTimer0(); EA = 1; //全局中断打开while(1); //在中断函数中实现方波输出}
2023-09-11 21:30:381

单片机告诉一个地址,怎样用C语言编程读取地址处的值???

4X4键盘还有物理地址?你是怎么得到这个物理地址的呢?-待续-
2023-09-11 21:30:512

单片机C语言编程

这个不难实现,利用独立按键和流水灯的知识可以做的。试试看。
2023-09-11 21:31:024

单片机,C语言编程问题?

应该是判别条件的范围有问题,有情况没有包含或者漏洞。
2023-09-11 21:32:032

单片机C语言编程问题

whlie(A[2]==A)A是数组, ‘A[2]==A"明显语法错误。还有既然‘A[2]==A"才能执行while里的语句那‘if(A[2]==B) 。。。"又有什么意义?Keil 4中机型选择是有AT89C52的
2023-09-11 21:32:123

C语言版51单片机编程问题?

你所说的“没有什么联系、各自独立运行”颇令人费解。既然如此,传感器检测的数值有什么用?传给上位机?LED以及步进电机在什么条件下动作?由上位机控制?如果是这样,就做成单纯的串口驱动型应用就可以了。
2023-09-11 21:32:272

哪些单片机支持c语言编程?

C51, C52, ARM,STM32,AVR,DSP,FPGA等
2023-09-11 21:33:102

单片机c语言编程软件有哪些?

windows下首选VS,版本至少vs2005以上,或者用最新的VSCode,不过需要自己配插件,好处是免费,如果做单片机c开发首选eclipse,linux下如果做单片机首选eclipse,其次是clion。eclipse兼容性最好,不过稳定性差一些,vs在win下没有对手,clion用cmake,相比来说大部分c程序用的都是makefile,需要适应一下。Devc++:这个IDE是windows环境下的,操作简单,功能也不弱,适合新手使用。Codeblocks(强力推荐):功能比较强大的c/c++IDE,有着不错的智能提示。拓展资料C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。编译器GCC,GNU组织开发的开源免费的编译器MinGW,Windows操作系统下的GCCClang,开源的BSD协议的基于LLVM的编译器VisualC++::cl.exe,MicrosoftVC++自带的编译器集成开发环境CodeBlocks,开源免费的C/C++IDECodeLite,开源、跨平台的C/C++集成开发环境OrwellDev-C++,可移植的C/C++IDEC-FreeLightTableVisualStudio系列HelloWorld
2023-09-11 21:33:521

单片机c语言编了个流水灯,用按键怎么实现它暂停。

可以用定时器设置流水灯的时间间隔,按键控制定时器开关
2023-09-11 21:34:043

char有符号型型变量全称为signedchar一般缩写为char范围是-128~127uchar在C语言中不存在,会出现语法错误。unsignedchar是无符号型变量范围是0~255但大家为了书写简单,大家都做如下定义:这时候Uchar或uchar就可以当无符号型字符变量使用了typedefunsignedcharUchar;typedefunsignedcharuchar;
2023-09-11 21:34:221

单片机c语言编程100个实例

51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的方法是异或1,而不取反的方法则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。 第一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。 开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。 代码 1. #include <at89x52.h> 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。 14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据
2023-09-11 21:34:341

单片机编程时出现undefined identifier是什么意思? 大哥们教教我吧!

undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。具体解决办法:找到未定义的标志符,对其进行赋值即可。定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错。扩展资料:C语言单片机编程:单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构。设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用 。参考资料来源:百度百科-单片机C语言编程参考资料来源:百度百科-单片机编程器
2023-09-11 21:34:451

单片机制作呼吸灯的C语言程序怎样编写

用pwm脉冲
2023-09-11 21:35:1510

AT89S51单片机c语言程序的编程1

在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)#i nclude <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3{P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCCWhile( 1 ); //死循环,相当 LOOP: goto LOOP;}注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。
2023-09-11 21:36:041

学习单片机c语言编程,需不需要学习一下数据结构之类的。

刚学就学的简单的,等到你简单的学会了在学难的 吧。
2023-09-11 21:36:234

单片机C语言编程问题

进入中断先关中断,退出中断处理时要清中断标志位。
2023-09-11 21:36:311

求大神用C语言编写单片机程序!!

太专业了,我是纯软的,单片机不明白
2023-09-11 21:36:552

单片机p1, undefined identifier什么情况啊?

undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。具体解决办法:找到未定义的标志符,对其进行赋值即可。定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错。扩展资料:C语言单片机编程:单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构。设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用 。参考资料来源:百度百科-单片机C语言编程参考资料来源:百度百科-单片机编程器
2023-09-11 21:37:031

单片机编程(C语言)问题

uchar num; 到0后-1溢出了,成FF了,无符号数为255
2023-09-11 21:37:172

求用C语言编程实现51单片机的LED灯移动

移动,不循环?没有时间要求?
2023-09-11 21:37:384

51单片机C语言对流水灯编程,用定时中断做

把具体要求说清楚后,我才好把按照要求写的程序贴出来
2023-09-11 21:37:474

单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以

还没学单片机!无法回答!
2023-09-11 21:38:105

单片机流水灯的C语言编程

这种题目就是向特定端口写值,1亮灯,0灭,如此而已。主要的测试点是结合特定的单片机,将程序的入口点连接成单片机初始化的入口地址。
2023-09-11 21:38:304

单片机用c语言编程,使led灯管从中间开始两个灯向两边循环闪烁

用一个数组就行了
2023-09-11 21:39:002

程序中undefined identifier是什么意思?

undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。具体解决办法:找到未定义的标志符,对其进行赋值即可。定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错。扩展资料:C语言单片机编程:单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构。设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用 。参考资料来源:百度百科-单片机C语言编程参考资料来源:百度百科-单片机编程器
2023-09-11 21:39:081

单片机的C语言程序设计

不应该说单片机是否支持C语言,目前任何计算机都不直接支持C语言。而应该说某个单片机的开发环境是否支持C语言。就目前来说,几乎所有的单片都有支持C语言的开发环境。用的最多的应该是KEIL,既支持51单片机,也支持ARM的C语言开发。另外TI的CCS支持430的C语言开发。其他的就不一一列举了
2023-09-11 21:39:361

c语言编程c51单片机

#include <reg51.h>#define uchar unsigned char#define uint unsigned intmain(){ uint xdata *xp;//定义指向片外RAM的指针 uint data *p;//定义指向片内RAM的指针 uchar i;//定义循环变量 xp=0x100;//指向片外RAM的100H单元 p=0x30;//指向片内RAM的30H单元 for(i=0;i<10;i++){//循环10次 *p=*xp;//将片外RAM单元中的内容传送给片内RAM单元 xp++;//指向下一个片外RAM单元地址 p++;//指向下一个片内RAM单元地址 }}
2023-09-11 21:39:491

怎样提升自己单片机C语言编程能力啊?求高手指点迷津!我硬件也懂一点 但我想朝编程方面发展 跪求高手指教

找资料,看人家的例程啦
2023-09-11 21:40:047

如何用c语言编程在单片机上做交通信号灯

看名字
2023-09-11 21:40:482

如何提高单片机C语言编程能力?

多学习单片机的基础知识,多动手制作单片机电路板,多编写单片机程序。www.dzkfw.com.cn/myxin/51c_language.chm 单片机c语言编程资料
2023-09-11 21:41:085

C语言高手进、单片机编程、

void display(); //显示函数申明改成 void display(int x); //显示函数申明
2023-09-11 21:41:272

单片机串口通信C语言编程问题

首先你应该先确认STC(死得惨)的串口波特率是否与电脑的波特率一致,RS-232连接是否正确。另外一个字符应该是‘t",而不是“t”吧?
2023-09-11 21:41:362

51单片机,stm32,arduino都是用什么语言进行编程的?

51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。51单片机的编程51单片机进入中国比较早,在早前用汇编编程比较多,我在上大学时也是学习的汇编编程,但是现在我用C语言编程,汇编已经不会了。51单片机比较常用的编程环境是Keil,现在Keil更新到Keil5了。如下是51单片机Keil的编程环境。STM32单片机的编程STM32单片机是意法半导体推出的高性价比、片上资源丰富的32位单片机,这个系列的单片机我一直在用,都是用C语言进行编程,官方推出的库函数和HAL库都是用C语言编程的,虽然有一部分汇编共存。STM32单片机用KeilMDK进行编程。Arduino的编程Arduino是一款做的非常成功的开源硬件,并且有自己的开发环境,将底层的寄存器设置都进行了封装,用户不用自己配置寄存器,调用封装好的函数即可,可以在官方网站下载编程IDE。Arduino旨在培养用户的编程兴趣,简化了技术难度,很受欢迎。在用户层面,现在C语言编程已经是主流,C语言的移植性和可读性比汇编语言有很大的优势,也有很多人在使用汇编编程,尤其是涉及到底层时。
2023-09-11 21:41:441

单片机编程,c语言中P0=_cror_(0x7f,bi)是什么意思

把函数_cror_(0x7f,bi)的返回值赋值给P0。函数的参数是0x7f和bi
2023-09-11 21:41:553

新概念51单片机C语言教程的作品目录

第1篇入门篇1.1单片机概述1.1.1什么是单片机1.1.2单片机标号信息及封装类型1.1.3单片机能做什么1.1.4如何开始学习单片机1.251单片机外部引脚介绍1.3电平特性1.4二进制与十六进制1.4.1二进制1.4.2十六进制1.5二进制的逻辑运算1.5.1与1.5.2或1.5.3非1.5.4同或1.5.5异或1.6单片机的C51基础知识介绍1.6.1利用C语言开发单片机的优点1.6.2C51中的基本数据类型1.6.3C51数据类型扩充定义1.6.4C51中常用的头文件1.6.5C51中的运算符1.6.6C51中的基础语句1.6.7学习单片机应该掌握的主要内容2.1Keil工程建立及常用按钮介绍2.1.1Keil工程的建立2.1.2常用按钮介绍2.2点亮第一个发光二极管2.3while语句2.4for语句及简单延时语句2.5Keil仿真及延时语句的精确计算2.6不带参数函数的写法及调用2.7带参数函数的写法及调用2.8利用C51库函数实现流水灯第2篇内外部资源操作篇3.1数码管显示原理3.2数码管静态显示3.3数码管动态显示3.4中断概念3.5单片机的定时器中断4.1独立键盘检测4.2矩阵键盘检测5.1模拟量与数字量概述5.2A/D转换原理及参数指标5.3ADC0804工作原理及其实现方法5.4D/A转换原理及其参数指标5.5DAC0832工作原理及实现方法5.6DAC0832输出电流转换成电压的方法第6章串行口通信原理及操作流程6.1并行与串行基本通信方式6.2RS-232电平与TTL电平的转换6.3波特率与定时器初值的关系6.451单片机串行口结构描述6.5串行口方式1编程与实现6.6串行口打印在调试程序中的应用第7章通用型1602,12232,12864液晶操作方法7.1液晶概述7.2常用1602液晶操作实例7.3常用12232液晶操作实例7.4常用12864液晶操作实例第8章I2C总线AT24C02芯片应用8.1I2C总线概述8.2单片机模拟I2C总线通信8.3E2PROMAT24C02与单片机的通信实例第9章基础运放电路专题9.1运放概述及参数介绍9.2反相放大器9.3同相放大器9.4电压跟随器9.5加法器9.6差分放大器9.7微分器9.8积分器第3篇提高篇第10章定时器/计数器应用提高10.1方式0应用10.2方式2应用10.3方式3应用10.452单片机定时器2介绍10.5计数器应用第11章串行口应用提高11.1方式0应用11.2方式2和方式3应用11.3单片机双机通信11.4单片机多机通信第12章指针12.1指针与指针变量12.1.1内存单元、地址和指针12.1.2指针变量的定义、赋值与引用12.2指针变量的运算12.3指针与数组12.3.1指针与一维数组12.3.2指针与多维数组12.4指针与函数12.4.1指针作为函数的参数12.4.2指向函数的指针12.4.3指针型函数12.5指针与字符串12.5.1字符串的表达形式12.5.2字符指针作为函数参数12.5.3 使用字符指针与字符数组的区别12.6指针数组与命令行参数12.6.1 指针数组的定义和使用12.6.2指向指针的指针12.6.3 指针数组作为main()函数的命令行参数12.7指针小结12.7.1指针概念综述12.7.2指针运算小结12.7.3等价表达式12.8C51中指针的使用12.8.1指针变量的定义12.8.2指针应用第13章STC系列51单片机功能介绍13.1单片机空闲与掉电模式应用13.2“看门狗”概念及其应用13.3用软件实现系统复位13.4内部扩展RAM的应用13.5扩展P4口的应用13.6内部E2PROM的应用13.7STC89系列单片机内部A/D应用13.8STC12系列单片机内部A/D应用13.9STC12系列单片机的PCA/PWM介绍13.10STC12系列单片机的SPI接口介绍13.11STC12系列单片机的“576MHz”超速运行第4篇实战篇第14章利用51单片机的定时器设计一个时钟14.1如何从矩阵键盘中分解出独立按键14.2原理图分析14.3实例讲解第15章使用DS12C887时钟芯片设计高精度时钟15.1时钟芯片概述15.2DS12C887时钟芯片介绍15.3如何用TX-1C实验板扩展本实验15.4原理图分析15.5实例讲解第16章使用DS18B20温度传感器设计温控系统16.1温度传感器概述16.2DS18B20温度传感器介绍16.3实例讲解第17章太阳能充/放电控制器17.1控制器原理图分析17.2控制器板上元件介绍17.3实例讲解第18章VC、VB(MSCOMM控件)与单片机通信实现温度显示18.1VCMSCOMM控件与单片机通信实现温度显示18.2VBMSCOMM控件与单片机通信实现温度显示第5篇拓展篇第19章使用Protell99绘制电路图全过程19.1绘制电路板概述19.2建立工程19.3制作元件库19.4添加封装及制作PCB封装库19.5错误检查及生成PCB19.6布线电气特性设置19.7自动布线和手动布线第20章ISD400x系列语音芯片应用20.1ISD400x系列语音芯片介绍20.2ISD400x系列语音芯片操作规则20.3ISD400x系列语音芯片应用实现第21章电机专题21.1直流电机原理及应用21.2步进电机原理及应用21.3舵机原理及其应用第22章常用元器件介绍22.1二极管22.2电容22.3场效应管22.4光耦22.5蜂鸣器22.6继电器22.7自恢复保险22.8瞬态电压抑制器22.9晶闸管(可控硅)22.10电荷泵第23章直流稳压电源专题23.1整流电路23.2滤波电路23.3稳压电路23.4集成稳压模块的使用23.5串联开关型稳压电源第24章运放扩展专题24.1简单低通滤波器24.2“电流-电压”转换电路24.3光电放大器24.4精密电流源24.5可调参考电压源24.6复位稳定放大器24.7模拟乘法器24.8全波整流器和平均值滤波器24.9正弦波振荡器24.10三角波发生器24.11自动跟踪对称电源24.12可调实验电源24.13运放相关术语表附录A天祥电子开发实验板简介A.1TX-1C51单片机开发板(配套详细视频教程)A.2AVR单片机开发板(配套详细视频教程)A.3PIC单片机开发板(配套详细视频教程)A.4J-Link全功能ARM仿真器A.5三星S3C44B0ARM7入门级开发板A.6三星S3C44B0ARM7提高级开发板A.7TX-51STAR51单片机开发板(配套详细视频教程)参考文献
2023-09-11 21:42:031

c语言错误p1, undefined identifier是什么意思?

说明你用了一个没有定义的函数或者变量
2023-09-11 21:42:192

单片机c语言程序解读,,求解释。。

数码管滚动显示数字。
2023-09-11 21:42:483

用c语言编写的单片机程序(就是书上的程序),进行烧录之后就可以让单片机工作?

是的,但你疑问的问题也是存在的。针对不同的单片机,有不同的编译器,每种单片机的c语言编译器都对c语言做了适用于单片机的扩展。编译器在编译单片机c语言的代码时要有一些设置选项或者makefile之类的设置,这些设置对了,程序才能适应选定的单片机。
2023-09-11 21:42:574

单片机C语言实验电脑时钟编程

org 0000h ljmp start ORG 001BH ;INT T1 入口地址 lJMP INT_T1 ORG 0080Hstart: MOV SP,#60H mov 30h,#0 mov 31h,#0 mov 32h,#0 mov 33h,#0 mov 34h,#0 mov 35h,#0 mov 36h,#0 mov 37h,#0 MOV R3,#0H ;时 MOV R2,#0H ;分 mov r1,#0h ;秒 MOV R6,#0H ;标志 mov r7,#0h ;标志 MOV 38h,#0H ;标志 mov 39h,#0h ;标志 MOV TMOD,#10H MOV TL1,#00H ;50 mS 的时间常数 MOV TH1,#04CH MOV R0,#10 mov r4,#2 setb p2.7 SETB TR1 SETB ET1 SETB EA ;允许中断loop: lcall scankey cjne r7,#0ffh,wait1 lcall display2 sjmp loop wait1: CJNE R6,#0FFH,wait LCALL DISPLAY1 MOV 34H,30H MOV 35H,31H MOV 36H,32H MOV 37H,33H sjmp loop wait: lcall display SJMP loop INT_T1: ;INT_T1中断服务子程序 PUSH DPH ;保护现场 PUSH DPL PUSH ACC PUSH PSW CLR TR1 MOV TL1,#00H ;50mS 定时常数 MOV TH1,#4CH SETB TR1 DJNZ R4,EXIT1 MOV R4,#2 mov a,30h CJNE a,#09h,s0 MOV 30h,#0 mov a,31h CJNE a,#9H,s1 MOV 31h,#0H mov a,32h CJNE a,#9H,s2 MOV 32h,#0H mov a,33h CJNE a,#9H,s3 MOV 33h,#0H s3: mov a,33h add a,#1 mov 33h,a s2: mov a,32h add a,#1 mov 32h,a s1: mov a,31H add a,#1 mov 31H,a s0: mov a,30H add a,#1 mov 30H,a DJNZ R0,EXIT1 ;判断毫秒=0 MOV R0,#10 ;DELAY 1 SECOND cpl p2.7 mov a,38h cjne a,#0ffh,next1 ljmp hour1 next1: mov a,39h cjne a,#0ffh,next2 ljmp minute1 next2: CJNE R1,#59H,SECOND ;判断秒=59 MOV R1,#99Hminute1:CJNE R2,#59H,MINUTE ;判断分=59 MOV R2,#99H hour1:CJNE R3,#23H,HOUR ;判断时=23 MOV R3,#99HHOUR: MOV A,R3 ADD A,#1 ;时加1 DA A MOV R3,A mov a,38h cjne a,#00,exit1MINUTE: MOV A,R2 ADD A,#1 ;分加1 DA A MOV R2,A mov a,39h cjne a,#00,exit1SECOND: MOV A,R1 ADD A,#1 ;秒加1 DA A MOV R1,A EXIT1: mov 38h,#0h mov 39h,#0h POP PSW ;恢复现场 POP ACC POP DPL POP DPH RETI ;中断返回DISPLAY: MOV A,R3 ANL A,#0FH mov dptr,#ledseg movc a,@a+dptr MOV P0,A ;MOV P2,#0fbh setb p2.0 clr p2.2 setb p2.1 setb p2.3 lcall delay MOV A,R3 SWAP A ANL A,#0FH mov dptr,#ledseg movc a,@a+dptr MOV P0,A setb p2.0 clr p2.3 setb p2.2 setb p2.1 ;MOV P2,#0f7h lcall delay MOV A,R2 ANL A,#0fH mov dptr,#ledseg movc a,@a+dptr MOV P0,A setb p2.1 clr p2.0 setb p2.2 setb p2.3 ;MOV P2,#0feh lcall delay MOV A,R2 SWAP A ANL A,#0FH mov dptr,#ledseg movc a,@a+dptr MOV P0,A setb p2.0 clr p2.1 setb p2.2 setb p2.3 ;MOV P2,#0fdh lcall delay RETdisplay1: MOV A,30h mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0feh lcall delay MOV A,31h mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0fdh lcall delay MOV A,32H mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0fbh lcall delay MOV A,33H mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0f7h lcall delay RETdisplay2: MOV A,34h mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0feh lcall delay MOV A,35h mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0fdh lcall delay MOV A,36H mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0fbh lcall delay MOV A,37H mov dptr,#ledseg movc a,@a+dptr MOV P0,A MOV P2,#0f7h lcall delay RETdelay: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0,#1HDELAY1: MOV 1,#0FH DJNZ 1,$ DJNZ 0,DELAY1 POP 1 ;恢复现场 POP 0 RETscankey: setb p1.0 jb p1.0,p11 lcall delay jb p1.0,p11 mov r6,#0ffh mov r7,#0h mov 30h,#0 mov 31h,#0 mov 32h,#0 mov 33h,#0 SJMP loop1 p11: setb p1.1 jb p1.1,P12 lcall delay jb p1.1,p12 mov r6,#0h mov r7,#0h sjmp loop1 p12: SETB P1.2 JB P1.2,p13 lcall delay jb p1.2,p13 mov r7,#0ffh sjmp loop1 p13: setb p1.3 jb p1.3,p14 lcall delay jb p1.3,p14 mov 38h,#0ffh sjmp loop1 p14: setb p1.4 jb p1.4,loop1 lcall delay jb p1.4,loop1 mov 39h,#0ffh sjmp loop1 loop1: retLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;"0,1,2,3,4,5,6,7" DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;"8,9,A,B,C,D,E,F" DB 6DH,02H,08H,00H,59H,0FH,76H end
2023-09-11 21:43:234

用C语言编写8051单片机程序

我做了流水灯,可以到我QQ空间看源程序初稿。
2023-09-11 21:43:343

51单片机c语言程序

TMOD=0x01;//T0,工作方式1TH0=0xb1;//20ms定时,自己定的TL0=0xe0;//算的TR0=1;//开启T0定时器ET0=1;//允许T0定时器中断EA=1;//开启总中断允许
2023-09-11 21:43:445

不同单片机c语言编程有何不同?要学习英飞凌8位和16位单片机c编程,可是几乎所有书都是对51的,该从哪入手

这样吧!你还是先学8位的,16位用的不广泛,我可以介意你看下一个视频吗?绝对对你有作用,我学单片机看了他一篇视频就有了很大认识,<霖锋带你从51征服嵌入式>霖锋老师讲的非常好希望对你有帮助.......谢谢
2023-09-11 21:44:004

为什么网店没有香烟卖 包括京东 天猫等?

可能网上卖烟赚不到什么钱
2023-09-11 21:39:275

dnf生命之泉绝版了吗

绝版了。dnf生命之泉,已经绝版的的道具之一,这是曾经的活动产物,玩家可以通过每周的任务慢慢积累,不过如今那些活动与任务都已经成为过眼云烟,宠物制作也成了一个半绝版的系统。因为之前宠物设计图的下架,生命之泉也逐渐沦为了一个废设,在9.24版本更新之后,商城下架了生命之泉,改为在奥兰处出售。
2023-09-11 21:39:271

从郑州总站站到惠济区思念汤圆厂怎么做公交

公交线路:962路 → 196路,全程约21.3公里1、从郑州汽车客运总站步行约30米,到达汽车客运总站2、乘坐962路,经过28站, 到达文化路杲村站3、乘坐196路,经过3站, 到达英才街中段站4、步行约60米,到达郑州思念食品有限公...
2023-09-11 21:39:291

尊敬老师的诗歌短的啊

春蚕到死丝方尽,蜡炬成灰泪始干
2023-09-11 21:39:253

插画图片叶子-基础插花教程步骤详解,插花作品图片赏析

10.30更:油画棒彩铅插画--AUTUMN(满满干货含视频)很久没更了,不过倒是一直在画,这张是一个月前以秋季为主题的插画,下面不说废话直接po主图、视频和过程~画面尺寸为A3,用康颂1557彩铅纸、樱花油画棒、红辉水溶。2分钟快速小视频不算构思和线稿时间,这张前后画了8个多小时,压到2分钟。01.铅笔稿正式的铅笔稿会比较淡,所以我放的是用拷贝纸的转印稿。02.这边有个上色技巧就是先上浅色,我如果先从眼睛开始上色,首先铺的就是眼白和眼珠的高光,其实这两个部分可以不上白色,但是油画棒上色相当容易弄脏画面,一不小心白纸部分就会被屑屑带到颜色,如果先铺一层色后,后面如果被带到颜色,可以用刀片挑走,方便清洁和修型。上纯白色前先观察下笔头是否有杂色,有的话找张白纸转动笔头把杂色去除掉再上色。接下来用肉色油画棒铺肤色,我用下来觉得精装的肉色饱和度更高更易着色,屑屑也少点,普装黄盒的肉色相对精装画在纸上感觉颜色有点薄,屑屑么就不谈了,不过细细的黄盒用来画细小部分还是可以的,所以我一般肤色用精装,其余用普装,所以导致我整个精装里就肉色最短。画肤色的时候注意避开我们后面要画的眼睛嘴巴和头发的部分,因为油画棒混色混的不小心就会脏和腻,所以画之前要想好后面一步甚至十步的落笔效果。这边我画的时候呢手指虽然也是肉色,但是为了避免画早了后面分不清面部与手的界限,所以手指和手臂的部分放到后面再铺色。然后用黑色油画棒点出瞳孔的位置,从这里开始用的都是普装黄盒了,点完瞳孔位置用浅褐色接色在黑色边上,再用深褐色画完整眼珠的轮廓,画的时候注意随时调换笔头角度尽量用侧峰画在铅笔线稿的范围内,铺完眼珠色再用深褐色画上眉毛。接着用深褐色的彩铅勾出上眼线和眼珠的轮廓,再把眼珠里高光部分的轮廓画清楚,接着画上眼睫毛。画的时候手下垫张纸巾或者白纸,其实一样会带到各种颜色的屑屑,垫着稍微好点。接下来用大红色油画棒给嘴唇上色,画的时候用点按的方式画出小小的红唇,双颊这边则轻轻画上大概的位置即可,后面我会用普装的肉色进行混色,会出来健康明艳的肤色哦,再给鼻尖画上红色,留白部分是一片落在鼻子上的落叶。然后用黄盒的肉色再用点按的方式进行混色涂匀。我再选取大红色彩铅画下眼睑和眼角部分,勾出鼻子的下半部分轮廓线,然后轻轻画在油画棒的涂层上做过渡,所以彩铅是能够画在油画棒上的,然后再画出双眼皮,用之前的大红色给眼皮做加深阴影处理,下笔依然要轻,否则会把之前画的油画棒刮走,然后勾出嘴型,给唇色加深下,再把眉毛的轮廓修一下,填上嘴里的深色部分。03.然后我们开始给头发铺色,这边用的是精装油画棒,因为头发面积大,所以我用粗的上色,用到的颜色其实和画眼珠的颜色一样,深褐以及浅褐,精装里相对应的色叫深棕和熟赭。画头发的时候要根据之前铅笔稿中头发的走势来画,受光面用浅色,阴影部分用深色或者这两个颜色进行混色,混色时深浅色上的次序不一样,勾出来的发丝底色也会不一样,大家可以自行感受下。还有画的时候要有全局感,油画棒强有力的覆盖力画到后来会让你感到颜色混乱。叶子用到的颜色是橄榄绿和深橄榄色,叶片分左右两半上色,叶片尖尖点上红色,因为秋天叶片开始变红了,画的时候要注意叶片的前后关系,铺过大体色后用红色点出叶片间的红色小果实。我的画桌是不是hin小清新呀~05.植物部分不是一次性完成,接下来我开始给头发部分勾发丝,用的是自制木笔。勾线的话,其实还有大头针、牙签、美工刀或者写不出颜色的水笔都可以,大家可以根据线条粗细和使用顺手程度来进行选择,个人觉得用大头针或者牙签对手指长时间作业来说有点辛苦,所以自制了木笔,这个怎么做呢,就是用一根一次性筷子卷笔刀卷过后,粗细用美工刀再加工下就可以用了。勾发丝的时候先勾出每股头发的轮廓,然后再在里面分小片勾发丝,这样画不会乱,就是由大到小再细到每根发丝。勾的时候会有很多屑屑,注意及时清理,否则越积越多会把画面弄的更脏,因为弄脏是不可避免的情况,所以我们只能在最大程度上减少屑屑的带色。勾完发丝后开始用彩铅进行细节修补,就是把这些毛边修好看了修光滑了,用的颜色是和油画棒发色相同或者相近色。修细节就是把边缘处理干净,区分前后左右各个物体与物体之间的关系.画发丝的时候可以边修边增加,根据画面效果来做调整。画这部分的时候是很考验耐心的,所以慢慢来没关系,但是千万不要急躁。接下来我用浅灰色的油画棒给灰色猫咪铺色,用粉色和白色的油画棒混色画猫咪爪子上的肉垫,然后用浅褐色油画棒画上条纹再用灰色调和下,为后面的猫毛做准备。然后猫咪这边放一放,我开始画画面的下半部分,就是衣服和植物的部分,先给衣服上的石榴叶上色,画的是宝蓝色,秋天嘛,石榴结果就是在秋天,然后画上右下角的叶子,画法和左边一样,画完依然记得点上若干红色果实。接着用木笔画猫毛,按生长方向来。然后注意猫咪后脑勺上有两株植物,画的时候注意用颜色区分前后关系,细节可以后面用彩铅补上,有部分手臂上的红色果实我是这么处理的,先用木笔刮去涂层,再画上红色,这样可以减少混色造成的起腻。然后画上猫尾这里的剩余植物和果实。接着给石榴果上色以及左下角部分植物的细节刻画。所谓细节刻画就是用彩铅把轮廓修光滑以及区分手臂和植物的前后关系,头发和植物的前后关系,必要时候用美工刀刮去多余涂层,叶脉则用木笔勾出。然后我们把小蜜蜂给画了,表情是挺无奈的样子,先用油画棒打的底,再用黑色、褐色以及蓝色画上小蜜蜂的条纹、眼睛、触角、翅膀等物,还有身后的虚线状飞行轨。画完这些就开始画衣服前这部分的植物,这部分的植物关系有点复杂,所以画的时候我自己都看了好久才理清关系,不过理清之后就好了,所以画到这里千万不要放弃,画法同前。记得给鼻子上的小叶片勾出脉络,再用红色彩铅加上一部分红色,我这边是在用美工刀刮去黏在脸上的油画棒小颗粒,然后再清理下画面,接下来我们画石榴果的细节,用宝蓝色和深红色的彩铅分别画叶子和果实。再把领口和左手完成掉,用红色的彩铅直接画在油画棒涂层上,用以制造领口阴影和区分手指和脸部的前后效果。06.随后要把右半部分猫尾这边的植物完成,画法同前,很多步骤其实就是重复之前的动作,画的时候注意前后关系即可。接下来用灰色彩铅把猫咪的后半部分轮廓修完整,再用黑色彩铅把轮廓加深下,别漏了粉色肉垫,画完后再画上小爪子,填一点点粉色进去。07.然后我们开始丰富画面,用宝蓝色的彩铅看着是459画绿色叶片后面的蓝色小植物,这部分就是看着画,觉得缺了就画叶子进去,叶子画多后记得连起来看上要有生长趋势。接着我们把衣服完成掉,这部分用彩铅上色,用到的色是孔雀蓝和墨绿色,最后效果是和红色的石榴果形成鲜明的颜色对比。这边的黄色背景用的就是土黄色彩铅,把所有白色背景涂满,记得留出作为点缀用的粉色花朵区域,第二只小蜜蜂画法同前一只。接着画秋天的英文字,这边我是用到了黑色褐色彩铅以及深褐色油画棒,画完后觉得颜色过深喧宾夺主,就用美工刀把油画棒颜色刮淡。08.接着再用土黄色彩铅继续,用粉色和黄色彩铅画花瓣和花心以及两三朵成组的桂花。接着把之前没有画的部分逐一补上,比如脖子里的装饰、小部分背景里的植物和绿色的衣服。然后用土黄色彩铅把剩余背景涂满,画上若干桂花,最后给画面做最终调整。最后签名结束。OVER基础插花教程步骤详解,插花作品图片赏析相信生活中很多朋友对于插花这件事情都非常地感兴趣,因为插花这件事不仅仅是充满了成就和乐趣,而且做出来的插画作品精致美观,艺术观赏价值高,所以很多人都十分的希望能够学习如何插花。于是很多人都在学习插花教程。可是关于这种插画教程网上的资讯非常多,那么关于插花教程的具体步骤详解是怎样的呢?下面我们就一起来看看插花教程。更多家居植物养殖网纹草养殖方法大叶伞养殖方法黑心菊养殖方法¤基础插花教程步骤详解插花教程是门非常深奥又简单的学科,其内部有很多插花的做法,那么这些插花的做法步骤是怎样的呢,下面我们就一起来看看吧:1、简易插花教程⑴材料准备:废旧的圣杯或者是花瓶之内的花器、各种花卉植物以及简单和花泥等等。⑵步骤详解:①将花泥放进圣杯当中,因为花泥大小不一可以用剪刀进行修剪,勿使它能够放入花器当中。然后再将它放入清水当中吸足水分,再放入圣杯当中。②将采来的叶子按照计画的一一插入花泥当中,排列成一个太阳类似的圆形形状。③然后将花卉适当的修剪一下,也逐一的插入花泥当中,注意整个花卉和叶子的排列造型问题。知道整个圣杯和花卉全部搭配完成为止。2、随意花卉插花教程⑴、材料准备:各式各样得植物花卉若干,绿色叶子以及剪刀和花瓶等等。⑵、步骤详解:①往花瓶中放入适量的清水,整个可根据花瓶的高度进行适当的控制,一般在3厘米左右。②把花卉和植物叶子一一的进行修剪,尤其是叶子需要剪掉多余的枝叶,花卉也是一样。③将花卉和叶子依照顺序依次的插入花瓶当中,按照从大到小的顺序即可,各色的花卉相互穿插在一起,然后再用花枝进行填充,最后对于插花进行适当的调整就行了。¤插花作品图片赏析其实生活中我们能够看见各式各样的插花作品,毕竟在现代社会生活中,插花的确是非常受人们喜爱和欢迎的一种室内装饰,而且有的插花经过人们创意的设计更能具有别样的风格。比如下面的这款创意插花就是如此。作品选择了一个非常独特的藤质的花器,将颜色鲜艳的鲜花和碧绿的枝叶与深色的花器形成明显的颜色对比,这样看来就非常地显眼。而独特的花器造型更是赋予了作品别具一格的风情。人们的想法层出不穷,自然呈现出来的插画作品可能就十分的不同,下面的这款插花作品更像是一位元美丽的女士的随意制作。花卉随意的的在透明的花器中生长著,又十分闲适的搭靠在花器的周围,那延伸出去的花枝和花卉看上去是那么的随意而没有经过人为的进行构建,就给人一种非常自由非常畅快的观赏感受。相信制作这个插花作品的朋友心情一定非常的愉悦,从作品就能够感受得到。qa总结:插花教程是一门教导人们如何认识插花和制作插花的学科,其中蕴含的知识是非常丰富的。大家要是真的对插花十分的感兴趣,平时闲暇的时候倒是可以看看和了解一下的。(注明:本文为原创文章,未经过允许禁止转载,如发现恶意转载行为必定法律追究。如有喜欢,多多分享。)【你可能感兴趣】风信子花语长寿花L插鸢尾花图片幸福树图片绿萝的作用仙人掌果实仙人球图片蔷薇花图片美人蕉图片龙舌兰图片qa总结:插花教程是一门教导人们如何认识插花和制作插花的学科,其中蕴含的知识是非常丰富的。大家要是真的对插花十分的感兴趣,平时闲暇的时候倒是可以看看和了解一下的。(注明:本文为原创文章,未经过允许禁止转载,如发现恶意转载行为必定法律追究。如有喜欢,多多分享。)【你可能感兴趣】风信子花语长寿花L插鸢尾花图片幸福树图片绿萝的作用仙人掌果实仙人球图片蔷薇花图片美人蕉图片龙舌兰图片如何用彩铅画一幅简单的插画?用彩铅画一幅简单的插画:准备工作,削好彩色铅笔、准备好自动铅笔0.5和0.7各一支、黑色钢笔或中性笔、厚点细腻一点的素描纸或素描绘本、圆规一把。准备待用了。拿出圆规,并套好铅笔笔芯。用圆规在素描纸或绘本上画一个适合自已要求大小的圆形。如果用A4纸大小的纸张建议圆的顶边与纸张边缘预留距离为2cm左右。用自动铅笔在圆内起草稿。照着实物或临本描绘自已想要的图画。注意下笔要轻,以便修改。然后用钢笔或中性用确定的线条,并画好外。线条要流畅、均匀、美观。我喜欢先给牡丹花上淡彩。上色的方法,用枣红或玫红色彩色铅笔从花瓣的根部色深,后慢慢过度到边缘渐渐变淡,使色彩产生渐变效果,立体感强、有层次感。再用深绿、淡绿、湖兰色彩色铅笔上叶子的颜色。靠近主杆的地方色彩偏深一点,每片叶子根部深绿加少许兰色,叶尖部用少许土黄色淡淡描绘。让色彩上生渐变和过渡效果。使画面更具美感。最后就用橡皮擦擦掉余线并点缀修整一下。美丽的牡丹钢笔淡彩画就呈现在您眼前了。END注意事项画草稿时,下笔要轻。太重了难修正也不好擦去错位铅笔线条
2023-09-11 21:39:241