单片机
单片机
ʚVVcatɞ
时光难留,只有一去不返。
展开
-
ISIS 7 Professional仿真——键控流水灯
功能:K1是总开关,当K1首次按下时,流水灯由下往上流动;当K2按下时停止流动,且全部灯灭,当K3按下时使灯由上往下流动,K4则使灯由下往上流动。#include "reg51.h" unsigned char led[]={0xfe,0xfd,0xfb,0xf7};void delay (unsigned char time){ unsigned int j=12000; for(;time>0;time--) // 延时函数 for(;j>0;j--);原创 2021-01-10 14:22:13 · 3900 阅读 · 2 评论 -
STC89C52单片机 LCD1602液晶显示屏
LCD1602显示 VVcat#include <reg52.h>typedef unsigned char uchar;typedef unsigned int uint;sbit RS = P3^5;sbit RW = P3^6;sbit EN = P3^4;//判断液晶忙,如果忙则等待void Read_Busy(){ uchar busy; P0 = 0xff; RS = 0; RW = 1; do{ EN = 1; busy = P0; EN原创 2021-01-05 11:35:14 · 2971 阅读 · 0 评论 -
STC89C52单片机 串口通信
串口初始化void UARTInit(){ EA = 1; //打开总中断 ES = 1; //打开串口中断 SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可变 REN = 1;//串口允许接收 TR1 = 1;//启动定时器1 TMOD |= 0x20;//定时器1,工作模式2 8位自动重装 TH1 = 0xfd; // 根据下面的公式计算得到 TL1 = 0xfd; //设置比特率9600}例如:计算9600的波特率SMOD在没有设置的情况下,原创 2021-01-04 21:04:24 · 6679 阅读 · 0 评论 -
STC89C52单片机 定时器
怎么去设置定时?例如:定时 50微秒 首先 50000 ÷ 1.085 = 46,082.94930875576 从 0 开始加 19,453 次会溢出 这样的计算会有误差,但是影响比较小可以忽略不计 TH0 = (65535 - 46082) / 256; // 将商放在高八位 TL0 = (65535 - 46082) % 256; // 将余数放在低八位 或者 65535 - 46082 = 19453 十六进制得到:4BFD 二进制得到:0100 1011 11原创 2020-12-22 13:48:59 · 1475 阅读 · 0 评论 -
STC89C52单片机 矩阵键盘
矩阵键盘识别方法矩阵键盘一共有4行和4列一共16个按键组成。确定矩阵键盘上哪一个按键被按下可以采用列扫描和行扫描。列扫描时先把接在列上面的所有IO口拉高,接在行上的所有IO置低。当其中有一列内任何一个按键按下那么整条列线都会被拉低。当进行列扫描的时候:P30/TXD:IO口为 0P31/RXD:IO口为 0P32/INT0:IO口为 0P33/INT1:IO口为 0P34/LCDEN:IO口为 1P35/RS:IO口为 1P36/WE:IO口为 1P37/RD:IO口为 1当进行行原创 2020-12-22 12:58:16 · 4315 阅读 · 1 评论 -
STC89C52单片机 使用定时器使LED灯闪烁
#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit LED1 = P1^0;//LED1//定时器1初始化void timer1Init(){ TR1 = 1; //启动定时器1 TMOD |= 0X10; //定时器1工作模式1,16位定时模式 TH1 = 0x4b; TL1 = 0xfd; //定时50ms}原创 2020-12-13 22:00:52 · 1519 阅读 · 2 评论 -
STC89C52单片机 点亮两个数码管,可以显示 00——10 共 11 个数字
手动显示#include <reg52.h>//包含51头文件#include <intrins.h>//包含移位标准库函数头文件#define uint unsigned int#define uchar unsigned charsbit DU = P2^6;//数码管段选sbit WE = P2^7;//数码管段选//共阴数码管段选表0-9uchar code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x原创 2020-11-23 09:26:20 · 8422 阅读 · 0 评论 -
STC89C52单片机 独立键盘
独立键盘键盘介绍键盘是电子系统中人机对话的重要组成部分,是人向机器发出指令、输入信息的必须设备键盘在单片机应用系统中是使用最广泛的一种数据输入设备。键盘是由多个按键组成的。按键的工作原理按键通常是一种常开型开关,常态下按键的两个触点处于断开状态,按下按键时它们才闭合。以下是 轻触开关和轻触按键 图键盘类型通常键盘有编码键盘和非编码键盘两种。编码键盘通过硬件电路产生被按按键的键值码,这种键盘使用方便,所需程序简单,但硬件电路复杂,如计算机的键盘,单片机则通常不采用编码键盘。而软件编程来识原创 2020-11-15 01:44:57 · 3062 阅读 · 0 评论 -
STC89C52单片机 点亮LED灯
点亮LED灯一、什么是LEDLED全称为半导体发光二极管,采用半导体材料制成的,以直接将电能转化为光能,电号转换成光信号的发光器件;其特点是功耗低、高亮度、色彩艳丽、坑振动、寿命长(正常发光8-10万小时)、冷光源等优点,是真正的“绿色照明”。二、LED工作参数LED(发光二极管)在电路图中的符号为:它具有二极管的基本特性正向导通,反向截止。要想点亮LED那么需要从正向流过工作电流。普通发光二极管工作压降为:1.6~2.1V。工作电流为:1~20mA。有图中LED的通过电流我们可以根据原创 2020-11-09 17:14:07 · 4644 阅读 · 0 评论 -
STC89C52单片机 数码管动态显示
数码管动态显示静态与动态显示动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。数组的定义与引用数组是一组有序数据的集合,数组中每一个数据都是同一数据类型。数组中的元素可以用数组名和下标来唯一确定。数组的一般格式定义如下:数据类型 数组名[常量表达式] = {元素表};例如:unsigned c原创 2020-11-02 00:23:43 · 10001 阅读 · 12 评论 -
STC89C52单片机 数码管静态显示
数码管显示原理数码管根据内部连接不同分为共阴极和共阳极。八段数码管内部有8颗LED组成,如果想要显示特定字形只需控制相应的LED亮起,其他LED熄灭即可。静态与动态显示静态显示:LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个9位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。缺点:使用的IO口比较多。动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管原创 2020-11-01 14:03:34 · 5688 阅读 · 0 评论 -
STC89C52单片机 蜂鸣器
蜂鸣器蜂鸣器工作原理查看本目录下《蜂鸣器的结构原理.doc》文档蜂鸣器区别:这里的“源”不是指电源。 而是震荡源。也就是说,有源蜂鸣器内部带振荡源,所以只要一通电就会叫。而无缘内部不带振荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无缘的贵,就是因为里面多个振荡电路。三极管工作原理蜂鸣器原理图:单片机它不是功率器件,它适合做控制用,不适合驱动功率器件#include <reg52.h>#include <intrins.原创 2020-10-31 22:47:14 · 4227 阅读 · 0 评论 -
STC89C52单片机 流水灯
流水灯宏定义用define 进行宏定义的典型用法#define uchar unsigned char注意宏定义后面不能加分号,它是预处理指令不是语句。其中用“uchar”直接替换了unsigned char此时我们可以用uchar去定义变量类型如:uchar i ;等价于 unsigned char i ;对于上面的宏定义我们是用来给已有数据类型取别名。对已有数据类型取别名一般还有使用关键字typedef,定义方法如下:typedef 已有数据类型 新的数据类型;(要加分号)函数的定原创 2020-10-31 21:08:35 · 3666 阅读 · 1 评论 -
STC89C52单片机 LED灯闪烁
LED闪烁循环语句循环语句(1)while(条件表达式){语句}只有当 while 后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句。(2)for([初值设定表达式];[循环条件表达式];[更新表达式]){语句}例:for(i = 1; i <= 100; i++) {语句}花括号内语句会被执行100次后才退出。变量的定义变量变量是在程序执行过程中其值能不断变化的量。在使用一个变量之前必须进行定义,用一个标识符作为变量原创 2020-10-31 16:13:31 · 4736 阅读 · 1 评论