没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/89421850/bg1.jpg)
蓝桥杯单片机编程笔记
一、 IO 口编程 .......................................................... 2
二、 数码管动态扫描和定时器 ............................... 3
三、 矩阵键盘 .......................................................... 5
四、 串口通讯和串口中断 ...................................... 6
五、 外部中断的使用 ............................................ 13
六、 实时时钟 DS1302的使用 .............................. 13
七、 PCF8591与 IIC总线的使用 ........................... 15
八、 DS18B20温度芯片的使用 ............................. 21
九、 超声波传感器的使用 .................................... 22
十、 步进电机与直流电机的使用 ......................... 25
十一、 扩展:宏定义编程方法(推荐) ................. 28
十二、 注意事项(常见编程错误) ......................... 28
![](https://csdnimg.cn/release/download_crawler_static/89421850/bg2.jpg)
一、 IO 口编程
IO 编程,该开发板使用了 573 锁存器,通过 P2 口的 5,6,7 位连接 3-8 译码
器,扩展出了 8 个口,其中 4 个口分别连接 4 个 573 锁存器, 这里以LE
D的锁存器来举例:
原理图573:
分析代码:
P2=((P2&0x1f)|0x80) ;
其中0x1f=0001 1111,P2与0x1f进行与运算, 高三
位清零,其余位保持原来状态, 不改变, 即把控制3-8译码器的高三位
留出来:
![](https://csdnimg.cn/release/download_crawler_static/89421850/bg3.jpg)
接着再或上0x80; 容易发现0x80=1000 0000;或运算,
与1或结果为1, 与0或结果不变, 所以或上0x80只需看P2的高三
位,则高三位为100,对应3-8译码器的话,P2^7=1;P2^
6=0;P2^5=0;
所以输出Y4=0;Y4再经过与非运算,看下图示:
则输出Y4C=1; 即LED对应的锁存器的片选信号被选中, 锁存器打
通,接下来就可以对P0口进行操作,操作完之后,
P2=P2&0x1f;P2高三位直接清零,此时 Y4C=0,则把锁存器
锁上了。
类似的方法,数码管、蜂鸣器等都是如此操作,
选中锁存器代码:
P2=((P2&0x1f)| (这里填对应锁存器的位移号) )。
二、 数码管动态扫描和定时器
数码管显示分为段选和位选,
数码管定义和显示函数:
codeunsigned chartab[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char dspbuf[]={10,10,10,10,10,10,10,10};
unsigned char dspcom=0;
void display()
{
// 段选,消隐
![](https://csdnimg.cn/release/download_crawler_static/89421850/bg4.jpg)
P2=((P2&0x1f)|0xe0);
P0=0xff;
P2=P2&0x1f;
// 位选
P2=((P2&0x1f)|0xc0);
P0=(1<<dspcom);
P2=P2&0x1f;
// 段码输入
P2=((P2&0x1f)|0xe0);
P0=tab[dspbuf[dspcom]];
P2=P2&0x1f;
if(++dspcom==8)
dspcom=0;
}
注意:这里 1 左移 dspcom 位,刚开始 dspcom=0,则 1 左移 dspcom 位依旧为 1,
接着 dspcom 每次自增 1,1 对应二进制 0000 0001,即把 1 每次向左移, 每次都比
上一次多移一位,直至 8 位移完,对应 8 个数码管。
定时器配置:
这里只需记住定时器的配置,知道怎么使用就可以了。首先有两个定时器, T0
和 T1,(也有的单片机有 T2),定时器有 4 种工作方式 0,1,2,3;其中最常用的是
方式 1(16 位),其次是方式 2(8 位自动重装,串口通讯中断会用到) 。
定时器需要配置: TMOD |=0x01;配置成使用定时器 0,工作方式为 1;同理使用
定时器 1 工作方式 1:TMOD |=0x10;则同时使用两个定时器且工作方式为 1,那
么可以: TMOD |=0x11;
定时器 1 配置成工作方式 2:TMOD |=0x20;
接着配置 (以定时器 0 举例 ):
TH0=(65535-2000)/256;//配置初值
TL0=(65535-2000)%256;
ET0=1;
TR0=1;// 定时 0 中断
EA =1;//总中断
定时器 1 也是同理的,只不过 0 要改成 1.
接着定时中断函数和优先级:
定时器 0
void isr_timer_0(void) interrupt 1 // 默认中断优先级 1
{
TH0 = (65536-2000)/256;
TL0 = (65536-2000)%256; // 定时器重载
display();
}
定时器 1:
void isr_timer_1(void) interrupt 3 // 默认中断优先级 3
{
![](https://csdnimg.cn/release/download_crawler_static/89421850/bg5.jpg)
TH0 = (65536-2000)/256;
TL0 = (65536-2000)%256; // 定时器重载
display();
}
注意:定时器 0 优先级为 1,定时器 1 为 3,串口中断优先级为 4,总共有 5 个
中断源,后面还会介绍外部中断和串口中断。
数码管动态扫描,显示函数放在定时中断函数里面, 2ms 扫一次是最稳定的!!
三、 矩阵键盘
矩阵键盘需要死记了!这里不再讲独立键盘。
第二种单片机键盘扫描代码 (没有消抖 ):
sfr P4^4=0xC0;
// 键盘定义
sbit r1=P3^0; //4 行
sbit r2=P3^1;
sbit r3=P3^2;
sbit r4=P3^3;
//4 列
sbit c1=P4^4;
sbit c2=P4^2;
sbit c3=P3^5;
sbit c4=P3^4;
// 读取矩阵键盘键值
unsigned char key_scan()
{
unsigned char key_value;
r1=0;
r2=r3=r4=1;
剩余34页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/4c4c0ffdff4e4b2ebd8bcdd494e596d0_qq_43445867.jpg!1)
吻等离子
- 粉丝: 3w+
- 资源: 56
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)