Win10下MDK5,stm32pack的安装以及stm32的简单程序编译教程以及51单片机的仿真

    科技2026-01-26  7

    Win10下MDK5,stm32pack的安装以及stm32的简单程序编译教程

    一、安装流程二、MDK-5.10注册三、stm32的简单程序的编译四、51单片机的仿真

    一、安装流程

    MDK-5.10安装

    1.双击mdk_510.exe,进行安装。这里我们将其安装到D盘,MDK5.10文件夹下,需要设置安装路径。 2.点击"I agree …“和"Next”。 3.选择软件安装路径。 4.填写注册信息。 5.等待安装。 6.软件安装完成之后会自动弹出一个keil的网页和pack Installer窗口。 7.stm32 pack安装在解压缩后的文件夹中双击依次打开以下pack,并完成安装。

    二、MDK-5.10注册

    1.以管理员身份运行的Keil uVision5。 2.点击:File,License Management,调出注册管理界面。 3.关闭杀毒软件。 4.运行光盘MDK5目录下的keygen.exe,设置Target为ARM。 5.拷贝MDK License Management 界面里面的CID号

    6.将CID号粘贴到keygen.exe里面CID栏,点击:Generate,即可获得注册码。 7.拷贝注册码到License Management里面,点击Add LIC即可完成注册。

    三、stm32的简单程序的编译

    (1)建立一个工程1.打开Keil uVision5,找到File,然后点击New uVision Project (2)选择需要使用的stm32芯片

    (3)对Run-Time Environment进行设置,设置完成后,点击OK,这样一个工程就建立完成

    四、51单片机的仿真

    1.原理图:放置芯片和元件,之后开始放置元件,画总线,放置电源,连接元件

    2.程序

    (1)建立项目,首先打开Keil uVision,点击Project,找到New uVision Project

    (2)选择项目需要使用的芯片

    (3)代码

    ///************************* s1:Äϱ± ºì ¶«Î÷ ÂÌ s2:Äϱ± ºì ¶«Î÷ »Æ s3:Äϱ± ÂÌ ¶«Î÷ ºì s4:Äϱ± »Æ ¶«Î÷ ºì *************************/ #include<reg52.h> typedef unsigned char uchar; typedef unsigned int uint; #define count 50000 #define TH_0 (65536-count)/256 #define TL_0 (65536-count)%256 sbit ew_led_r=P3^0; sbit ew_led_y=P3^1; sbit ew_led_g=P3^2; sbit ns_led_r=P3^3; sbit ns_led_y=P3^4; sbit ns_led_g=P3^5; sbit bit_0=P2^0; sbit bit_1=P2^1; uchar code duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar sec=30; uchar flag=1; void delay(uint iii) { while(iii--); } void display() { if(flag==1||flag==2)//״̬1ºÍ״̬2£¬¶«Î÷±ÈÄϱ±ÉÙ2Ãë { bit_0=0;bit_1=1; P0=duanxuan[sec%10]; delay(100);P0=0x00; if(sec>2) { P1=duanxuan[(sec-2)%10]; delay(200);P1=0x00; } else { P1=duanxuan[sec%10]; delay(200);P1=0x00; } bit_0=1;bit_1=0; P0=duanxuan[sec/10]; delay(100);P0=0x00; if(sec>2) { P1=duanxuan[(sec-2)/10]; delay(200);P1=0x00; } else { P1=duanxuan[sec/10]; delay(200);P1=0x00; } } else //״̬3ºÍ״̬4£¬Äϱ±±È¶«Î÷ÉÙ2Ãë { bit_0=0;bit_1=1; P1=duanxuan[sec%10]; delay(100);P1=0x00; if(sec>2) { P0=duanxuan[(sec-2)%10]; delay(200);P0=0x00; } else { P0=duanxuan[sec%10]; delay(200);P0=0x00; } bit_0=1;bit_1=0; P1=duanxuan[sec/10]; delay(100);P1=0x00; if(sec>2) { P0=duanxuan[(sec-2)/10]; delay(200);P0=0x00; } else { P0=duanxuan[sec/10]; delay(200);P0=0x00; } } } void timer_init() { TMOD=0x01; EA=1;ET0=1;TR0=1; TH0=TH_0;TL0=TL_0; } void led_display() { if(flag==1) //s1 { ew_led_r=0; ew_led_g=1; ew_led_y=1; ns_led_r=1; ns_led_g=0; ns_led_y=1; } else if(flag==2) //s2 { ew_led_r=0; ew_led_g=1; ew_led_y=1; ns_led_r=1; ns_led_g=1; ns_led_y=0; } else if(flag==3) //s3 { ew_led_r=1; ew_led_g=0; ew_led_y=1; ns_led_r=0; ns_led_g=1; ns_led_y=1; } else if(flag==4) //s4 { ew_led_r=1; ew_led_g=1; ew_led_y=0; ns_led_r=0; ns_led_g=1; ns_led_y=1; } else { flag=1;//Ò»¹²Ëĸö״̬ } } void main() { timer_init(); while(1) { display(); led_display(); } } void timer0() interrupt 1 { static uchar jjj=0; TH0=TH_0;TL0=TL_0; if(++jjj==20) { jjj=0; sec--; if(sec==0) { sec=30; flag++;//s3 } if(sec-2==0) { flag++;//s2 s4 } } }

    (4)建立文件 (5)编译结果 (6)设置工程

    3.仿真结果

    Processed: 0.018, SQL: 9