这是关于蓝桥杯备赛路上练习的小程序,蓝桥杯的竞赛路上希望大家互相勉励。
祝大家有个好成绩。
以下代码是我利用手头上小红板(JW-51)训练的小程序。
希望大家一同进步。
#include<reg52.h> //利用中断使二极管正向或反向流动
#include"intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
unsigned char code wei[]={0xfe,
0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
bit flag;
void delay(u16 n)
{
u8 i ;
while (n--)
for(i=0;i<125;i++);
}
void main()
{
u8 aa=1;
EA=1;
EX0=1;
IT0=1;
while(1)
{
P1=0xff;
delay(500);
P1=wei[aa-1];
delay(500);
if(flag==0)
{aa++;
if(aa==9)
aa=1;}
else
{aa--;
if(aa==0)
aa=8;}
}
}
void Ex0() interrupt 0
{
EX0=0;
flag=~flag;
EX0=1;
}
#include<reg52.h>//利用中断1使数码管显示1-10
typedef unsigned char u8;
typedef unsigned int u16;
sbit ser=P2^7;
sbit srclk=P2^6;
sbit rclk=P2^5;
unsigned char code smgduan[]={0x3f,
0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code smgwei[]={0xfe,
0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
u8 j;
void DelayMs(u16 n);
void DispSmg();
void send_595(u8 dat);
main()
{
EA=1;
EX1=1;
IT1=1;
while(1)
{
send_595(smgwei[0]);
send_595(smgduan[j]);
rclk=0;
rclk=1;
DelayMs(200);
}
}
void DelayMs(u16 n)
{
u8 i;
while(n--)
for(i=0;i<113;i++);
}
void send_595(u8 dat)
{
u8 i;
for(i=0;i<8;i++)
{
if(dat&0x80)
ser=1;
else
ser=0;
srclk=0;
srclk=1;
dat=dat<<1;
}
}
void Ex1() interrupt 2
{
EX1=0;
j++;
if(j==10)
j=0;
EX1=1;
}
#include <reg52.h>//利用定时器1使LED实现闪烁
#define uchar unsigned char
#define uint unsigned int
uchar Led,Count;
void main()
{
Led = 0x00;
EA = 1;
ET0 = 1;
TMOD = 0x01;
TH0 = (65536-46080)/256;
TL0 = (65536-46080)%256;
TR0 = 1;
while(1)
{
P1 = Led;
}
}
void timer0() interrupt 1
{
TH0 = (65536-46080)/256;
TL0 = (65536-46080)%256;
Count ++;
if(Count == 20)
{
Count = 0;
Led = ~Led;
}
} 共4条
1/1 1 跳转至页
关于蓝桥杯训练小程序(2)中断练习
关键词: 中断 蓝桥 练习
共4条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金
