单片机笔记3 单片机C语言编程过程常用的一些语句

标签:
校园 |
分类: 单片机笔记 |
单片机笔记3
单片机C语言编程过程常用的一些语句
1、对AT89S52的四个8位并行I/O口的某一位单独使用时,位定义语句:
sbit LED0=P1^0;
其中LED0为给该位定义的新名字,调用该名就相当于调用单片机的该位的引脚。
2、循环左移函数、循环右移函数
P0=_crol_(P0,1); // _crol_(P0,1)为循环左移函数,付给P0的值每次左移一位,通过改变括号
//内的参数来确定每次左移的位数
//下面是一段AT89S52单片机的流水灯程序:
#include
#include
void delay1ms(unsigned int i)
{
unsigned char
j;
void main()
{
//内的参数来确定每次左移的位数
}
3、无缘蜂鸣器音频函数
有时候在单片机开发时会用到一些无源的蜂鸣器,这个时候我们就需要自己编写程序为其提供合适的发音频率:我们以可以在1KHz音频下发生的无缘蜂鸣器为例,编写一个产生1KHz频率声音的函数,供以后编程时修改调用:
//程序代码如下:
void
beep()
{
}
4、一位数组的定义
//下面是用一位数组存储共阳数码管的代码:
unsigned char code s8[16]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//unsigned char 确定数组元素的类型;code
前面加关键字code
,可以大大节约单片机的存储空间;
s8 为数组名;
5、键盘消抖
http://s13/bmiddle/9af50358gx6BvJQjBUSa2&690
http://s8/bmiddle/9af50358gx6BvJIE5jX09&690
http://s10/bmiddle/9af50358gx6BvJSWUn9ab&690
按键消抖我们在程序中一般用软件消抖,我们一般会采取前沿消抖,而对后沿抖动我们用一个等待按键释放语句进行消抖,因为不同的按键在不同的环境下后沿抖动的时间相差甚大,一般比较长,所以我们很难确定后沿消抖时需要一个多长时间的延时。
下面以一个独立按键使数码管显示的数字增加的程序进行说明:
//程序代码如下:
#include
sbit
k5=P1^4;
sbit
smg=P2^7;
unsigned int code s8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay1ms(unsigned int
ms)
{
}
void main()
{
//产生按键响应
}