登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 寒假笔记

[复制链接]
发表于 2022-1-17 17:44:38 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 变量进阶与点阵
开始时间: 2022-01-17
结束时间: 2022-01-17
变量可以分为局部变量与全局变量,一般情况下能用局部变量不用全局变量。
全局变量:一般用在void main前面对变量进行赋值在整个代码中都能使用
局部变量;在新建的函数中使用并且只能在该函数中使用。
(局部变量的优点:使程序可读性增加,减少内存占用)
静态变量:会随着程序的运行从而使初始值发生改变,初始值会变为运行完之后的那个值。(全局变量均为静态变量,局部变量加上static后也会变为静态变量)
动态变量:不会随着程序的改变而改变初始值在再次运行时又会变成原来定义的初始值。
点阵:使用点阵显示一个♥(与数码管基本同理但动态还不是很熟悉感觉有点难)
#include<reg52.h>

sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;


void main()
{
  ENLED=0;
        ADDR3=0;
        TMOD=0x01;
        TH0=0xFC;
        TL0=0x67;
        TR0=1;
        EA=1;
        TF0=1;
        while(1);
}
void Interrupt () interrupt 1
{
        static unsigned char i=0;
  TH0=0xFC;
        TL0=0x67;
        P0=0xFF;
        switch(i)
        {
                case 0:ADDR0=0;ADDR1=0;ADDR2=00=0x00;i++;break;
                case 1:ADDR0=0;ADDR1=0;ADDR2=10=0x00;i++;break;
                case 2:ADDR0=0;ADDR1=1;ADDR2=00=0x00;i++;break;
                case 3:ADDR0=0;ADDR1=1;ADDR2=10=0x00;i++;break;
                case 4:ADDR0=1;ADDR1=0;ADDR2=00=0x00;i++;break;
                case 5:ADDR0=1;ADDR1=0;ADDR2=10=0x00;i++;break;
                case 6:ADDR0=1;ADDR1=1;ADDR2=00=0x00;i++;break;
                case 7:ADDR0=1;ADDR1=1;ADDR2=10=0x00;i=0;break;
                default:break;
        }
       
}

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表