10.01 简单的51代码

早上起床,玩了一会。剩下时间看了电影,给自己又放了一天假,我敢肯定没有人比我更加对自己好了。看了什么电影呢,早上看了柯南最新更新的几集,然后写了一会代码,没感觉,不想写,于是泡了包面继续看电视。
昨天看了蝴蝶效应1,2,3,釜山行;今天又看了盗梦空间,,还记得前几天看的源代码,等等,这几部电影比较费脑,看的时候感觉非常乱,但是到了某一个结点的时候,就会有一种上瘾的感觉,欲罢不能。这种feel真的很爽。
看电影是看爽了,今天的代码就写了一点,下面就把写的一些代码贴上把。
//int0中断程序
//设置开一下中断,然后写一个中断函数,然后在主函数里设置一个死循环来等待中断,并自动执行中断子程序
#include "reg51.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit led=P2^0;

void T0Int() interrupt 1
{
    static u16 i=0;
    TH0=0XFC;
    TL0=0X18;
    i++;
    if(i==1000)    //错误2,没有这个相当于led每lms闪烁一次,肉眼看上去led一直是亮的
    {
        led=~led;    
        i=0;
    }   
}

void T0Init()
{
    TMOD|=0X01;   //错误1,对TMOD进行或运算,尽力不要使用赋值来改变其他位的状态
    TH0=0XFC;
    TL0=0X18;
    EA=1;
    ET0=1;
    TR0=1;
}

void main()
{
    T0Init();
    while(1);   
}

第二个:定时器1中断

//和定时器0中断基本一样,只是在这个中断子程序里面实现的功能不一样。
//还有就是要用到不止一个数码管,就需要使用38译码器,来选择数码管
#include "reg51.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void T1Int() interrupt 3
{
    static u16 i=0, n=0;
    TH1=0XFC;
    TL1=0X18;
    i++;
    if(i==1000)
    {
        i=0;
        P0=smg[n++];
        if(n==16)
            n=0;
    }   
}

void T1Init()
{
    TMOD|=0X10;  
    TH1=0XFC;
    TL1=0X18;
    EA=1;
    ET1=1;
    TR1=1;
}

void main()
{
    LSA=0;
    LSB=0;
    LSC=0;
    T1Init();
    while(1);   
}

第三个串口通信还没写:

#include "reg51.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;


u8 smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void Usart() interrupt 4
{
}

void UsartInit()
{

}

void main()
{

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值