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

发布者:chi32最新更新时间:2024-07-31 来源: cnblogs关键字:嵌入式  C编程 手机看文章 扫描二维码
随时随地手机看文章

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

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

定时器延迟             

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

#include

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

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

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

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
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

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

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
#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{
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}


关键字:嵌入式  C编程 引用地址:使用Keil语言的嵌入式C编程教程(下)

上一篇:使用Keil语言的嵌入式C编程教程(上)
下一篇:C51中的INTRINS.H

推荐阅读最新更新时间:2024-11-23 08:34

嵌入式系统中LCD驱动的实现原理
  结合三星公司arm9系列嵌入式处理器S3C2410,讲解如何进行LCD驱动程序模块化编程及如何将驱动程序静态加载进系统内核。   LCD(液晶显示)模块满足了嵌入式系统日益提高的要求,它可以显示汉字、字符和图形,同时还具有低压、低功耗、体积小、重量轻和超薄等很多优点。随着嵌入式系统的应用越来越广泛,功能也越来越强大,对系统中的人机界面的要求也越来越高,在应用需求的驱使下,许多工作在Linux下的图形界面软件包的开发和移植工作中都涉及到底层LCD驱动的开发问题。因此在嵌入式系统中开发LCD驱动得以广泛运用。   本文以三星公司ARM9内核芯片S3C2410的LCD接口为基础,介绍了在Linux平台上开发嵌入式LCD驱动程序的一
[单片机]
ARM嵌入式系统的问题分析与总结
  引言   由于各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。随着时间的推移和技术的进步,在工业控制和新兴的手持式应用等领域,用户体验成为产品成功的关键因素之一,越来越多的产品需要良好的用户界面、互联功能以及较强的数据处理能力,这对嵌入式处理器硬件、软件、教学等提出了新的要求。   1 嵌入式处理器与硬件   在处理器方面,目前大量的中、低端嵌入式应用,主要使用8/16位单片机。在国内,由于历史的原因,主要是以MCS51核为主的许多不同型号单片机,主要厂商有Atmel、Philips、Winbond、宏晶等。还有一些近几年发展较快的新型单片机,如PIC、AVR、MSP430系列等。这
[单片机]
嵌入式POS机的基础--ARM体系架构
在嵌入式领域,ARM(全称Advanced RISC Machines)的名字可谓是无人不知,在32位市场,ARM架构的产品占据高达75%的市场份额,居于垄断地位。该架构的专利持有者就是ARM公司。ARM成立于1990年,它实际上是Arcon、Apple和VLSI三家企业共同合作的产物。当年,Acron公司需要为它们的Archimedus电脑开发一枚处理器,Apple公司同样寻求一款可以代替摩托罗拉68000 CISC处理器的RISC架构产品,而VLSI则打算设计出一枚精简高效的RISC处理器用于集成系统中。颇富戏剧性的是,这三家企业最终都没有实现自己的目的,但ARM架构却在它们未曾想到的嵌入式领域被发扬光大。 ARM体系架构
[单片机]
新一代嵌入式微处理器STM32F103开发与应用
摘要: 基于Co rtex- M3内核的STM 32F103系列芯片是新型的32位嵌入式微处理器, 它是不需操作系统的ARM, 其性能远高于51系列 单片机 单片机   单片机是单片微型计算机(Single-Chip Microcomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成的微型计算机系统。 , 但开发过程与51系列单片机一样简便, 因而在很多应用场合可替代51系列单片机。本文从STM 32F103系列芯片性能
[工业控制]
新一代<font color='red'>嵌入式</font>微处理器STM32F103开发与应用
基于PCI总线的嵌入式实时图像处理系统
本文着眼于图像处理系统的发展要求,说明了基于PCI总线的DSP图像处理系统的优点,并详细阐明了系统的硬件结构和PCI总线的驱动实现,最后介绍了系统实现的效果。 1 图像处理系统发展现状 在计算机信息处理及应用中,图像信息处理以及处理结果的应用占有十分重要的地位。图像处理的发展依赖于处理器芯片(包括单片机、DSP等)技术的应用和发展,以及大容量、价格低廉的存储器的出现。图像处理系统虽然由机箱式大体积结构发展为插卡式小型化结构,但是由于图像处理存在大量的数据信息,在实时性和容量上一般不能满足多数需要实时处理的场合。这主要体现在如下2个方面。 1.1 实时性要求 图像处理系统有很多种实现方法,比如在通用计算机上用软件实现、用单片机
[嵌入式]
嵌入式睡眠监控报警仪的研究及设计
1、引言   正常人的脉搏和心跳是一致的,脉搏的频率受年龄和性别的影响,婴儿每分钟120-140次,幼儿每分钟90-100次,学龄期儿童每分钟80-90次,成 年人每分钟70-80次。另外,运动和情绪激动时可使脉搏增快,而休息、睡眠则使脉搏减慢。成人脉率每分钟超过100次,称为心动过速;每分钟低于60 次,称为心动过缓。临床上有许多疾病,特别是心脏病可使脉搏发生变化。因此,测量脉搏对病人来讲是一个不可缺少的检查项目,中医更将扪脉作为诊治疾病的主要方法。诊脉治病是中医学中的一门深不可测的学问。通过诊脉治病是许多老中医集一生甚至几代人的不懈努力积累的极其宝贵的经验。睡眠障碍是许多疾病形成和发展的主要原因,入睡困难是失眠中最常见的一
[医疗电子]
<font color='red'>嵌入式</font>睡眠监控报警仪的研究及设计
嵌入式软件电源能耗优化的方案设计
开发由电池供电的设备,尤其是对设备的待机或操作时间要求比较严格的系统,例如移动电话,降低系统整体的能耗变得越来越重要。 因此采取全面的措施来降低电池能量的消耗是设计电池供电设备的重要部分。 典型的节能措施包括: 1 选择有节能属性的元件 2 提高系统集成度 3 调整CPU主频 4 调整电源供给 5 选择带节能属性的、高速缓冲存储器和片上内存的微控制器 然而,只有通过软件全程的控制各个消耗电池能量的组件,充分的发挥其硬件的节能属性,才能达到最佳的节能效果。能耗是电流,电压和时间的乘积,控制软件对这几个参数都有很大的影响。因此,软件工程师需要经常不断的尝试确定这三个参数在不同的操作模式下的最佳配置,以达到最佳的节能目的。例如工程师可能
[单片机]
<font color='red'>嵌入式</font>软件电源能耗优化的方案设计
捷通华声创造嵌入式应用美好生活
在刚刚结束的IDF2010英特尔信息技术峰会上,让我们看到未来嵌入式应用的腾飞,早在2008年秋季IDF上,英特尔预测到2015年全球将有150亿个嵌入式计算设备与互联网连接。而在中国当前,从智能交通基础设施建设到“物联网”,从车载信息娱乐设备到智能家电,嵌入式设备发展前景广阔。 捷通华声是一家专注于语音合成、手写识别等智能人机交互(简称:HCI)技术的研究与应用,全面发展电信增值服务的高新技术企业,与英特尔有着良好的技术合作关系,成立十年来,在嵌入式研发、应用上做出了卓有成效的贡献。 尤其是近两年来,随着无线互联网的到来及嵌入式产品的不断更新,捷通华声推出了基于谷歌(Google)Android操作系统的手
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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