- 博客(12)
- 收藏
- 关注
原创 12.定时器中断0-实现小灯1s翻转
原理原理就是定时器中断0的开启及设置方式。1、设置TMOD(定时器/计数器工作方式寄存器),高4位设置T1,低4位设置T0,分别是GATE门控,计数/定时,以及两位M0、M1选择工作方式0-3。2、设置计数初值:2^16-计数值=计数初值,按照机器周期及频率来看,计数值为1则定时1us,在不超过2*16范围内,通过TH0和TL0进行相应计数设置3、允许定时器中断,及总中断4、设置TCON(控制方式寄存器),高4位为定时器设置,低4位为外部中断设置,这里设置TF0和TR0,其实我理解为设置请求中断
2021-11-29 12:24:35 1795
原创 11.外部中断-按键循环灯
proteus仿真原理图如下代码部分利用外部中断加上数组,以及一个全局变量传值,实现外部中断循环点灯,也就是按一下亮一个灯。#include"reg52.h"//#include"intrins.h"typedef unsigned char u8;typedef unsigned int u16;u8 a=0;//全局变量u8 code table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//从低到高sbit k1=P3^2;
2021-11-29 10:06:28 1386
原创 10.80c51外部中断 按键翻转LED
外部中断0在我理解,外部中断要用的话,首先得开启总中断开关即(EA=1),而后打开外部中断允许(即EX0=1),最后选择外部中断触发方式(IT0,为0则为低电平触发,为1则为下降沿触发),以下为外部中断0的实现按键按下LED灯状态翻转的作用。外部中断0实现代码如下(已注释)#include"reg52.h"typedef unsigned char u8;typedef unsigned int u16;sbit k3=P3^2;//开始以为随便一个按键都有用,没用后发现得把按键接在中断
2021-11-23 21:03:08 3029 3
原创 9.80c51转向灯及proteus仿真实验
proteus仿真电路图代码实现部分#include"reg52.h"typedef unsigned char u8;typedef unsigned int u16;sbit k1=P1^0;sbit k2=P1^1;sbit led1=P1^2;sbit led2=P1^3;sbit led3=P1^4;sbit led4=P1^5;void delay(u16 i){ while(i--);}void Zhuanxiang(){ if(k1==0) {
2021-11-23 11:03:09 986
原创 8.点阵(点亮第一个和点亮0字符)
点阵原理在开发板中,点阵模块和74HC595芯片连在一块,首先74HC595芯片是一个串转并芯片,可以有效减少I/O口使用,下面是它的原理图通过在P34串行输入,QA到QH并行输出,例如P34输入0x80,则QH输出1,其他为0,再来看看点阵原理图光看这个不知道怎么个亮法,所以来个更加明了的图P0-P7控制列,其中第一列为P07控制,D0-D7控制行,其中D7控制第一行,所以,点亮第一个LED的话只需让D7为高电平(即为1),P07为0则可点亮,理论可行,开始实践,我一般是不看实验讲解,直接看原理讲
2021-11-23 10:54:14 1165
原创 7.按键循环灯及proteus仿真
功能利用51单片机,加上按键、8个LED小灯、以及限流电阻,设计一个按键按下小灯循环亮灭,这里在不涉及中断的情况下,实现此功能。1.硬件电路在proteus中,仿真只需51单片机(80c51),8LED小灯,限流电阻,及一个按键。首先,8LED小灯接P1口,加限流电阻后共阴极接地(共阴就是二极管低电平汇聚一起,自己的理解哈哈),然后按键在我看来随便接个P2或P3都可以(不知道仿真里面是带了上拉电阻还是其他)proteus仿真电路图2.点亮D1操作先查看有无问题1.写基础程序(基础定义LED,
2021-11-13 00:16:51 3279 1
原创 6.矩阵按键
1所学知识电路类:在一端接高一端接低情况下,按键按下之后,高的都会变成低电平,相当于按键按下为一根导线接地,而且据我观察,一个按键4个接口,可以多用(猜测)编程类 :1、学了#define宏定义,程序可修改性变强,比如#define led P2,如果后期要修改为P3引脚,直接改宏定义即可,没宏定义的话,程序中所有P2都要修改,如果定义多的话修改很麻 2、全局变量可用于整个程序,简而言之哪里修改后全局变量的值就修改 3、switch()函数为比较函数,即为判断函数,括号里的值为需要判断的定义,也就是说
2021-11-10 17:04:12 627
原创 5.独立按键
所学物理电路独立按键原理,以及I/O口的电路原理,P0漏极开路(即没有上拉电阻(在我理解上拉电阻为接高电平电阻)),用的话需要接上拉电阻,P123则不用,具体用到非门和三极管2.编程消抖程序,利用CPU处理速度及短暂延时函数进行抖动的规避3 所遇问题1.自己写的函数中(不在主函数中)只定义i,未赋值,执行i++后i值仍变化,且从零开始,猜想是计算机默认赋初值0给i2.遇到副函数调用副函数上条没用,主函数调用副函数可实现,猜测传输参数问题#include"reg52.h"typedef
2021-11-09 22:03:53 485
原创 3.有关LED及蜂鸣器联合设置的夜晚警示器
所需装置(1.LED、2.蜂鸣器、3.MCU三个基础装置)如果需改造成夜间太阳能报警器,则需要光控装置、太阳能板、电池、以及功放或者是放大声音装置。需求太阳能充放电,无需额外供电白天不会工作,夜晚工作这些还只是猜想,目前需查询资料进行实验及测试简易报警器C代码#include"reg52.h"typedef unsigned int u16;typedef unsigned long u32;sbit led=P2^0;sbit beep=P1^5;void delay.
2021-11-07 21:09:26 774
原创 2.80C51-LED流水灯+LED闪烁
在LED流水灯和LED闪烁中,学会了新的定义方法typedef unsigned int u16 宏定义,简化了定义变量书写,程序可以更好修改#define A P0(端口)例子:#define PI 3.14这其中#define作用只是单纯替换,不承担计算职能,算是预处理这也让我产生假设:P0可以为参数,如果A代表设置的某一功能的参数变量(例如速度变量),P0是否可以为一函数,然后改变函数参数即可改变速度变量,不知是否可行,下次找机会验证一下。循环左右移 crol(a,b)左和_cror_(
2021-09-13 09:58:59 223
原创 1.80C51学习-点亮第一个LED
写第一个代码之前,按说明来看首先是看懂原理图,如下发光二极管正极接高电平,所以相对于P20-P27着8个接口得接负极才会亮如下便是点亮第一个LED的C代码`#include"reg52.h"sbit led=P2^0;void main(){while(1){led=0;}}`遇到的问题并如何解决新建工程文件在无任何代码情况下,运行之后显示"target not created"在网络搜索无果后,决定重建项目,只不过无论是.c文件还是keil4文件命名都去掉了空格,而后运行下来果然
2021-09-12 10:30:59 162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人