
单片机
The_RedMaple
这个作者很懒,什么都没留下…
展开
-
单片机实验13:用热敏电阻和ADC实现测量温度
实验中使用的芯片为XPT2046,点击了解XPT2046实验源代码:XPT2046.h#include <reg52.h> #include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit DIN = P3^4; sbit ADCS = P3^5;sbit DCLK = P3^6;sbit DOUT = P3^7; sbit led2 = P2^原创 2021-02-05 12:10:15 · 3605 阅读 · 1 评论 -
单片机实验12:ADC实现电压测量
ADC实现电压测量,XPT2046芯片可测电压范围为 0 ~ 6V,分辨率为4095单片机晶振为11.0592实验源代码:XPT2046.h#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit DIN = P3^4; sbit ADCS = P3^5;sbit DCLK = P3^6;sbit DOUT = P3^原创 2021-01-28 20:01:30 · 8761 阅读 · 0 评论 -
单片机实验11:ADC实现电位器
ADC模拟信号转换为数字信号,该实验使用的芯片信号为STC89C52,A/D芯片为XPT2046。了解XPT2046单片机晶振为11.0592实验源代码:XPT2046.h#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit DIN = P3^4; sbit ADCS = P3^5;sbit DCLK = P3^6原创 2021-01-28 14:32:39 · 3444 阅读 · 2 评论 -
单片机之XPT2046
XPT2046是一种可以做触摸(压力)感应,热感应,光感应,烟雾感应等的对模拟信号转换成数字信号的芯片。芯片模型图控制寄存器模式选择A2—A1— A0模式0 0 1电位器模式0 1 1电位器模式0 1 0光敏电阻模式1 0 1热敏电阻模式1 1 0外部信号检测模式周期转换...原创 2021-01-28 12:07:26 · 6434 阅读 · 1 评论 -
单片机实验10:矩阵按键控制数码管显示
矩阵按键控制数码管显示矩阵按键和独立按键很不一样,独立按键一段直接与I/O口连接,因此原本为高电平,另一端接地,因此只要检测I/O口是否为低电平就可以检测按键是否被按下。但是矩阵按键两端同时连接I/O口,因此检测较为复杂。原理如下:图中S16按键同时连接P10和P14,因此检测的时候只要先人为给P10一个高电平,P14一个低电平,之后再重复检测P10是否变为低电平就可以检测到S16是否被按下。其他按键原理相同,I/O口高低电平位置可以互换,但是要保证一个是高一个是低。实验源代码:晶振11.0原创 2021-01-25 12:49:26 · 25050 阅读 · 2 评论 -
单片机实验9:独立按键
使用独立按键来控制数码管显示数字第一颗按键,计数加1第二颗按键,计数减1第三颗按键,计数清零第四颗按键,自动计数#include <reg52.h>#define uchar unsigned char #define uint unsigned intsbit dlkey1 = P3^1; //独立按键位控制sbit dlkey2 = P3^0;sbit dlkey3 = P3^2;sbit dlkey4 = P3^3;sbit led2 = P2^2; /原创 2021-01-22 19:07:35 · 1902 阅读 · 1 评论 -
单片机实验8:数码管倒计时led闪烁和蜂鸣器作响
数码管倒计时led闪烁和蜂鸣器作响实验单片机晶振为11.0592#include <reg52.h>#define uint unsigned int#define uchar unsigned charuchar num = 0;sbit led0 = P2^0;sbit led2 = P2^2;sbit led3 = P2^3;sbit led4 = P2^4;sbit beep = P1^5;uchar code duanxuan[] = {0x3f,0x06原创 2020-12-22 15:23:16 · 8809 阅读 · 4 评论 -
单片机实验7:定时器控制灯泡的亮与灭
定时器控制灯泡的亮与灭,亮时蜂鸣器发声实验晶振11.0592,灯泡亮灭各1s#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar num; //全局变量sbit led = P2^0; //led灯sbit beep = P1^5; //蜂鸣器void delay(int i) //延时,用于控制蜂鸣器的音调{ while(i--);}void ma原创 2020-12-21 21:13:19 · 3519 阅读 · 1 评论 -
单片机之上拉电阻
如图可见,图中数码管由P2进行段选,由P0进行位选这种接法操作方便,而且较为独立,但是缺点是硬件电路复制,成本较高回到正题,数码管两端都用I/O口直接连接,但是我们知道发光二极管要点亮的电流最小大概在5mA左右,但是I/O口能支持的电流只有1mA,因此就算两边都给电流,数码管也不会亮,但是给了一个5V(图片只显示出一半)的电压再加上一个上拉电阻,就可以形成压差,从而形成电流流过数码管,使之发光。...原创 2020-12-20 22:08:03 · 2301 阅读 · 3 评论 -
单片机实验6:蜂鸣器
蜂鸣器#include <reg52.h>sbit Beep = P1^5;void fp(int x){ while(x--);}void main(){ int i=1,m=0; while(1) { fp(i); Beep = ~Beep; m = (m+1)%1000; if(m==0) { i=i+10; } }}这里需要注意的是蜂鸣器的工作原理大致原理如图,线圈通电后,产生电磁感应形成磁场从而吸引铁片,铁片来回抖原创 2020-12-20 20:26:58 · 1262 阅读 · 0 评论 -
单片机实验5:流水灯模拟二进制加法
流水灯模拟二进制加法代码:晶振为11.0592,模拟时间间隔约为0.5s#include <reg52.h> void delay_xms(int x){ int i,m; for(i=110;i>0;i--) for(m=x;m>0;m--);}void main(){ P2 = 0xff; while(1) { P2--; delay_xms(500); }}运行结果...原创 2020-12-20 17:18:30 · 3874 阅读 · 2 评论 -
单片机函数:_crol_和_cror_
_crol_函数_crol_函数功能:将 c 进行b位左位移,并将值以unsigned char类型返回//文档定义unsigned char _crol_ ( unsigned char c, /* character to rotate left */ unsigned char b); /* bit positions to rotate */函数返回类型为unsigned char,函数的两个形参也是unsigned char类型。c 为要被进行 位原创 2020-12-20 15:09:29 · 18481 阅读 · 0 评论 -
单片机实验4:动态显示0-7数字
动态显示0-7数字代码:单片机晶振需要调节为11,只有在这个状态下X*110次循环才能约等于X毫秒#include <reg52.h>#define uchar unsigned charvoid delay_xms(int x){ int i,j; for(i=0;i<x;i++) for(j=0;j<110;j++);}void main(){ uchar code duanxuan[] = {0x3f,0x06,0x5b,0x4f, //0原创 2020-12-17 12:36:33 · 2981 阅读 · 5 评论 -
单片机实验3:利用视觉残留效果动态显示0-7
动态显示0-7数字由于间隔时间过短,看起来是一直显示01234567,其实是轮流出现的,而且想要实现这个效果,消影这一步必不可少#include <reg52.h>#define uchar unsigned charvoid delay_xms(int x){ int i,j; for(i=0;i<x*1;i++) for(j=0;j<10;j++);}void main(){ uchar code duanxuan[] = {0x3f,0x06,原创 2020-12-17 12:24:48 · 868 阅读 · 0 评论 -
单片机实验2:数码管动态显示0-F
数码管动态显示0-F代码:#include <reg52.h>#define uchar unsigned charvoid main(){ uchar code duanxuan[] = {0x3f,0x06,0x5b,0x4f, //0,1,2,3 0x66,0x6d,0x7d,0x07, //4,5,6,7 0x7f,0x6f,0x77,0x7c, //8,9,A,B 0x39,0x5e,0x79,0x71}; //C,原创 2020-12-17 12:18:40 · 9793 阅读 · 6 评论 -
单片机实验1:流水灯
flow_LED灯实验代码#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay(){ uint i,j; for(i=1000;i>0;i--) { for(j=110;j>0;j--); } }void main(){ uchar a = 0Xf8; while(1) { P原创 2020-12-17 12:11:26 · 575 阅读 · 0 评论