《单片机C语言程序设计实训 100 例—基于 8051仿真》案例
第01篇、基础程序设计
01、闪烁的 LED :说明:LED 按设定的时间间隔闪烁
#include<> //(80C51寄存器)
#define uchar unsigned char //(宏定义)
#define uint unsigned int //(宏定义)
sbit LED=P1^0;// ()
注释:i<120
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
uint:最大值为65535;
Uchar:最大值为255;
《单片机C语言程序设计实训 100 例—基于 8051仿真》案例
第01篇、基础程序设计
01、闪烁的 LED :说明:LED 按设定的时间间隔闪烁
R2的值不能太大。
《单片机C语言程序设计实训 100 例—基于 8051仿真》案例
第01篇、基础程序设计
思考题:
int main ( int argc, char *argv[] ); int main () ;
void main() ;
试说明以上函数的区别。
02、从左到右的流水灯
:内部函数描述:
指令函数名: _crol_,_irol_,_lrol_
它返回包含于字符串内的数字,字符串中是一个适当类型的数值。
02、从左到右的流水灯
举例:
_crol_, _cror_:
如二进制数为01010101 那么_crol_(1) 左移1位后将高位补低位。
结果10101010。
02、从左到右的流水灯
说明:接在 P0 口的 8 个 LED :从左到右循环依次点亮,产生走马灯效果。
#include<>
#include<> ;//内部函数描述
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
P0=0xfe;
while(1)
{
P0=_crol_(P0,1); //P0 的值向左循环移动
DelayMS(150);
}
}
02、从左到右的流水灯
LED是共阳极接线。
02、从左到右的流水灯
03、8 只 LED 左右来回点亮
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
名称:8 只 LED 左右来回点亮。
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果。
//主程序
void main()
{
uchar i;
P2=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //P2 的值向左循环移动
DelayMS(150);
}
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //P2 的值向右循环移动
DelayMS(150);
}
单片机100例 来自淘豆网m.daumloan.com转载请标明出处.