C51单片机之keil编程入门(一)

2020-05-21来源: eefocus关键字:C51  单片机  keil编程

51单片机组成


CPU:由运算和逻辑控制组成,同时还包括中断系统和部分外部特殊功能寄存器;

RAM:用以存放可以读写的数据。如运算的中间结果、最终结果以及欲显示的结果;

ROM:用以存放程序,一些原始数据及表格;

I/O口:四个8位并行I/O口,即可用作输入,也可用作输出;

T/C:两个定时/记数器,既可以工作在定时模式,也可工作在记数模式;

1.点亮一个发光管


//通过位操作点亮发光管

include

sbit D1=P1^0;//sbit位定义,P1^0表示P1口的第一位(从0开始计数)

int main()

{

D1=0;//单片机的P1.0端口输出低电平时发光管亮,51单片机默认上电后所有I/O口为高电平

}


//直接对P1口进行总线操作

include

int main()

{

P1=0xfd;//0x在C/C++中表示十六进制,fd即1111 1101

        //1111 1101为点亮P1口上的第二位(P1.1)上的发光管,P1.0为最低位,P1.7为最高位

}


先下载程序再打开单片机电源


2.流水灯设计


include

include

#define uint unsigned int

#define uchar unsigned char


uchar temp;

void delay(uint n);


int main()

{

temp=0xfe;

P1=temp;

while(1)

{

temp=_crol_(temp,1);//C51库函数,功能:将temp循环左移1位

delay(600);

P1=temp;

}

}


//延时函数

void delay(uint n)

{

uint x,y;

for(x=100;x>0;x--)

for(y=n;y>0;y--);

}


3.蜂鸣器发声


include

sbit beep=P2^3;

int main()

{

beep=0;

}


4.数码管静态显示


结合原理图理解

用锁存器来实现段选和位选(先控制位选,再控制段选)

锁存器的第11管脚为锁存端

//显示1

#include

sbit Dula=P2^6;//段选--控制亮出什么数字

sbit Wela=P2^7;//位选--控制哪一个数码管亮

int main()

{

Wela=1;//锁存端为高电平时,其输入端和输出端置通

P0=0xfe;

Wela=0;//锁存端为低电平时,输入端和输出端断开,输出端保持原来的值不变

Dula=1;

P0=0x06;

Dula=0;

while(1);

}

关键字:C51  单片机  keil编程 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic497849.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:keil5的安装+工程的创建
下一篇:C51#学习笔记01#| Keil软件的使用入门教程

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AT89C51通过74HC595锁存器控制流水灯
先上图如图,通过单片机P2^0,P2^1,P2^3将控制信号通过锁存器传输到LED,从而实现流水灯小程序。主程序如下:#include<reg51.h>#include<intrins.h>#include<74HC595.H>void Delay1ms() //@11.0592MHz  { unsigned char i, j;  _nop_(); i = 2; j = 199; do { while (--j); } while (--i);} void delays(unsigned t) //delay 500ms{ t=500*t
发表于 2020-05-04
AT89C51通过74HC595锁存器控制流水灯
C51单片机————总线与系统扩展
1.引文前面说过单片机的特点是体积小,功能全,系统结构紧凑、对于小型的需求可以满足要求。那么稍大一点嵌入式系统呢?那么有可能你的数据存储器、程序存储器还有IO口都可能不够用!那怎么办呢?我们就需要进行系统扩展了。基本知识与回顾我们都知道的是CPU大都通过三总线(数据、地址、控制)与外界进行信息交换的。- 数据总线:传输指令码和数据,外围的芯片都需要它来进行信息交流。- 地址总线:传输的是地址信息(数据传到哪儿的信息)2.扩展单片机系统总线信号P0口是地址(A0~A7) / 数据复用线(D0~D7),经锁存器提供低8位地址,锁存信号是由CPU的ALE引脚提供的;P2口提供高8位地址 A8 ~ A15。控制信号:RD、WR、ALE、PS
发表于 2020-04-28
C51单片机————总线与系统扩展
c51单片机寻址结构
最近要一直uc/os,需要补习一下汇编
发表于 2020-04-28
c51单片机寻址结构
简单的51单片机多任务操作系统(C51)
,我将来会说到. 概括来说,这个多任务系统适用于实时性要求较高而内存需求不大的应用场合,我在运行于36M主频的STC12C4052上实测了一把,切换一个任务不到3微秒.   下回我们讲讲用KEIL写多任务函数时要注意的事项. 下下回我们讲讲如何增强这个多任务系统,跑步进入操作系统时代. 四.用KEIL写多任务系统的技巧与注意事项  C51编译器很多,KEIL是其中比较流行的一种.我列出的所有例子都必须在KEIL中使用.为何,不是因为KEIL好所以用它(当然它的确很棒),而是因为这里面用到了KEIL的一些特性,如果换到其它编译器下,通过编译的倒不是问题,但运行
发表于 2020-04-27
简单的51单片机多任务操作系统(C51)
C51:数模模数转换
前言三种ADC的原理就默认都懂了~数模模数转换:DACDA硬件上讲比较容易,就是通过运算放大器把二进制数(一系列的稳定的高低电平)转换成不稳定的、连续变换的波。比如下面这个图,可以得到的通式就是公式怎么来的?图中的MOS都是绝缘栅型、N沟道、增强型管,在时有可以导通。所以在每个管子的处,如果给1,即高电平,那么该管子导通,看做漏级与栅极之间短路。上面这个公式就表明了简单的DA转换原理。不是一个位对应一个电压值,而是一个二进制数对应一个电压值。另外,上面式子中前面的系数是其比例系数、单位电压,也是最小输出电压的增量。数模转换器结构一个二进制对应一个电压值,可是电压连续变换。那么从一个二进制跳到另一个二进制之间不就必然出现其他二进制吗?
发表于 2020-04-19
C51:数模模数转换
C51单片机学习---8*8LED点阵屏
关于8*8LED点阵屏1.8*8LED点阵屏原理图74HC595移位器:将串行输入—>>并形输出LED:单色光,三色光(红,绿,蓝–>>组成多种颜色)pitch:相邻两个点之间的间距。 2mm=2pitch实际应用: 广告//点亮最右边的led#include<reg52.h>#include<intrins.h> typedef unsigned char u8; typedef unsigned int u16;sbit SCK =P3^6;sbit RCK =P3^5;sbit SER =P3^4;void Hc595SendByte(u8 dat);void
发表于 2020-04-16
C51单片机学习---8*8LED点阵屏
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved