自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 LCD1602移动显示

引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK。while (*pa) //循环输入方式显示2行信息。/*显示光标移动设置*/LCD_Write_Com(0x0C);/*显示开及光标设置*/LCD_Write_String(2,0,pa);

2024-04-30 11:31:06 480

原创 LCD1602静态显示

引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK。#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义。/*显示光标移动设置*/LCD_Write_Com(0x0C);/*显示开及光标设置*//*显示模式设置*/while(LCD_Check_Busy());

2024-04-27 11:58:42 380

原创 LCD1602动态显示

引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK。#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义。/*显示光标移动设置*/LCD_Write_Com(0x0C);/*显示开及光标设置*//*显示模式设置*/while(LCD_Check_Busy());

2024-03-31 13:42:12 914

原创 方式0控制流水灯循环点亮

/SCON=0000 0000B,使串行口工作于方式0。#include<intrins.h> //包含函数_nop_()定义的头文件。//P1.7引脚输出清0信号,对74LS164清0。//发送完毕,TI被置“1”,需将其清0。//延时一个机器周期,保证清0完成。while(TI==0) //若没有发送完毕,等待。//结束对74LS164的清0。//延时一个机器周期。

2024-02-16 13:27:18 549

原创 数据发送程序

/50ms发送一次检测数据。TMOD=0x20;//TMOD=0010 0000B,定时器T1工作于方式2。SCON=0x40;//SCON=0100 0000B,串口工作方式1。PCON=0x00;//PCON=0000 0000B,波特率9600。#include<reg51.h> //包含单片机寄存器的头文件。i++) //模拟检测数据。//根据规定给定时器T1赋初值。//根据规定给定时器T1赋初值。//流水灯控制码,该数组被定义为全局变量。函数功能:向PC发送一个字节数据。

2024-02-16 13:23:46 300

原创 I/O并行口直接驱动LED显示

