神农鼎 发表于 2024-2-23 08:46:41





神农鼎 发表于 2024-2-23 08:48:27

用普通的 SIP4 插座也可以 硬件USB直接下载




接电脑的 USB-TypeC头====接USB型MCU的普通插座

冷月烟 发表于 2024-2-23 08:57:16

确实简洁啊,基本没啥东西

ly1350 发表于 2024-2-23 09:56:56

冷月烟 发表于 2024-2-23 08:57
确实简洁啊,基本没啥东西

确实,但入门学习还是蛮有用的。

ly1350 发表于 2024-2-23 15:12:54

测试程序:


显示效果:


ly1350 发表于 2024-2-23 15:13:38

这回的显示很好了,达到预想效果

ly1350 发表于 2024-2-23 20:11:50

入门实验:点灯!
用定时器0实现流水灯。

#define uchar unsigned char
#define uint unsigned int

char *USER_STCISPCMD = "@STCISP#";                                     //不停电自动ISP下载命令
uchar count=0,i=0;

void Led_Init();
void Timer0_Init(void);
void main()
{
       
        Led_Init();
        Timer0_Init();
   
    while(1)
        {
          

          switch(i)
          {
               case 0:                                //点亮第一位的A段
                          P33=0;
                          P20=1;
                          break;
               case 1:                                //点亮第二位的A段
                          P34=0;
                          P20=1;
                          break;
               case 2:                                //点亮第三位的A段
                          P35=0;
                          P20=1;
                          break;
         case 3:                                //点亮第四位的A段
                          P36=0;
                          P20=1;
                          break;
             case 4:                                //点亮第四位的B段
                          P36=0;
                          P21=1;
                          break;
         case 5:                                //点亮第四位的C段
                          P36=0;
                          P22=1;
                          break;
               case 6:                                //点亮第四位的D段
                          P36=0;
                          P23=1;
                          break;
               case 7:                                //点亮第三位的D段
                          P35=0;
                          P23=1;
                          break;
         case 8:                                //点亮第二位的D段
                          P34=0;
                          P23=1;
                          break;
               case 9:                                //点亮第一位的D段
                          P33=0;
                          P23=1;
                          break;
               case 10:                                //点亮第一位的E段
                          P33=0;
                          P24=1;
                          break;
               case 11:                                //点亮第一位的F段
                          P33=0;
                          P24=1;
                          break;
             default : break;
          }

        }
}

void Led_Init()
{
        P2M0 |= 0x7f; P2M1 &= ~0x7f;       //设置P2.0-P2.6为推挽输出       
        P3M0 |= 0xf8; P3M1 &= ~0xf8;   //设置P3.3-P3.7为推挽输出
        P3PU &= ~0xf8;                             //设置使用P3.3-P3.7的内部上拉电阻
                                     
        P33=1;                                                          //DG1
        P34=1;                                                          //DG2
        P35=1;                                                          //DG3
        P36=1;                                                          //DG4

        P37=0;                                                          //Pd

        P20=0;                                                          //段A
        P21=0;                                                          //段B
        P22=0;                                                          //段C
        P23=0;                                                          //段D
        P24=0;                                                          //段E
        P25=0;                                                          //段F
        P26=0;                                                          //段G
}


void Timer0_Init(void)                //10毫秒@24.000MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xE0;                                //设置定时初始值
        TH0 = 0xB1;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //开t0中断
        EA = 1 ;                                //开总中断
       
}


void Timer0_Isr() interrupt 1
{

       
        if (count<=10) count++;
        else
                {
                        count=0;
                        if (i<11) i++;
                        else i=0;
                        Led_Init();
               
                        }       
}       



ly1350 发表于 2024-2-23 20:14:33

可惜不会发视频{:4_167:}

ly1350 发表于 2024-2-23 20:18:25

本帖最后由 ly1350 于 2024-2-23 20:23 编辑




就是数码管的最外圈依次点亮,运行效果有点像“贪吃蛇”。

神农鼎 发表于 2024-2-23 21:14:51

ly1350 发表于 2024-2-23 20:14
可惜不会发视频


页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
查看完整版本: 最简陋的8H8K64U学习板!只用5个外围元件!