STM32/51单片机编程入门(点亮LED)

一.安装并熟悉Proteus 电路仿真软件,完成一个C51程序设计和仿真。

创建一个仿真

编写代码并带入hex文件

#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
   
sbit diy=P2^0;
sbit die=P2^1;
 
u8 dat=0,shu=0;
bit biao=1;
u8 code weil[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
u8 a=30,b=30,c=5,d=5;
void delay(u16 i){ u16 j,l;
     for(j=0;j<i;j++){
         for(l=0;l<120;l++);
                      }
}
 
void smg(u8 dat){ u8 a,b;       //数码管显示函数
     a=dat%100/10;              //将dat数据拆分为个位,十位
     b=dat%100%10/1;
     diy=0;                      //diy    第一位数码管为0 为亮
     die=1;                      //die 第二位数码管为1 不亮
     P1=~weil[a];              //两位数码管经过很快速度的切换显示,形成计时
     delay(10);
     diy=1;
     die=0;
     P1=~weil[b];
     delay(10);          //消影,消除数码管残影
     P1=0x00;
                }
 
void init(){          //定时器
     TMOD&=0X0F;
     TMOD|=0X01;      //使用定时器T0的模式1
    TH0 = 0x0DC;
      TL0 = 0x00;      //设置定时时间10毫秒
    
     TR0=1;              //启动定时器T0
     ET0=1;              //定时器中断允许
     EA=1;             //总中断
     SCON=0X50;         //对串口控制寄存器进行赋值
           }
 
void shi(){        u8 j,l;                   //00011110  北绿    11101111北黄
                                 //11110011  东绿 11111101东黄
          if(dat<30){
         

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值