历史上的今天
今天是:2025年06月21日(星期六)
2021年06月21日 | 【51单片机】基础例程|C语言
2021-06-21 来源:eefocus
LED点灯:
1. 通过sbit赋值
#include "reg51.h"
sbit key1 = P2^0;
sbit key2 = P2^1;
sbit led1 = P1^0;
sbit led2 = P1^1;
void main(void){
while(1){
/*
ifP2.0端口按下(按键接了一个GND,所以按下按键为低电平)
则led1赋低电平,给led2高电平
*/
if(key1 == 0){
led1 = 0;
led2 = 1;
}
/*
ifP2.1端口按下,为低电平,则led2赋低电平,给led1高电平(∵LED是阳极接法)
*/
if(key1 == 0){
led1 = 0;
led2 = 1;
}
}
}
2.直接给P2串行口赋值
#include"reg51.h"
void main(){
while(1){
//P2口为控制端口,我们是通过程序来控制P1口的为低电平或者是高电平的
if(P2 == 0xfe){
//11111110
P1 = 0xfe;
}
if(P2 == 0xfd){
//11111101第二个口为低,刚好可以导通
P1 = 0xfd;
}
}
}
流水灯
我们默认都是共阴极接法,如果出现共阳极接法:【陷阱】,需要对其进行按位取反!
#include "reg51.h"
#include "intrins.h"
//11.0592MHz
void delay500ms(){
unsigned char i,j,k;
nop();
i=4;
j=129;
k=119;
do{
do{
while(--k);
}
while(--j);
}
while(--i);
}
void main(){
unsigned char led;
//init:00000001
led = 0x01;
while(1){
//P1共阳极接法:需要进行按位取反
P1=~led;
led<<=1;
//超过量程之后会归零,我们就需要重新对它进行赋值!
if(led == 0x00){
led = 0x01;
}
}
}
将外部RAM地址1000H~10FFH的256个单元清零
登录后复制
MOV R2 , #0FFH //R2只能记录255次
MOV DPTR , #1000H
CLR A
LOOP:MOVX @DPTR , A
INC DPTR
DJNZ R2 , LOOP
MOVX @DPTR,A //对10FFH清零
RET //子程序返回主程序
上一篇:51单片机开发之矩阵键盘
史海拾趣
|
浅谈VHDL/Verilog的可综合性以及对初学者的一些建议 一、HDL不是硬件设计语言 过去笔者曾碰到过不少VHDL或Verilog HDL的初学者问一些相似的问题,诸如如何实现除法、开根号,如何写循环语句等等。在这个论坛上,也时常能看到一些网友提出这一类的问题。 对于这些问题,首先要明确的是VHDL和Veriglog并 ...… 查看全部问答> |
|
HID设备的功能简单,每隔一段周期发送一个测试数据给我,周期在10ms以内,一般7-8ms.我这边写一段,但是Createfile之后使用ReadFile()无法读取发送过来的测试数据,GetLastError()返回ERROR_IO_PENDING ,WaitForSingleObject()返回超时.请 ...… 查看全部问答> |
|
我安装了一个虚拟机,在虚拟机下安装了一个linux。在linux里面上传了一个jdk-6u16-linux-i586.bin和一个apache-tomcat-6.0.20.tar.gz。可是在linux里面怎么安装这两个东西?另外linux的命令怎么用?在哪里运行?例如在windows下在运行那里输入cmd, ...… 查看全部问答> |
|
本人菜鸟,正准备用TG12864A做一个简单的显示自左向右显示滚动汉字的功能. 可是自己毫无头绪. 请高手赐教下具体的原理流程以及编程思想吗?用C语言编写. 如果有源程序就更好了. 请大虾帮助.… 查看全部问答> |
|
用20脚2553芯片代替28脚芯片进行DIY的思路 在收到板子第一天,就想把板子焊好。 可是等我一看在TI网站上申请的2553芯片,傻眼了。寄来的是20脚的。怪我当时太粗心,收到申请的芯片时也没进行检查。 没有办法,只好看看20脚2553 ...… 查看全部问答> |
|
组团:2.8寸 16:9 带触摸屏无图标 240*400分辨率 8元一片 第一次发起团购,希望各位顶顶,呵呵! 此款液晶屏原装A规 数量巨大 所以干脆以最便宜价格来回馈坛友! 走淘宝,让大家放心团! 希望大家以10PCS起拍,这样方便打包,呵呵!默认圆通,邮费统一为9元,不超重情况下! 淘 ...… 查看全部问答> |




