使用Keil语言的嵌入式C编程教程(下)

用8051单片机进行定时器/计数器的计算与编程

延迟是应用软件开发中的重要因素之一。然而,在实现定时延迟的过程中,正常的延迟并不能给出克服这一问题的宝贵结果。定时器和计数器是微控制器的硬件组成部分,在许多应用中使用它来提供具有计数的宝贵时间延迟脉冲两个任务都是通过软件技术实现的。

定时器延迟

WAP使用T1M2(timer1和mode2)生成500us延时?

#include<reg51.h>

void main()
{
unsigned char i;
TMOD=0x20; //set the timer mode//
for(i=0i<2;i++) //double the time daly//
{
TL1=0x19; //set the time delay//
TH1=0x00;
TR1=1; //timer oN//
While(TF1==0); //check the flag bit//
TF1=0;
}
TR1=0; //timer off//
}

Normal Loop Delay

void delay()

{
unsignedint k;
for(k=0;k<30000;k++);
}

基于8051单片机的串行通信计算与编程

串行通信通常用于发送和接收信号。8051微控制器包括由Rx和Tx引脚发送和接收的信号的UART串行通信。UART接收字节的数据并按顺序发送各个位。寄存器是一种在存储器中收集和存储数据的方法。UART是一种半双工协议。半双工是指传输和接收数据,但不能同时进行。

1. WAP将字符“S”传输到串行窗口使用9600作为波特率?

28800是8051微控制器的最大波特率

28800/9600= 3

That baud rate ‘3’ is stored in the timers

#include<reg51.h>

void main()

{
SCON=0x50; //start the serial communication//
TNOD=0x20; //selected the timer mode//
TH1=3; // load the baud rate//
TR1=1; //Timer ON//
SBUF=’S’; //store the character in the register//
while(TI==0); //check the interrupt register//
TI=0;
TR1=0; //OFF the timer//
while(1); //continuous loop//
}

2. WAP从超级终端接收数据并使用9600波特将数据发送到微控制器的端口0? 28800是8051微控制器的最大波特率

28800/9600= 3

That baud rate ‘3’ is stored in the timers

#include<reg51.h>

void main()
{
SCON=0x50; //start the serial communication//
TMOD=0x20; //selected the timer mode//
TH1=3; // load the baud rate//
TR1=1; //Timer ON//
PORT0=SBUF; //send the data from SBUF to port0//
while(RI==0); //check the interrupt register//
RI=0;
TR1=0; //OFF the timer//
while(1); //stop the program when character is received//
}

用8051单片机中断程序

中断是强制停止当前程序并立即执行其他程序的信号。8051微控制器提供6个内部和外部中断源。当中断发生时,微控制器暂停当前任务并通过执行ISR处理中断,然后微控制器返回到最近的任务。

WAP在定时器0中断时执行左移操作,然后在主功能中执行P0的中断操作?

#include<reg51.h>

unsigned char b;

void timer0() interrupt 2 //selected timer0 interrupt//
{
b=0x10;
P1=b<<2;
}
void main()
{
unsigned char a,i;
IE=0x82 //enable the timer0 interrupt//
TMOD=0x01;
TLo=0xFC; //interrupt timer//
TH1=0xFB;
TR0=1;
a=0x00;
while(1)
{
for(i=0;i<255;i++)
{
a++;
Po=a;
}
}
}

用8051单片机进行键盘编程

矩阵键盘是一种模拟开关设备,在许多嵌入式应用中使用,允许用户执行必要的任务。矩阵键盘由行和列中矩阵格式的开关排列组成。行和列连接到微控制器,使得开关行连接到一个管脚,并且每列中的开关连接到另一个管脚,然后执行操作。

1. WAP to toggle the LED by pressing the switch

