zoukankan      html  css  js  c++  java
  • 基于tx1c 51单片机中断使用及数码管显示的使用方法

    初学51单片机,中断快把我弄晕了,终于明白点了,怕忘了,贴在这里需要时方便自己找

    锁存器电路

    LED显示器连接电路

    数码表编制方式:共8位从低4位到高4位,显示送高电平,如数字2二进制是0101 1011即16进制为:0x5B

    C语言程序代码如下:

     1 #include <REG52.H>
     2  #define uint unsigned int
     3  #define uchar unsigned char
     4 
     5 sbit dula = P2^6;     //段选
     6 sbit wela = P2^7;     //位选
     7 uchar time,num;        //定时器0计数次数,数码管显示字符
     8 
     9 void init();        //初始函数化定义
    10 void desplay();        //显示函数定义
    11 void delay(uint);    //延时函数定义
    12 
    13 //数字字码表 0-F
    14 uchar code table[]={
    15 0x3f,0x06,0x5b,0x4f,
    16 0x66,0x6d,0x7d,0x07,
    17 0x7f,0x6f,0x77,0x7c,
    18 0x39,0x5e,0x79,0x71};
    19 
    20 //主函数
    21 void main()
    22 {
    23     init();        //初始化
    24     desplay();    //显示
    25 }
    26 
    27 //初始化
    28 void init()
    29 {
    30     TMOD = 1;  //工作方式
    31     TH0  = 0xEE;
    32     TL0  = 0x00;
    33     ET0  = 1;  //打开定时器0中断
    34     EA   = 1;  //打开总中断
    35     TR0  = 1;  //开始计时(数)
    36     num  = 1;
    37 }
    38 //数码管显示
    39 void desplay()
    40 {
    41     wela = 1;
    42     P0   = 0xFE;
    43     wela = 0;
    44     P0   = 0xff;
    45     dula = 1;
    46     P0   = 0x3F;
    47     dula = 0;
    48     while (1)
    49     {
    50         if (time==200)
    51         {
    52             time=0;
    53             dula=1;
    54             P0=table[num];
    55             dula=0;
    56             num++;
    57             if(num==16)
    58                 num=0;
    59             delay(10);
    60         }
    61     }
    62 }
    63 //定时器0中断
    64 void time0() interrupt 1
    65 {
    66     TH0 = 0xEE;
    67     TL0 = 0x00;
    68     time++;
    69 }
    70 //显示延时
    71 void delay(uint x)
    72 {
    73     uchar i;
    74     while (x--)
    75         for (i=0;i<110;i++);
    76 }
  • 相关阅读:
    JDK的KeyTool和KeyStore等加密相关
    关于分布式事务的随笔[待续]
    Netty实例几则
    Disruptor快速入门
    Java获取系统环境信息
    JDK的BIO, NIO, AIO
    四种常用IO模型
    JDK的多线程与并发库
    递归转换为迭代的一种通用方式
    二叉树的java实现
  • 原文地址:https://www.cnblogs.com/lilongjiang/p/1794797.html
Copyright © 2011-2022 走看看