![](https://img-blog.csdnimg.cn/20191110200357129.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
51单片机
对单片机课程的点滴记录(已毕业多年,毕业后没怎么搞相关东西,有问题请参考其他博客,谢谢)
就这样le
这个作者很懒,什么都没留下…
展开
-
51单片机:中断实现按键按一下数码管从00加到99循环(C语言)
51单片机:中断实现按键按一下数码管从00加到99循环(C语言)题目要求:在51单片机上通过C语言编写代码,使用中断,按键按一下数码管上面的数字从00开始加1,实现00——99的循环准备工作:keil建立工程proteus仿真验证代码如下:/**功能:用中断实现开关控制实现每按一次,数码管数字加一,*实现00-99的循环*/#include<reg52.h>...原创 2019-03-22 20:27:52 · 33431 阅读 · 19 评论 -
51单片机数据传送——片外到片内(汇编语言实现)
51单片机:数据传送——片外到片内(汇编语言实现)问题描述:把存储在片外RAM 1000H开始的16个单元(地址为1000H到100FH)内容依次搬移到片内RAM 30H开始的16个单元(地址为30H到3FH)/*外部RAM(1000H~100FH)单元地址内数据搬移到片外RAM(30H~3FH)*/ MOV R7,#10H ;搬移16个数据 MOV R1,#30H...原创 2019-05-06 22:18:08 · 19700 阅读 · 6 评论 -
51单片机:利用两个按键通过中断分别实现数码管上数字自加自减功能(00——99)
51单片机:利用两个按键通过中断分别实现数码管上数字自加自减功能(00——99)功能描述:开关key1控制实现每按一次,数码管数字加1,实现00-99的循环开关key2按键按一下实现数码管减1,实现00-99的循环数码管初始数值为00当数码管数值为00时,按下key2(减1)数码管显示99仿真电路图:代码如下:/*-------------------------------...原创 2019-05-20 21:28:41 · 28411 阅读 · 16 评论 -
51单片机:用ADC0832做模数转换,测量电压大小
51单片机:用ADC0832做模数转换,测量外界电压大小问题要求利用51单片机,外加一个ADC0832模数转换器,设计一个可以实时测量电压的电路。测量电压的范围是0-5V(允许误差),要求测出的电压用数码管实时显示,精确到小数点后两位。代码编写://----------------------------------------------------------// 用...原创 2019-05-12 09:30:23 · 28789 阅读 · 20 评论 -
51单片机:串行口控制寄存器SCON
51单片机:串行口控制寄存器SCON串行口控制寄存器SCON的格式D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI98H位地址9FH9EH9DH9CH9BH9AH99H98HSM0、SM1——串行口的4种工作方式选择位SM0SM1方式功能0...原创 2019-05-31 11:23:40 · 14351 阅读 · 0 评论 -
51单片机:定时器/计数器TMOD设定
定时器/计数器TMOD设定TMOD格式上图为TMOD格式,8位分为两组,高四位控制T1,低四位控制T0TMOD各位的说明GATE0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运行。1:用外中断引脚( INT0或 INT1)上的电平与运行控制位TRx共同来控制定时器/计数器运行。C/T*0:为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行...原创 2019-05-28 21:50:38 · 57195 阅读 · 6 评论 -
51单片机:利用TLC549测量电压,并将测量值显示在LCD上
51单片机:利用TLC549测量电压,并将测量值显示在LCD上之前有段时间做单片机课设,同学在做电压比较器,找我帮忙写个要求,利用TLC549测量电压,并将测量值显示在LCD上,想到之前自己写过TLC549测量电压,并将测量值显示在数码管上,还没用过LCD,便试着写了一下(LCD我学的不好)。代码实现:#include<reg52.h>#include<intrins.h...原创 2019-06-06 16:51:40 · 14215 阅读 · 10 评论 -
51单片机:压控PWM信号发生器设计
51单片机:压控PWM信号发生器设计经过一个学期的学习,初步入门了51单片机。会写了一点小程序,尝试过在板子上面跑自己设计的代码。当看到自己设计的程序结果由仿真变成现实在你眼前时,确实很开心。51系列虽然很老,有点过时了,感觉对于入手学单片机还是可以的。知识是一个积累的过程。像这种已经过时的或者说不太主流的东西,我一开始接触时也觉得没啥必要啊,还不如学STM32,后来老师告诉我们,高楼是一层一...原创 2019-06-08 10:29:34 · 4092 阅读 · 1 评论 -
51单片机:计数器 方式2 外部开关按5次LED灯状态发生改变
51单片机:计数器 方式2 外部开关按5次LED灯状态发生改变最近一段时间在准备单片机考试,复习过程中发现自己在平时写作业的过程中很少用到计数器,大部分情况下都是在用定时器,因此复习看到有关定时器的内容时很是吃力,后来好好温习了一下课本,才对计数器有了一点了解。单片机课程虽然结束了,课设也搞完了,但是在这一过程中暴露了很多的问题还是应该引起重视的,很有必要记录一下。问题描述Suppos...原创 2019-06-03 18:31:28 · 6353 阅读 · 9 评论 -
51单片机:有趣的定时器实验
51单片机:有趣的定时器实验本以为考完试搞完课设就没啥单片机啥事了,结果莫名的来了软件工程软件基础训练,训练Proteus和Keil软件。我嘞天,之前天天用好不?这课程安排的emmmmm,我还要其他课设好不?真是没办法。不过还好,软件训练时遇到了一个好玩的题目给了点心里安慰,分享一下。题目描述:单片机运行后,显示器会显示“00”字样,每过1s,显示的内容就会变化一次,依次显示“01”、“0...原创 2019-06-11 11:25:34 · 4299 阅读 · 1 评论 -
51单片机:用汇编语言表示分段函数
51单片机:用汇编语言表示分段函数学习51单片机中,虽然大部分的时间都在用C语言编写代码,但是因考试需要也学了一些简单的汇编知识。初识汇编是在微机原理,那时没有好好学,现在到用的时候,真是一把辛酸泪。还好考试涉及的知识点不是那么深,简做整理了一点,暂存博客吧。开胃小题:用汇编语言实现如下功能:假设X储存在RAM 30H中,而Y存储在外部RAM31H中,当 X > 0时,Y = ...原创 2019-06-17 17:12:24 · 3906 阅读 · 0 评论 -
51单片机数据传送——片内到片外(汇编语言实现)
51单片机:数据传送——片内到片外(汇编语言实现)问题描述:把存储在片内RAM 40H开始的16个单元(地址为40H到4FH)内容依次搬移到片外RAM 3000H开始的16个单元(地址为3000H到300FH)代码/*内部RAM(40H~4FH)单元地址内数据搬移到片外RAM(3000H~300FH)*/ MOV R0,#40H ;内部RAM开始地址 MOV DP...原创 2019-05-06 22:04:39 · 17352 阅读 · 0 评论 -
51单片机:TLC549测量电压,并将测量值显示在数码管上
51单片机:TLC549测量电压,并将测量值显示在数码管上要求:在51单片机上利用TLC549这个A/D转换器测量电压,并将测量值显示在数码管上。电源范围是0-5V,可以实时测量出电压大小并显示出来。仿真电路图:代码如下://TLC549测量电压,并将测量值显示在数码管上#include<reg52.h>sbit CS = P1^0;sbit CLK = P...原创 2019-05-09 07:58:20 · 11139 阅读 · 15 评论 -
51单片机:stc烧录软件下载.hex文件遇到无法下载问题的解决方法(虚拟串口占用实际下载串口)
51单片机:stc烧录软件下载.hex文件遇到无法下载问题的解决方法(虚拟串口占用实际下载串口)问题描述:打开STC-ISP(V6.85P)下载选择好的.hex文件时,总是显示在检测目标单片机的状态,打开设备管理器发现相适应的串口无法使用,后来发现原来是因为在Configure Virtual Serial Port Driver中练习串行通信的过程中占用了虚拟串口,导致烧录软件无法正常下载...原创 2019-04-12 13:29:03 · 6418 阅读 · 0 评论 -
51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零
51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零题目要求:利用外部中断实现按键按一下数码管数字加1,实现00-99的循环,另一个按键实现清零,不管数码管数字是多少,该按键按下数码管显示00准备工作:keil建立工程proteus仿真验证代码如下:/**功能:开关key1控制实现每按一次,数码管数字加1,实现00-99的循环*开关key2...原创 2019-03-23 10:45:30 · 57699 阅读 · 19 评论 -
51单片机:在动态显示数字8051基础上,按键按一下数码管数字+1
51单片机:在动态显示数字8051基础上,按键按一下数码管数字+1题目要求:数码管一直在动态刷新,数码管的初值为8051,利用外部中断实现按键按一下数码管示数加一代码如下:(写的不好仅供参考)//利用外部中断实现开关按一下,数码管数字在8051的基础上+1#include<reg52.h>unsigned char code DSY_CODE[] ={0xC0,0xF...原创 2019-03-24 11:52:38 · 17774 阅读 · 0 评论 -
51单片机:定时器实现1秒时数码管数字自动加一并循环
51单片机:定时器实现1秒时数码管数字自动加一并循环题目要求:定时器中断实现每来1s,P1口接的一位共阳极数码管显示数+1,加到9之后再来1s清零并重复上述过程代码如下:(仅供参考)/**定时器中断实现每来1s,P1口接的一位共阳极数码管显示数+1,*加到9之后再来1s清零并重复上述过程*/#include<reg52.h>sbit SEG = P1^0;u...原创 2019-03-27 22:27:07 · 25154 阅读 · 7 评论 -
51单片机:实现上位机给下位机发送数字,下位机在数码管上面显示
51单片机:实现上位机给下位机发送数字,下位机在数码管上面显示代码如下:/**上位机给下位机发送数字*下位机数码管显示数字*/#include <reg52.h>unsigned char code DisPlay_Seg[10]={ 0xc0,0xf9,0xa4, 0xb0,0x99,0x92, 0x82,0xf8,0x80,0x...原创 2019-04-06 21:50:44 · 7271 阅读 · 6 评论 -
51单片机:主机甲向从机乙发送字母A,乙收到后返还给甲,甲收到后LED灯状态发生改变
51单片机:主机甲向从机乙发送字母A,乙收到返还给甲,甲收到后LED灯状态发生改变题目要求:开关按下主机甲向从机乙发送字母A,乙收到后并返还给甲,当甲收到后LED灯状态发生改变代码如下:主机甲/**开关按下主机甲向从机乙发送字母A,*乙收到后并返还给甲,*当甲收到后LED灯状态发生改变*/#include <reg52.h>sbit LED = P2^1;s...原创 2019-04-07 10:20:52 · 2348 阅读 · 12 评论 -
51单片机:实现流水灯
51单片机:实现流水灯作业要求:开始时LED1灯亮,自动实现1秒后跳转到下一个灯,进而实现LED1-LED8循环灯亮代码如下:(仅供参考)/**开始时LED1灯亮,自动实现1秒后LED1-LED8循环灯亮*/#include<reg51.h> //51系列单片机头文件sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = ...原创 2019-04-02 13:03:02 · 2396 阅读 · 0 评论 -
51单片机:外部中断实现流水灯
51单片机:外部中断实现流水灯作业要求:按照给定的实验板电路图编程实现外部中断控制流水灯,初始上电时,实验板右下侧的流水灯区域只有最右侧LED灯亮,其他灯全都熄灭,每按下一次按键,流水灯从右向左流动一个LED灯,也就是说,第一次按下按键,从右侧数第二个LED灯亮,其他灯灭,第二次按下按键,从右侧数第三个LED灯亮,其他灯灭,以此类推。要求画出对应的电路原理图,不用考虑按键消抖问题。电路原...原创 2019-04-02 14:06:06 · 50002 阅读 · 7 评论 -
51单片机:利用定时器实现1秒后LED灯的状态改变
51单片机:利用定时器实现1秒后LED灯的状态改变作业要求:用定时器/计数器的定时功能控制实验板右下侧流水灯区域的最右侧的LED灯,初始上电时,该LED灯处于熄灭状态,每来1s,该LED灯改变一次状态。要求画出对应的电路原理图。原理图:代码如下:#include<reg51.h>sbit D1 = P1^0;void main(){ TMOD &=0...原创 2019-04-02 15:00:06 · 18191 阅读 · 1 评论 -
51单片机:使用T0,方式2,在P1.0输出周期为400µs,占空比为1:10的矩形脉冲
51单片机:使用T0,方式2,在P1.0输出周期为400µs,占空比为1:10的矩形脉冲作业要求:要求使用T0,采用方式2定时,在P1.0输出周期为400µs,占空比为1:10的矩形脉冲。分析过程:从P1.0输出的矩形脉冲的高低电平的时间为1:10,则高低电平的时间分别为36.37μs和363.7μs。采用6MHz晶振,高低电平输出取整,则约为36μs和360μs。代码如下:#...原创 2019-04-02 20:30:29 · 21886 阅读 · 8 评论 -
51单片机:每来5 个脉冲,LED灯改变一次状态
51单片机:每来5 个脉冲,LED灯改变一次状态作业要求:初始时LED灯处于熄灭状态,每来5个脉冲,LED灯状态改变一次代码如下:/*每来5个脉冲,LED灯改变一次状态*/#include<reg52.h>sbit LED = P1^0; unsigned int cnt = 0;main(){ TMOD &=0X0F; TMOD |=0x0...原创 2019-04-02 22:22:41 · 2736 阅读 · 1 评论 -
51单片机:8051指令简介
51单片机:8051指令简介按《单片机原理与应用》上面的介绍,8051指令系统共有111条指令,按功能分类,大概分为下面五大类:数据传输类(28条)算术运算类(24条)逻辑操作类(25条)控制转移类(17条)位操作类(17条)专业课本上包含的指令会比较全面,而在我的这篇博文中不会写的那么全。我只是简单的介绍一些常见的指令,这些指令是我考试内容中必须要掌握的,是...原创 2019-06-25 16:28:00 · 5976 阅读 · 1 评论