单片机80C51程序设计

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-03
80C51单片机编程

//用定时器T0的中断控制P0口8位LED循环闪烁
#include // 包含51单片机寄存器定义的头文件
#include
unsigned int i;

/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{

i=0;
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-50000)/256; //定时器T0的定时100ms高位初值
TL0=(65536-50000)%256; //定时器T0的低位初值
TR0=1; //启动定时器T0
unsigned char LED;
LED = 0xfe;
P0 = LED;
while(1);//无限循环等待中断

}
/**************************************************************
函数功能:定时器T0的中断服务程序
**************************************************************/
void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
//其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器
{

i=i+1;
if(i==10){
i=0;
LED = _crol_(LED,1);//循环左移1位,点亮下一个LED
P0 = LED;
}
TH0=(65536-50000)/256; //定时器T0的高8位重新赋初值
TL0=(65536-50000)%256; //定时器T0的高8位重新赋初值
}

你的硬件都没要求。。。。,用什么样的数码管?共阴,共阳。 其他还有什么要求?有要求发出来,这样 才好把程序搞给你呀!

如果是高电平灯亮的话,将二进制数据00000001的1依次左移3次然后再右移3次即可实现上述的效果;如果是低电平亮的话,将二进制数据11111110的0依次左移3次然后再右移3次即可实现上述的效果。

#include<reg52.h>
unsigned int i;
unsigned int a;
a=0x80;
void main()
{
while(1){
P1=0x7f;
for(i=0;a<=10000;i++)\\延时
{};
a=a>>1; \\左移1位
P1=~a; \\例如01000000取反后10111111,因为低电平点亮。
if(a==0x10) \\到P1.4返回到P1.0
a=0x80;
}
}

楼上给的是定时器延时。
我给你的是软件延时。

我这里有八个灯的,途给你吧.你稍微修改一下就行了
. #include<reg51.h>
#include<intrins.h>
#define LED P2
sfr WDT = 0xa6;
void delay(unsigned long count) ;
void main(void)
{ unsigned int ver_led;
unsigned int i ;
TMOD = 0x02;
IE = 0x82;
TH0 = 6;
TL0 = 6;
TCON = 0x10;
WDT = 0x1e;
WDT = 0xe1;
ver_led = 0xfe;
LED = ver_led;
delay(20000);
while(1)
{ for(i = 0;i < 7; i ++)
{ ver_led = _irol_(ver_led,1) | 0x01;
LED = ver_led;
delay(20000);
}
for(i = 0;i < 7; i ++)
{ ver_led = _iror_(ver_led,1) | 0x80;
LED = ver_led;
delay(20000);

}
}
}
void delay(unsigned long count)
{ unsigned int i;
unsigned int j;
for(i = 0;i < count;i ++)
for(j = 0;j < 60;j ++);
}
void my_t0(void) interrupt 1
{ TF0 = 0;
WDT = 0x1e;
WDT = 0xe1;
}

  • 单片机80C51程序设计,请大神帮忙!
    答:include"REG52.h"define TRUE 1 define FALSE 0 define uchar unsigned char define uint unsigned int define th0 0x3c define tl0 0xb0 //50ms at 12MHz Fosc define LED P0 sbit K1=P1^0;uchar LED_Status=0;bit KeyValidFlag;void Timer0()interrupt 1 { TL0=tl0;TH0=th0;TR0=0...
  • (80C51单片机)设计4×4键盘及8位数码管显示构成的电子密码锁.的C语 ...
    答:4*4矩阵键盘检测程序(新手用),本程序用于检测4*4矩阵按键,先检测是否有按 键按下,如果有按键按下,由P1口读出相应的编码值,由P0经两片74HC573输出给 8位数码管,P2^0位选,P2^1段选,P1接4*4矩阵按键 include <reg52.h> include<intrins.h> //头文件 define uchar unsigned char /...
  • 80c51单片机交通灯程序
    答:ORG 1000H L:JNB P3.0,LP3 JNB P3.1,LP2 ;判断p3.1,p3.0口 ;如果P3.0为1的话,正常运行交通灯 ;如果P3.1为1的话,正常运行交通灯 ;如果P3.1为0的话,依次点亮灯 ;如果P3.0为0的话,停止交通灯,只有黄灯闪烁 ;正常运行交通灯 LP1:MOV P1,#61H CLR P3.2 CLR P3....
  • 求助:关于80C51单片机简易计算器设计的程序,要求是汇编语言。谢谢哈...
    答:;散转程序,判断按下的是哪个键 S1:CJNE A,#10,S2 ;不是"+"键,跳到S2 LJMP FUN ;是"+"键,跳到FUN S2:CJNE A,#11,S3 ;不是"-"键,跳到S3 LJMP FUN ;是"-"键,跳到FUN S3:CJNE A,#12,S4 ; 不是"*"键,跳到S4 LJMP FUN ; 是"*"键,跳到FUN S4:CJNE ...
  • 求80C51单片机的程序
    答:请参考如下程序:include<absacc.h> include<reg52.h> include<intrins.h> define uint unsigned int define uchar unsigned char define led RD define key_rec T1 sbit BUZZER=P3^7;//发声音口 uchar code T0_H[16]=;uchar code T0_L[16]=;uchar code music[32]=;uchar code music_L[32...
  • 求单片机80c51交通灯程序
    答:我编写了一个:P1.0—P1.2分别为南北方向的红,黄,绿灯; P1.3——P1.5为东西方向的红,黄,绿灯;共阴极数码管的a,b,c,d,e,f,g,dp分别接P0.0-P0.7;数码管V0-V2分别接P2.0——P2.2(V0为百位,V1为10位,V2为个位);南北为主干道,能行时间180秒,黄灯亮3秒,东西...
  • 急求,单片机80C51上有8个等。编写一个程序能让灯跑起来,
    答:LED灯的一端接P1口的各各引脚,另一端接地。同时在P1口的每个管脚上加1K的上拉电阻,电阻另一端连接至+5V即可 ORG 0000H AJMP START ORG 0030H START:MOV SP,#07H MOV P1,#00H MOV R0,#08H MOV A,#80H LOOP: CLR C MOV P1,A ACALL DELAY RRC A DJNZ R0,LOOP MOV R0,#08H MOV...
  • 找有关单片机设计的音乐门玲程序解析(80C51)
    答:程序功能:模拟简易门铃;且有关闭门铃功能。当按下TX-1C上的S2键后,蜂鸣器会发出十次短暂的“嘟嘟”声作为呼叫。S3用于关闭或者打开门铃。当门铃处于关闭时,按下S2不会有呼叫效果。/ include<reg52.h> define uchar unsigned char uchar k,ok=1;//默认开机后,门铃开。unsigned int j;sbit s2=...
  • 80c51单片机120秒延时程序怎么编写
    答:用定时器就可以了,很简单的 这是我的60s倒计时程序 include"reg51.h"char i,j,m,y;unsigned char count=0;unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit p34=P3^4;sbit p35=P3^5;sbit warning=P3^7;void delay(){ TH0=0xd8;TL0=0xf0;TR0...
  • 用单片机80c51或80c52汇编语言设计时间计时器的硬件及相关软件_百度知 ...
    答:;实用单片机电子钟的制作 ;主程序(MAIN),如下:ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0300H MAIN:mov 20h,#00h MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV IP,#02H ;IP,IE初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器工作方式?MOV TL0,#0B0H MOV TH0,#3CH...