ohy3686 发表于 2018-3-27 20:50

【教程+笔记+视频+习题】蓝桥杯-单片机特训资料汇总

本帖最后由 ohy3686 于 2019-7-23 13:32 编辑

【教程+笔记+视频+习题】蓝桥杯-单片机特训资料汇总
www.xmf393.com / 广东职院欧浩源【51单片机快速入门笔记】
【01】经典51内核资源全览浓缩图
【02】重要外设特殊功功能寄存器概览
【03】程序开发流程与设计要点
【04】三大外设的开发与可重用代码
【05】应用程序设计入门一例通
【技术专项训练教案(持续更新中...)】
【01】从历年决赛真题中寻找单片机常见的考点
【01+】历届蓝桥杯单片机省赛真题考点归纳
【02】LED的基本控制(138译码器+573锁存器)
【03】数码管的静态显示
【04】数码管的动态显示
【05】独立按键的基本操作
【06】矩阵键盘的基本控制
【07】彻底理解51单片机的中断系统
【08】定时器的基本原理与应用
【09】串行接口的基本原理与应用
【10】串行接口的进阶与实战应用
【11】单总线温度传感器DS18B20的基本操作
【12】实时时钟DS1302的基本操作
【13】基于单片机的电子钟程序设计与调试


【基础技能训练系列教程(永久免费)】

----------------教程目录安排------------------
【01】概述(蓝桥杯大赛考点分析)
【02】LED指示灯的基本控制
【03】蜂鸣器与继电器的基本控制
【04】共阳数码管的静态显示
【05】共阳数码管的动态显示
【06】独立键盘的基本操作与扩展应用
【07】矩阵键盘的扫描原理与基本应用
【08】中断系统与外部中断应用
【09】定时器的基本原理与应用
【10】定时器的进阶综合案例解析
【11】PWM脉宽调制信号的发生与控制
【12】串口通信的基本原理与应用
【13】串口通信进阶应用案例解析
【14】IO扩展技术与存储器映射扩展
【15】基础技能综合实训案例解析
--------------------------------------------------------
1. 21IC公开课平台

2. “小蜜蜂笔记”技术网站


【独家赛前魔鬼训练题(21ic独家特训活动)】
1-第九届蓝桥杯大赛“单片机设计与开发”省赛模拟训练题
    工厂灯光控制系统
2-第九届蓝桥杯大赛“单片机设计与开发”省赛模拟训练题

    花卉生长灯自动控制系统
3-持续更新中......
-----------------------------------------------------------




21ic小喇叭 发表于 2018-5-16 13:44

那么好的内容点赞

lihui567 发表于 2018-5-26 17:17

总结的非常到位,蓝桥杯在学校都没参加过,在这里才听说了

秃子快回家 发表于 2019-1-15 10:54

赞一个

yifeidengdai 发表于 2019-2-23 20:39

mujianwenbushen 发表于 2019-2-28 23:09

PWM脉宽调制信号的视频 里为什么 刚开始的时候 LED 是灭的?是那段代码控制的?

换专业的娃 发表于 2019-3-14 09:13

啊啊啊,真好,过几天就要比赛,心里还是有点虚的,谢谢老师。

电子剑姬 发表于 2019-4-9 20:58

#include<reg52.h>
sbit S4=P3^3;
sbit S5=P3^2;
sbit buzzle=P0^6;
unsigned int miao=0;
unsigned int fen=0;
unsigned int shi=0;
unsigned char smgduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
   0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
   0xbf,0x7f};
void HC138(unsigned int a)
{
switch(a)
{
case 4:P2=(P2&0X1F)|0X80;break;
case 5:P2=(P2&0X1F)|0XA0;break;
case 6:P2=(P2&0X1F)|0XC0;break;
case 7:P2=(P2&0X1F)|0XE0;break;
}
}
void delay(unsigned int t)
{
while(t--);
}
void Initimer0()
{
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void shumaguan(unsigned int b,unsigned int d)
{
HC138(6);
P0=0X01<<b;
HC138(7);
P0=d;
}
void duanxuan()
{
shumaguan(smgduan,7);
delay(500);
shumaguan(smgduan,6);
delay(500);
shumaguan(smgduan,5);
delay(500);
shumaguan(smgduan,4);
delay(500);
shumaguan(smgduan,3);
delay(500);
shumaguan(smgduan,2);
delay(500);
shumaguan(smgduan,1);
delay(500);
shumaguan(smgduan,0);
delay(500);
}
void Key_Scan()
{
if(S4==0)
{
delay(100);
if(S4==0)
{
TR0=~TR0;
}
}
if(S5==0)
{
delay(100);
if(S5==0)
{
miao=0;
fen=0;
shi=0;
}
}
}
void Interrupt() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
miao++;
if(miao==60)
{
fen++;
miao=0;
}
else if(fen==60)
{
shi++;
fen=0;
}
}
void main()
{
/*HC138(5);
P2=0XA0;buzzle=0;*/
Initimer0();
while(1)
{
duanxuan();
Key_Scan();
}
}

楼主,能帮我看一下这个程序哪有问题吗?


思难忘 发表于 2020-4-4 13:06

学习了

指尖废物 发表于 2021-11-6 15:17

电子剑姬 发表于 2019-4-9 20:58
#include
sbit S4=P3^3;
sbit S5=P3^2;


中断服务函数有问题,每一次进入中断服务是50ms,怎么能以miao 来计算呢,用一个中间变量count 当count ==20,miao++,代码如下:
int count;
void Interrupt() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
count ++;
if(count == 20)
{
miao++;
count = 0;
}
if(miao==60)
{
fen++;
miao=0;
}
else if(fen==60)
{
shi++;
fen=0;
}
}

小阿狸 发表于 2022-3-16 16:58

宝藏呀,省赛会考到串口吗?

191684922 发表于 2023-2-17 15:47

赞一个!!!

yqd666666 发表于 2023-3-24 19:10

老师,能把你写的工厂灯光控制系统的代码发我吗???视频里没详细的讲。@ohy3686
页: [1]
查看完整版本: 【教程+笔记+视频+习题】蓝桥杯-单片机特训资料汇总