#include<reg51.h>
sbit a=P3^0;
sbit b=P3^1;
sbit c=P3^2;
sbit d=P3^3;
void delay();
void main()
{
while(1)
{
a=0;
b=1;
c=1;
d=1;
delay();
a=1;
b=0;
c=1;
d=1;
void delay()
{
unsigned char i;
TMOD=0x20; //set the timer mode//
for(i=0i<2;i++) //double the time daly//
{
TL1=0x19; //set the time delay//
TH1=0x00;
TR1=1; //timer oN//
While(TF1==0); //check the flag bit//
TF1=0;
}
TR1=0; //timer off//
}

2. WAP to Switch ON the LED by pressing the key ‘1’ on the keypad?

#include<reg51.h>

sbit r1=P2^0;
sbit c1=P3^0;
sbit LED=P0^1;

void main()
{

r1=0;
if(c1==0)
{

LED=0xff;
}
}

3. WAP to display the number 0,1,2,3,4,5 on the seven segment by pressing the respective key on the keypad?

#include<reg51.h>

sbit r1=P2^0;

sbit c1=P3^0;

sbit r2=P2^0;

sbit c2=P3^0;

sbit a=P0^1;

void main()

{

r1=0; a=1;

if(c1==0)

{

a=0xFC;

}

If(c2==0)

{

a=0x60;

}

if(c3==0)

{

a=0xDA;

}

If(c4==0)

{

a=0xF2;

}

}

用8051单片机进行液晶显示编程

LCD显示器是一种电子设备,在许多应用中经常用于以文本或图像格式显示信息。液晶显示器是一种可以在屏幕上轻松显示字符的显示器。液晶显示器由8条数据线和3条控制线组成,用于与微控制器接口。

WAP to display the “EDGEFX KITS” on LED display ?

#include<reg51.h>
#define kam P0

voidlcd_initi();
voidlcd_dat(unsigned char );
voidlcd_cmd(unsigned char );
void delay();
void display(unsigned char *s, unsigned char r)

sbitrs=P2^0;
sbitrw=P2^1;
sbit en=P2^2;
void main()
{

lcd_initi();
lcd_cmd(0x80);
delay(100);
lcd_cmd(0xc0);
display(“edgefx kits”,11);
while(1);
}

void display(unsigned char *s, unsigned char r)
{
unsignedint w;
for(w=0;w<r;w++)
{
lcd_data(s[w]);
}
}
voidlcd_initi()
{
lcd_cmd(0×01);
delay(100);
lcd_cmd(0×38);
delay(100);
lcd_cmd(0×06);
delay(100);
lcd_cmd(0x0c);
delay(100);
}
voidlcd_dat(unsigned char dat)
{
kam = dat;
rs=1;
rw=0;
en=1;
delay(100);
en=0;
}
}
voidlcd_cmd(unsigned char cmd)
{
kam=cmd;
rs=0;
rw=0;

en=1;
delay(100);
en=0;
}
void delay( unsigned int n)
{

unsignedint a;
for(a=0;a<n;a++);
}

keil窗口显示不全_使用Keil语言的嵌入式C编程教程(下)相关推荐

  1. 使用Keil语言的嵌入式C编程教程(下)

    使用Keil语言的嵌入式C编程教程(下) 用8051单片机进行定时器/计数器的计算与编程 延迟是应用软件开发中的重要因素之一.然而,在实现定时延迟的过程中,正常的延迟并不能给出克服这一问题的宝贵结果. ...

  2. 使用Keil语言的嵌入式C编程教程(上)

    使用Keil语言的嵌入式C编程教程(上) Embedded C Programming Tutorial with Keil Language Embedded System 嵌入式系统是指以单片机为 ...

  3. SSH工具Secure Shell Client的sitting窗口显示不全和窗口页面大小问题解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 就是这个软件: 处理办法: 在百度下关键字:ssh secure shell 的 setting窗口显示不全 查到一个网页标题 ...

  4. 服务器操作系统不能显示全屏,服务器窗口显示不全屏

    服务器窗口显示不全屏 内容精选 换一换 已成功添加Guardian.如果Guardian处于在线状态,只允许修改Guardian名称.如果Guardian处于连接超时状态,可以输入登录远程服务器的用户 ...

  5. 服务器屏幕不全屏显示,服务器窗口显示不全屏

    服务器窗口显示不全屏 内容精选 换一换 本文以云服务器的操作系统为"Windows Server 2008 R2 Standard 64bit".磁盘容量为3 TB举例,提供容量大 ...

  6. 计算机窗口显示不完整,win10软件窗口显示不全不完整怎么办

    在win10系统中,使用的用户多了难免会出现各种各样的问题,例如有的用户的win10系统中打开软件时总会出现显示不全不完整的情况,那么win10软件窗口显示不全不完整怎么办呢?下面就来告诉大家win1 ...

  7. 自己动手修复PADS Layout 9.5封装向导窗口显示不全的Bug

    上一次跟大家分享了如何修复PADS Logic 9.5选项菜单显示不全的方法. https://blog.csdn.net/lenceliu/article/details/107960117 这里继 ...

  8. win10个性化软件窗口显示不全怎么办

    很多朋友都遇到了打开软件,发现软件的部分页面显示不出来,或者没有按钮等,win10个性化软件窗口显示不全怎么办呢?其实只要在个性化显示窗口设置一下比例就可以了,今天小编带来了详细的解决方法,有需要的朋 ...

  9. C语言连接MySQL数据库编程教程:超详细

    ** C语言连接MySQL数据库编程教程 ** 一.下载安装mysql.h库文件 我们使用的编译器一般为VC6.0或者VS,默认的都是32位编译器,所以我们下载的库文件也直接下载32位的就可以.下面附 ...

最新文章

  1. Android App的启动过程
  2. 笔记本电脑无线被禁用 是哪个服务器,无线网关,小编教你笔记本无线网络禁用后怎么开启...
  3. window系统安装redis步骤
  4. 2019年全国各地房价排名50强
  5. AI顶会直播丨深度学习顶级会议ICLR 2021中国预讲会明天召开,为期三天五大论坛...
  6. python公开发行版本_Python2 最后一个版本发布,正式迈入 Python3 时代
  7. linux安装mysql后怎么进去_linux安装mysql详细步骤
  8. 雨滴式的显示图片 (cloud 转贴) (转)
  9. 判断101到200之间的素数
  10. BES2300x笔记(30) -- ANC降噪原理与通道配置
  11. java 常量定义_java常量的定义
  12. A按键控制LED状态
  13. 用于拆解和组合PDF中各个对象的shell脚本
  14. youtube后端是python吗_Web后端开发,用Python还是Go呢?
  15. 微信支付 postman_微信收款商业版有什么功能?微信智慧经营2.0原来可以这么玩!...
  16. MySQL索引 聚集索引
  17. 程序员的日常:当一名程序员到底有多难?
  18. IT新手入职的一些注意事项
  19. 影院活动管理系统 项目设计阶段
  20. 以太坊挖矿源码:ethash算法

热门文章

  1. 不可重复读和幻读的区别_面试官:MySQL的可重复读级别能解决幻读吗
  2. Android:eclipse新建android工程style文件里的Theme老是报错
  3. 链接标签(HTML)
  4. Node爬虫,爬取传播客新闻列表
  5. java 类库_Java基础类库
  6. win10+linux系统进入安全模式,Win10进入安全模式的方法
  7. vbS访问mysql语句_关于VBS连接MySQL与连接Excel
  8. 学画画要花多少钱_美术生大学四年花费一般在多少 学美术有哪些出路
  9. VC线程同步技术剖析
  10. Lua 之table的测试