/* 名称:用定时器设计的门铃说明:按下按键时蜂鸣器发出叮咚的门铃声。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit Key=P1^7;sbit DoorBell=P3^0;uint p=0;//主程序void main
/* 名称:按键控制 8X8LED 点阵屏显示图形说明:每次按下 K1 时,会使 8X8LED点阵屏循环显示不同图形。本例同时使用外部中断和定时中断。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#d
/* 名称:按键控制 8X8LED 点阵屏显示图形说明:每次按下 K1 时,会使 8X8LED点阵屏循环显示不同图形。本例同时使用外部中断和定时中断。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#d
/* 名称:定时器控制数码管动态显示说明:8 个数码管上分两组动态显示年月日与时分秒,本例的位显示延时用定时器实现。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned i
/* 名称:100 000s 以内的计时程序说明:在 6 只数码管上完成 0~99 999.9s。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//段码uchar codeDSY_CODE[]={0x3f,0x06,
/* 名称:用计数器中断实现 100 以内的按键计数说明:本例用 T0 计数器中断实现按键技术,由于计数寄存器初值为 1,因此 P3.4 引脚的每次负跳变都会触发 T0 中断,实现计数值累加。计数器的清零用外部中断 0 控制
/* 名称:10s 的秒表 说明:首次按键计时开始,再次按键暂停,第三次按键清零。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P3^7; uchari,Second_Counts,Key_Flag_Idx
标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C51中,直接调用库函数:#include // 声明了void _nop_(void);_nop
/* 名称:TIMER0 与 TIMER1 控制条形 LED说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快定时器 T1 定时控制下一组条形 LED,滚动速度较慢*/#include<reg51.h>#include<intrins.h>#define uchar unsigned ch
/* 名称:T0 控制 LED 实现二进制计数说明:本例对按键的计数没有使用查询法,没有使用外部中断函数,没有使用定时或计数中断函数。而是启用了计数器,连接在 T0 引脚的按键每次按下时,会使计数寄存器的值递增,其
/* 名称:定时器控制 4 个 LED 滚动闪烁说明:4 只 LED 在定时器控制下滚动闪烁。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit B1=P0^0; sbit G1=P0^1; sbit R1=P0^2; sbit Y1=P0
/* 名称:TIMER0 控制流水灯说明:定时器控制 P0、P2口的 LED 滚动显示,本例未使用中断函数。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//主程序void main(){u
/* 名称:定时器控制单只 LED说明:LED 在定时器的中断例程控制下不断闪烁。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P0^0; uchar T_Count=0; //主程序void main(){ TMOD
程序能跑起来并不见得你的代码就是很好的c代码了,衡量代码的好坏应该从以下几个方面来看1,代码稳定,没有隐患。2,执行效率高。3,可读性高。4,便于移植。下面发一些我在网上看到的技巧和自己的一些经验来和大家分
/* 名称:INT0 及 INT1 中断计数说明:每次按下第 1 个计数键时,第 1 组计数值累加并显示在右边 3 只数码管上, 每次按下第 2 个计数键时,第2 组计数值累加并显示在左边 3 只数码管上,后两个按键分别清零。*/#in
/* 名称:外部 INT0 中断控制 LED说明:每次按键都会触发 INT0 中断,中断发生时将 LED 状态取反,产生 LED 状态由按键控制的效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LE
/* 名称:INT0 中断计数说明:每次按下计数键时触发INT0 中断,中断程序累加计数,计数值显示在 3 只数码管上,按下清零键时数码管清零*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//
/* 名称:播放音乐说明:程序运行时播放生日快乐歌, 未使用定时器中断,所有频率完全用延时实现*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P3^7;//生日快乐歌的音符频率表
/* 名称:按键发音说明:按下不同的按键会是 SOUNDER 发出不同频率的声音。本例使用延时函数实现不同频率的声音输出,以后也可使用定时器*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int
/* 名称:开关控制报警器说明:用 K1 开关控制报警器,程序控制 P1.0 输出两种不同频率的声音,模拟很逼真的报警效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit SPK=P1^0;sbit