AT89S52:
P0:不含上拉电阻,需要外接
P1,P2,P3:内部含上拉电阻
左下方是个晶振
51单片机的复位是高电平复位(默认是高电平输出)-如何复位:赋予高电平脉冲
复位的接入方法
如何复位详解:RST含高电平脉冲
复位键断开:RST是低电平(接地)
复位键闭合:闭合回路上,RST获得高电平,计算V(rst) = 4.7 v 为高电平
搭建最小系统:
接入晶振
接入RST
接入上拉电阻并为上拉电阻提供VCC
EA接入VCC(代表使用片内存储器) 接入0(代表使用片外存储器)
解释573芯片:
OE上加-:低电平有效,高电平无效。
Z:高组态,既不是高,也不是低。接什么平是什么平,相当于芯片没有工作
Q0:维持原来的状态不改变。
排阻的九个引脚:接入VCC的COM脚是八个电阻共接在一起的。1K的阻值:发光二极管的正向导通电压(1.6-1.7V)除以流过的电流
(3-10mA)
如何点亮图中二极管:
VCC已经提供高电平,保证负极的低电平。
P0i对应第i+1个二极管=》P0i依次设置成低电平。
循环
点亮灯:
#include sbit led1 = P0^0; int main() { while(1){ //线操作 P0 = 0xfe; //位操作 led1 = 0; } return 0; } 闪烁灯: #include #define uint unsigned int void delay(uint a){ while(a--) ; } int main() { while(1){ P0=0xfe;//11111110 delay(50000);//并不是精确的秒数,而是一个大致的时间间隔 P0=0xff;//11111111 delay(50000); } return 0; } 流水灯: 位操作: #include sbit led0=P0^0; sbit led1=P0^1; sbit led2=P0^2; sbit led3=P0^3; sbit led4=P0^4; sbit led5=P0^5; sbit led6=P0^6; sbit led7=P0^7; void delay(void) { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void main() { while(1) { led0=0; delay(); led0=1; delay(); led1=0; delay(); led1=1; delay(); led2=0; delay(); led2=1; delay(); led3=0; delay(); led3=1; delay(); led4=0; delay(); led4=1; delay(); led5=0; delay(); led5=1; delay(); led6=0; delay(); led6=1; delay(); led7=0; delay(); led7=1; delay(); } } 2.线操作: #include #define uchar unsigned char #define uint unsigned int unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; /* 1111 1110 1111 1101 1111 1011 1111 0111 1110 1111 1101 1111 1011 1111 0111 1111 */ void delay(void) { uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void main() { uchar i; while(1) { for(i=0;i<8;i++) { P0=table[i]; delay(); } } } 方法三:位运算 #include #define uchar unsigned char #define uint unsigned int void delay(void) { uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void main() { uchar k,i; while(1){ k=0xfe;//11111110 for(i=0;i<8;i++) { P0=k; //1111 1110 delay(); k=k<<1; //1111 1100 k=k|0x01; //1111 1101 //0x01:0000 0001(把最低位 或 为1) } } } 方法四:函数 #include #include #define uchar unsigned char #define uint unsigned int void delay(void) { uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void main() { uchar k; k=0xfe; while(1) { P0=k; delay(); k=_crol_(k,1); /* 1111 1110 1111 1101 --- 0111 1111 */ } } 软件仿真:debug 利用软件仿真测试语句间的执行时间: 开启debug 设置断点在起始位置 run t1 = sec 设置断点在起始位置 run t2 = sec 时间间隔 = t2-t1 设置与硬件同频率的晶振: 点击目标选项按钮 点击项目 点击始终:设置成与硬件符合的时钟(晶振)。
上一篇:【C51自学笔记】ULN2003+蜂鸣器+继电器+步进电机
下一篇:【C51自学笔记】概述与准备
推荐帖子
- 【跪求】codewarrior v7.1 使用ucos v2.86版本的问题
- codewarriorv7.1使用ucosv2.86版本的问题各位大侠。我再ucos官网上下载了MCF5235的移植代码。我用到了MCF52110上,我只建立了一个任务,这个任务和空闲任务之间切换几次后出现formaterror异常错误。错误的位置是osCtrsw函数的RTE指令处。但是我把空闲任务中OS_ENTER_CRITICAL();和OS_EXIT_CRITICAL();屏蔽后就不会有问题了。大侠们,帮忙看看。【跪求】codewarriorv7.1使用ucosv2.
- wangchao526 实时操作系统RTOS
- STM32F103 串口下载未识别的器件怎么处理?
- 问题:我自己做了个最小系统,用stm32f103串口1下载程序,出现问题如下,按下复位按键,重试,也不行依然出现上面错误的界面;我做了如下工作1)单片机端收发短接,PC串口回环测试正常;2)按着设置BOOT1=0,BOOT0=1,万用表测试也正常,分别是0和3.3V3)复位引脚测试各位大侠,指点一下,我还需要怎么处理才能下载程序 STM32F103串口下载未识别的器件怎么处理?没人给个建议或意见?从你的提示可以看出是没有复位,但从你的步骤看出没有问题,你的复
- bsp0321 stm32/stm8
- 【平头哥RVB2601创意应用开发】第四篇 声音直方图
- 本篇测评实验的内容是将声音播放和显示结合起来,播放声音的同时屏幕同时显示声音强度的直方图。先上视频,再解释实现方法。视频本实验代码是基于Offline版本的musicplay例程开发的。该例程是将嵌入程序的mp3声音数据(以数组形式保存)播放出来。例如实验中使用的welcome_mp3声音数据就保存在include/welcome_mp3.h中。数组里的数据
- oxygen_sh 玄铁RISC-V活动专区
- 基于ARM7的开发板如何驱动直流电机和步进电机?是不是需要驱动芯片?
- 我刚接触嵌入式ARM开发,这段时间看了不少资料,51单片机可以接引脚,基于ARM的平台应该怎么做呢?是不是要附加驱动芯片?如果是的话,这样的芯片价格如何,在一般的电子市场有卖吗?基于ARM7的开发板如何驱动直流电机和步进电机?是不是需要驱动芯片?ARM板如果有GPIO给用户的话和51用法相似,接口电压一般是3.3V,注意一下匹配即可.可以的哇GPIO口嘛呵呵很简单地,但有的ARMGPIO控制起来很变态嘿嘿电机肯定是要驱动芯片的了!而且还要隔离的!感谢各位的回答。都是很好的
- liurong82 ARM技术
- 【极海APM32F407】7, 点亮三色墨水屏
- 墨水屏我从来也没有用过,更谈不到点亮了。然而在写这次活动的步骤时我不知那来的潮水居然想点个墨水屏。我从佳显买了个墨水屏的驱动板子,为了省成本又从闲余买了一个2.13的台弯产的三色墨水屏。在一切到位后我修改了程序。我的定义如下:程序可以从大连佳显网站上找。#defineEPD_W21_MOSI_0 GPIO_ResetBit(GPIOE,GPIO_PIN_12)#defineEPD_W21_MOSI_1 GPIO_SetBit(GPIOE,
- ddllxxrr 国产芯片交流
- 无线充电,发射线圈一端波形顶部,为啥正弦波失真?
- 无线充电,发射线圈一端波形顶部,为啥正弦波失真?另一端的方波边沿也有振铃,毛刺。有哪些原因会导致这些波形的失真或者杂波的存在呢?无线充电,发射线圈一端波形顶部,为啥正弦波失真?失真还比较严重方波不方发射线圈和接收线圈的阻抗不匹配,会产生反射波,引起波形失真,这是可能电压不稳或含有高频噪声,也会直接反映到输出波形上,波形失真,也是可能就1楼贴的波形看,严格说不是振铃振铃的图像类似下面验证设计时,建议先用线性电源供电,排除输入电源的干扰;确
- QWE4562009 电路观察室
设计资源 培训 开发板 精华推荐
- LDK130PU-R 的典型应用可调版本电路,300 mA 低静态电流极低噪声 LDO
- DRF13XX,评估板由推挽配置中的两个 MOSFET 驱动器和两个功率 MOSFET 组成
- Spark_T12_V1.22
- 具有 400kHz 外部同步降压转换器的 LTC3646HMSE-1 12V 至 1.8V 输出的典型应用电路
- 【训练营】基于传智hi3861的写字机器人
- 8.4V@2串锂电保护板主动均衡
- TB67S149FG 2 相单极步进电机驱动器评估板
- 使用 AD5292 数字电位器、OP184 运算放大器和 MOSFET 的具有升压电流输出的可编程电压源
- MAXREFDES1126:用于Xilinx Ultrascale + FPGA的0.72V / 20A电源
- LTC3618 的典型应用 - 用于 DDR 终端的双通道 4MHz、±3A 同步降压转换器