用51单片机设计3位led数码显示管作秒表00.0-99.0求设计电路与c语言程序 单片机编程语言一般有哪几种

作者&投稿:永便 (若有异议请与网页底部的电邮联系)
#include "STC12C54.H"
#define uchar unsigned char
#define uint unsigned int
#define dataport P1//P1直接驱动数码管的8个阳极
sbit wei1=P3^3;//再有三个管脚接3个三极管驱动数码管的阴极
sbit wei2=P3^4;

sbit wei3=P3^5;
uint a=0;//中断次数计数,一次50ms,20次为1 秒
//共阴数码管七段码
uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//延时子程序
void delay1ms(uint t)
{

uint i,j,k;
for(i=t;i>0;i--)
for(j=15;j>0;j--)
for(k=27;k>0;k--);
}
//显示子程序
void display(uint n)
{
uchar a1,a2,a3;
a1=n/100%10;
a2=n/10%10;
a3=n%10;
wei1=1;
dataport=TABLE[a1];
delay1ms(1);
wei1=0;
dataport=0x80|TABLE[a2];//这里多个小数点
delay1ms(1);

wei3=1;
dataport=TABLE[a3];

delay1ms(1);
wei3=0;
}
void init(void)
{
TMOD=0X01;
TH0=(655536-50000)/256;//定时50ms
TL0=(655536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1M0=0;
P1M1=0xff;//P1口设为推挽输出,驱动能力强
P3M0=0;
P3M1=0x38;//P3.3P3.4 P3.5口设为推挽输出
}
void main(void)//主程序
{
init();//初始状态设定
while(1)
{
display(a/2);//显示计数值,以十分之一秒为单位
}
}
void timer0(void)interrupt 1//中断子程序
{
TH0=(655536-50000)/256;
TL0=(655536-50000)%256;
a++;
if(a==1980)a=0;//1980次是99秒
}

C语言与单片机C语言的区别 急求~

单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。具体体现在:
1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法 如C51扩展的 data xdata bit sbit 一类的,还有一些中断程序写法 void int() interrput 1 一类的。
2、C是一门语言,由对应平台的编译器编译成对应平台汇编的程序,各平台的汇编不一样,当然编译器也不一样 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的编译器 。具体区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。
3、单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。
C51本质就是C,是为在单片机上使用C而出来的,如果C不牢固,还是多掌握一点C再学C51,不过新增的知识也不少,而且基本上跟C无关。
4、C只是一种高级语言。它除具有一般高级语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使之方便于在 写语句的时候,直接直观的编写。这样就差不多是单片机C语言。
C语言的特性差不多都可以用于单片机C语言,因为它们的编译机理都是一样的。

扩展资料:
C语言:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
单片机的C语言:
单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构,设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。
51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用
参考资料:
C语言-百度百科
单片机C语言-百度百科

单片机编程语言很多,大致分成三类:机器语言、汇编语言、高级语言。机器语言由于繁琐容易出错,大部分用户已经不再便用。
1.单片机的汇编语言
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少,程序执行效率高,由于它一条指令就对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。但是不同的类型的单片机,其汇编语言可能有点差异,所以不易移植,因为他们的指令系统是有区别的。但懂得汇编语言可帮助了解影响川可语言效率的特殊规定。例如,懂得汇编语言指令就可以便用在片内ram作变量的优势,因为片外变量需要几条指令才能设署累加器和数据指针进行存取。同样的,当要求便用浮点数和启用函数时也只有具备汇编编程经验才能避免生成庞大的、效率低的程序,对于这方面的编程,没有汇编语言是做不到的。
2.单片机的C语言
单片机的C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言具有功能丰富的库函数,运算谏磨快,编译效率高,有良好的可移植性,而且可以实现直接对系统硬件的控制。此外,C语言程序具有完整的程序模块结构,从而为软件开发中栗用模块化程序设计方法提供了有力的保障。与汇编相比,有如下优点:
对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,至于寄存器分配、不同存储器的寻址及数据类型等细节均由编译器管理。程序有规范的结构,可分为不同的函数。这种方式可便程序结构化,将可变的选择与特殊操作组合在一起,改善了程序的可读性。
编程及程序调试时间显著缩短,从而提高效率。提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。
功能强而有弹性,提供的库包含许多标准子程序,具有较强的数据处理能力,能将已编好程序容易的植入新程序,因为它具有方便的模块化编程技术。
单片机C语言作为一种非常方便的语言而得到广泛的支持,(语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片翻U均不同较快地移植过来。
用单片机c语言进行程序设计,已成为单片机软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。

拓展资料
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机”的称呼。

51单片机多功能LED点阵显示数字时钟
答:数字时钟 这段程序是在PRTUES上完全好使 你可以根据 程序自己在PROTUES上画图 include<reg51.h> define uint unsigned int char code tab[]=;char code table[]=;sbit duan=P2^5;sbit wei=P2^6;sbit button1=P1^0;sbit button2=P1^1;sbit button3=P1^2;sbit button4=P1^3;sbit button5=...

keil51单片机数码管滚的显示
答:3.原理图(protues仿真图)4.设计方法 在多个数码管的显示中点亮数码管需要 位码和段码共同作用才能点亮 位码(低电平有效):表示要点亮的数码管的位置。断码(上面讲过了):就是要点亮哪一段数码管 举例说明:如果要在上面的六个数码管中点亮第一个数码管,且让它显示“1”,...

51单片机控制LED汇编显示程序
答:程序思想如下 可以想象成一个整数000每次加1后显示一次知道999后溢出跳回起点继续,程序如下 ORG 0000H AJMP START START: MOV 30H,#00H ;数码管显示初值 MOV 31H,#00H MOV 40H,#00H ;显示增量 MOV 41H,#01H STL1: ACALL LED ;LED显示 ACALL DELAY0.5S ACALL BCDADD MOV A,30H ANL ...

51单片机中,如何使用3个按键,分别控制3个LED亮灭?功能:上电灯灭。1...
答:sbit LED1 = P2^0;sbit LED2 = P2^1;sbit LED3 = P2^2;/***///ÑÓʱº¯Êý///***/void Delay(UINT16 ui16Dly){UINT16 i,j;for (i = ui16Dly; i > 0; i--); for (j = 110; j > 0; j--...

51单片机,数码管显示
答:数码管动态扫描”(扫描太快,人眼分不清,以至于人眼的错觉让我们感到数码管同时被点亮)楼下的说法也不能这么说吧,毕竟51系列高电平输出能力很弱,低电平也仅能点亮LED,所以常见输出低电平才灯亮的接法,而AVR芯片的高低驱动能力都很强,甚至能推动8字数码管的公共极,怎么接都没问题。

汇编51单片机三个LED交替闪烁
答:ORG 0000H AJMP MAIN ORG 000BH;TO Time interrupt lJMP T0INT ORG 001BH;T1 Count interrupt LJMP T1CNT ORG 030H MAIN:MOV TMOD,#61H;T1 count at MOD 2,T0 time int at MOD 1 MOV TL0,#0B0H;66536-50000=3CB0H 50000us=50ms=0.05s MOV TH0,#3CH SETB ET0;T0 interrupt ...

80c51单片机驱动LED显示。。。急急急
答:3.系统板上硬件连线 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,……,P0.7/AD7与h相连。4.程序设计内容 (1.LED数码显示原理 七...

51单片机如何控制LED数码管循环左移?
答:51单片机数码管循环左移是指将一个多位数的二进制数据在二进制数码管中进行左移操作,从而实现数字的循环移位。具体来说,可以按照以下几个步骤实现:1定义一个变量存储待移位的数值,并将其转换为二进制数形式。2将二进制数码管的对应端口输出全部清零。3利用位运算符 << 将数值向左移动一位,并将...

51单片机数码管如何依次点亮?
答:51单片机数码管依次点亮:选择数码管操作称为位选,根据自己的开发板原理图找到位选对应的管脚,以共阴极为例。要在编程时执行选中操作,只要给对应管脚低电平即可。段选同样。如果每个单独连接占用管脚太多,很浪费硬件资源,所以采用多位串联控制。数码管通常有两种不同的接法,共阴极和共阳极,共阴极顾...

急!单片机频率计c语言程序,3位8段数码管显示,显示范围从0.01~9.99...
答:常用51单片机频率计有两种方法,一种方法,定时计脉冲个数,如定时100ms,计数器计值是55,则频率为55x10=550hz,另外一种方法,计单个脉冲的周期,可用外部中断,也可不用外部中断,下降沿到来时开定时器,上升沿或另外一个下降沿到来时关闭定时器,读出定时器的值,若脉冲宽度太宽,定时器可能会溢出...