(2. 由于显示的数字0-9的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。建立的表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。如图所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表。

2024-02-16 13:21:11 503

原创 数据接收程序

/SCON=1101 0000B,串口工作方式1,允许接收(REN=1)//将接收到的数据送P1口显示。//PCON=0000 0000B,波特率9600。#include<reg51.h> //包含单片机寄存器的头文件。while(RI==0) //只要接收中断标志位RI没有被置"1"//根据规定给定时器T1赋初值。//为了接收下一帧数据,需将RI清0。//等待,直至接收完毕(RI=1)//将接收缓冲器中的数据存于dat。//根据规定给定时器T1赋初值。//定时器T1工作于方式2。

2024-02-15 18:13:41 203

原创 报警产生器

用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;3.  系统板上硬件连线。(1. 信号产生的方法。4.  程序设计内容。

2024-02-15 18:07:47 390

原创 欢度春节,祝福万家。

春节是中华民族最重要的传统节日,它代表着新的开始和希望。在这个特殊的时刻,让我们放下过去的烦恼和忧虑,迎接新的挑战和机遇。让我们珍惜和家人团聚的时光,感受亲情和友情的温暖,共同度过一个温馨、祥和、欢乐的春节。此时此刻,全国上下都在欢庆这个盛大的节日,人们相互拜年、祝愿,共享美食、欢声笑语。让我们一起感受这份浓厚的节日氛围,珍惜这个难得的假期,尽情享受生活带来的美好。值此春节佳节来临之际,新年问候如一道灯光,照亮我们前行的路。在这光芒中,期待与你携手走过新的一年。烟火🎇气照人间喜悦无边举杯🍷庆此年.🎊。

2024-02-09 20:09:22 123

原创 单片机向PC发送数据

/150ms发送一次数据。TMOD=0x20;//TMOD=0010 0000B,定时器T1工作于方式2。SCON=0x40;//SCON=0100 0000B,串口工作方式1。PCON=0x00;//PCON=0000 0000B,波特率9600。#include<reg51.h> //包含单片机寄存器的头文件。i++) //模拟检测数据。//根据规定给定时器T1赋初值。//根据规定给定时器T1赋初值。//流水灯控制码,该数组被定义为全局变量。函数功能:向PC发送一个字节数据。

2024-02-03 17:16:46 520

原创 单片机接收PC发出的数据

/SCON=0101 0000B,串口工作方式1,允许接收(REN=1)//将接收到的数据送P1口显示。//PCON=0000 0000B,波特率9600。#include<reg51.h> //包含单片机寄存器的头文件。while(RI==0) //只要接收中断标志位RI没有被置“1”//为了接收下一帧数据,需将RI清0。//根据规定给定时器T1赋初值。//等待,直至接收完毕(RI=1)//将接收缓冲器中的数据存于dat。//定时器T1工作于方式2。//根据规定给定时器T1赋初值。

2024-02-03 17:13:11 932

原创 用LED数码显示数字5

include<reg51.h> // 包含51单片机寄存器定义的头文件。//P2.0引脚输出低电平,数码显示器接通电源准备点亮。//让P0口输出数字"5"的段码92H。

2024-01-22 20:17:40 509

原创 广告灯(利用取表方式)

把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……(2)利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作.利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。

2024-01-22 20:14:19 415

原创 用LED数码显示器循环显示数字0~9

/前面加关键字code ,可以大大节约单片机的存储空间。//数码管显示0~9的段码表,程序运行中当数组值不发生变化时,#include<reg51.h> // 包含51单片机寄存器定义的头文件。//P2.0引脚输出低电平,数码显示器DS0接通电源工作。P0=Tab[i];//让P0口输出数字的段码92H。while(1) //无限循环。函数功能:延时函数,延时一段时间。

2024-01-19 20:11:51 904

原创 广告灯的左移右移

做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时,P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。3.  系统板上硬件连线。4.  程序设计内容。

2024-01-19 20:07:10 485

原创 多路开关状态指示

对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令来完成;AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。

2024-01-18 21:05:33 604

原创 用LED数码显示器伪静态显示数字1234

include<reg51.h> // 包含51单片机寄存器定义的头文件。void delay(void) //延时函数,延时约0.6毫秒。//P2.0引脚输出低电平,DS0点亮。//P2.1引脚输出低电平,DS1点亮。//P2.2引脚输出低电平,DS2点亮。//P2.3引脚输出低电平,DS3点亮。while(1) //无限循环。

2024-01-16 21:42:05 732

原创 用数码管显示动态检测结果

/即P2=1111 0111B ,P2.3引脚输出低电平,数码显示器DS3接通电源。//即P2=1111 1011B,P2.2引脚输出低电平,数码显示器DS2接通电源。//即P2=1111 1110B,P2.0引脚输出低电平,数码显示器DS0接通电源。//即P2=1111 1101B,P2.1引脚输出低电平,数码显示器DS1接通电源。

2024-01-16 21:39:14 418

原创 数码秒表设计

/每来一次中断,中断次数int_time自加1。//调用秒的显示子程序。if(int_time==20) //够20次中断,即1秒钟进行一次检测结果采样。//启动定时器T0开始运行。//定时器T0中断允许。//重新给计数器T0赋初值。//P2.6引脚输出低电平, DS6点亮。//P2.7引脚输出低电平, DS7点亮。int_time=0;//秒等于60就返回0。int_time=0;

2024-01-15 19:44:39 533

原创 用LED数码管显示计数器T0的计数值

void int0(void) interrupt 0 using 0 //外中断0的中断编号为0。//P2.6引脚输出低电平,DS6点亮。#include<reg51.h> //包含51单片机寄存器定义的头文件。//P2.7引脚输出低电平,DS7点亮。//将S位定义为P3.2引脚。//选择负跳变来触发外中断。

2024-01-15 19:42:08 523

原创 双继电器模拟洗衣机

/ 显示段码值0~9。//分解显示信息,如要显示68,则68/10=6 68%10=8。//分解显示信息,如要显示68,则68/10=6 68%10=8。//分解显示信息,如要显示68,则68/10=6 68%10=8。if((minute==0)&&(second==0))//定时时间到,洗衣机停止转动。

2024-01-13 19:11:31 349

原创 独立按键控制继电器开关

/分别对应相应的数码管点亮,即位码。//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响。//取显示数据,段码。//初始化定时器0,主要用于数码管动态扫描。

2024-01-13 19:11:10 411

原创 静态显示数字“59”

include<reg51.h> //包含51单片机寄存器定义的头文件。//将数字9的段码送P1口。//将数字5的段码送P0口。while(1) //无限循环,防止程序跑飞。

2024-01-12 19:20:41 430

原创 模拟开关灯

单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。4.  程序设计内容。

2024-01-12 19:16:15 652

原创 单个独立按键控制直流电机开关

/ 显示段码值0~9。//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响。//初始化定时器0,主要用于数码管动态扫描。//取显示数据,段码。

2024-01-11 18:34:24 552

原创 独立按键控制直流电机调速

if(count == CYCLE) //反之低电平时间结束后返回高电平。//初始化定时器0,主要用于数码管动态扫描。=0) //如果开启时间是0 保持原来状态。

2024-01-11 18:32:51 428

原创 无软件消抖的独立式键盘输入实验

include<reg51.h> // 包含51单片机寄存器定义的头文件。if(S1==0) //P1.4引脚输出低电平,按键S1被按下。//将LED0位定义为P3.0引脚。//将S1位定义为P1.4引脚。//P3.0引脚取反。//P3.0引脚输出低电平。void main(void) //主函数。

2024-01-10 19:33:48 493

原创 软件消抖的独立式键盘输入实验

include<reg51.h> // 包含51单片机寄存器定义的头文件。if(S1==0) //P1.4引脚输出低电平,按键S1被按下。//将LED0位定义为P3.0引脚。//P3.0引脚取反。//将S1位定义为P1.4引脚。if(S1==0) // 按键S1的确被按下。//延时一段时间再次检测。//P3.0引脚输出低电平。void main(void) //主函数。函数功能:延时约30ms。

2024-01-10 19:31:27 409

原创 闪烁灯设计

可以帮助快速的学习单片机知识,从电路原理图,程序设计,程序框图,C语言程序这几方面去快速的入门,闪烁灯可以更方便的理解。

2024-01-09 20:37:01 463

原创 CPU控制的独立式键盘扫描实验

if(S4==0) //按键S4被按下。//延时20ms再去检测。//按键值初始化为0,什么也不做。if(S1==0) //按键S1被按下。if(S2==0) //按键S2被按下。if(S3==0) //按键S3被按下。=0xf0) //第一次检测到有键按下。#include<reg51.h> //包含51单片机寄存器定义的头文件。

2024-01-09 20:10:12 605

原创 定时器中断控制的独立式键盘扫描实验

/定时器T0赋初值,每计数200次(217微秒)发送一次中断请求。if(S4==0) //按键S4被按下。//延时20ms再去检测。if(S1==0) //按键S1被按下。if(S2==0) //按键S2被按下。if(S3==0) //按键S3被按下。//按键值初始化为0,什么也不做。=0xf0) //第一次检测到有键按下。#include<reg51.h> //包含51单片机寄存器定义的头文件。

2024-01-09 20:07:00 1198

原创 独立式键盘控制的4级变速流水灯

/流水灯流水点亮延时20ms×10=200ms。//流水灯流水点亮延时20ms×50=1000ms。//流水灯流水点亮延时20ms×25=500ms。//流水灯流水点亮延时20ms×5=100ms。//默认流水灯流水点亮延时20ms×3=60ms。if(S1==0) //如果是按键S1按下。if(S2==0) //如果是按键S2按下。if(S3==0) //如果是按键S3按下。if(S4==0) //如果是按键S4按下。=0xf0) //确实有键按下。

2024-01-08 19:37:44 1695

原创 独立式键盘的按键功能扩展:“以一当四“

void delay(void) //因为仅对一个按键扫描,所以延时时间较长约200ms。#include<reg51.h> // 包含51单片机寄存器定义的头文件。//定时器T0赋初值,每200微妙来1次中断请求。//位定义S1为P1.4。//延时20ms,软件消抖。if(S1==0) //如果是按键S1按下。//储存流水灯的流动速度。//使用定时器T0的模式2。//定时器T0中断允许。//定时器T0开始运行。if(S1==0) //如果是按键S1按下。

2024-01-08 19:35:13 416

原创 IIC协议24c02存储花样灯程序(IIC协议程序)

函数原型: bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);函数原型: bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。

2024-01-07 11:18:13 474

原创 IIC协议(EEPROM24c02)

函数原型: bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);// 显示段码值0~F。

