/* 名称:数码管显示拨码开关编码说明:系统显示拨码开关所设置的编码 000~255 */#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//各数字的数码管段码(共阴)uchar c
/* 名称:继电器控制照明设备说明:按下 K1 灯点亮,再次按下时灯熄灭*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; sbit RELAY=P2^4;//延时void DelayMS(uint ms){uchar
/* 名称:数码管显示 4X4 矩阵键盘按键号说明:按下任意键时,数码管都会显示其键的序号,扫描程序首先判断按键发生在哪一列,然后根据所发生的行附加不同的值,从而得到按键的序号。*/#include<reg51.h>#define uc
/* 名称:4X4 矩阵键盘控制条形 LED 显示说明:运行本例时,按下 的 按 键 值 越 大 点 亮 的LED 越多。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//矩阵键盘按
K1-K4 控制数码管移位显示/* 名称:K1-K4 控制数码管移位显示说明:按下 K1 时加 1 计数并增加显示位,按下 K2 时减 1 计数并减少显示位,按下 K3 时清零。*/#include<reg51.h>#define uchar unsigned char#define
/* 名称:K1-K4 分组控制 LED*/说明:每次按下 K1 时递增点亮一只 LED,全亮时再次按下则再次循环开始, K2 按下后点亮上面 4 只 LED,K3 按下后点亮下面 4 只 LED,K4 按下后关闭所有 LED #include<reg51.h>#d
/* 名称:K1-K4 按键状态显示说明:K1、K2 按下时 LED 点亮,松开时熄灭,*/ K3、K4 按下并释放时 LED 点亮,再次按下并释放时熄灭; #include<reg51.h>#define uchar unsigned char#define uint unsigned ints
/* 名称:K1-K4 控制 LED 移位说明:按下 K1 时,P0 口 LED 上移一位; #FormatImgID_0# */按下 K2 时,P0 口 LED 下移一位;按下 K3 时,P2 口 LED 上移一位;按下 K4 时,P2 口 LED 下移一位; #include<reg51.h
/* 名称:8 只数码管滚动显示单个数字说明:数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar
/* 名称:单只数码管循环显示 0~9说明:主程序中的循环语句反复将 0~9 的段码送至 P0 口,使数字 0~9 循环显示*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar
/* 名称:LED 模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁 5 次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁 5 此后变红灯,东西向变绿灯,如此重复。*/#include<reg51.h>#define uchar
/* 名称:花样流水灯说明:16 只 LED 分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x
/* 名称:8 只 LED 左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(u
/* 名称:从左到右的流水灯说明:接在 P0 口的 8 个 LED从左到右循环依次点亮,产生走马灯效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int //延时void DelayMS(
/* 名称:闪烁的 LED说明:LED 按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++)
写这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和编程规范有很多不懂的地方,有些是自己以前的编程习惯不好,有些就是基础知识不扎实的表现,所以总结出来。一
1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增
我们知道,51单片机有几个不同的中断源。对于一个系统的设计,通常在初始化程序里面需要定义各个中断等比如:TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0TL1 = 0xfd; // 0xfa=4800 bps 0x
运算符优先级和结合性
附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)带*号的特殊功能寄存器都是可以位寻址的寄存器