2024-01-07 11:17:57 358

原创 独立式键盘控制步进电机实验

switch(keyval) //根据按键值keyval选择待执行的功能。if(S3==0) //按键S3被按下。if(S1==0) //按键S1被按下。if(S2==0) //按键S2被按下。=0xf0) //第一次检测到有键按下。=0xf0) //确实有键按下。//P0口低四位脉冲0011。//P0口低四位脉冲0011。

2024-01-06 19:26:38 616

原创 双步进电机综合控制

/分解显示信息,如要显示68,则68/10=6 68%10=8。}//D相通电,其他相断电。if(times==(20-Speed))//最大值18,所以最小间隔值20-18=2。

2024-01-06 18:48:36 335

原创 步进电机调速原理

/ 显示段码值0~9。}//D相通电,其他相断电。

2024-01-05 20:24:40 422

原创 步进电机综合控制

//D相通电,其他相断电。if(times==(20-Speed))//最大值18,所以最小间隔值20-18=2。//分解显示信息,如要显示68,则68/10=6 68%10=8。

2024-01-05 20:23:11 380

原创 矩阵式键盘按键值的数码管显示实验

/数字0~9的段码。if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”

2024-01-04 19:21:13 1395

智能温控风扇+DS18B20+单片机+程序+仿真

本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统采用51系列单片机AT89C51 单片机作为控制平台对风扇转速进行控制。利用DS18B20数字温度传感器采集实时温度,经单片机处理后通过三极管驱动直流风扇的电机。根据采集的实时温度,实现了风扇的自起自停.可由用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。

2024-01-04

单片机+1602+18B20+DS1302电子时钟源程序

单片机编写的1602+18B20+DS1302电子时钟源程序,按K7按键进入设置状态,按K6按键设置时的数值+,按K5按键设置时的数值-

2023-11-11

单片机-计数器(0-9999)

通过单片机的C语言编写的计数器每秒加1进行计数范围(0—9999)来实现的。

2023-11-11

单片机动态显示的程序与仿真

程序:C语言 仿真:Proteus

2023-10-20

单片机流水灯程序与仿真

程序:C语言 仿真:Proteus

2023-10-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除