/* 名称:ADC0809 数模转换与显示说明:ADC0809 采样通道 3 输入的模拟量,转换后的结果显示在数码管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//各数字的数码管段码(共阴)uc
/* 名称:用 ADC0808 控制 PWM 输出说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度,运行程序时,通过虚拟示波器观察占空比的变化。*/#include<reg51.h>#define uchar unsigned char#define
/* 名称:单片机与 PC 通信说明:单片机可接收 PC 发送的数字字符,按下单片机的K1 键后,单片机可向 PC 发送字符串。在 Proteus 环境下完成本 实 验 时 , 需 要 安 装 Virtual Serial Port Driver 和串口调试助手
/* 名称:单片机向主机发送字符串说明:单片机按一定的时间间隔向主机发送字符串,发送内容在虚拟终端显示。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint ms)
/* 名称:甲机串口程序说明:甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P1^0; sbit LED2
/* 名称:甲机发送控制命令字符说明:甲单片机负责向外发送控制命令字符“A”、“B”、“C”,或者停止发送,乙机根据所接收到的字符完成 LED1 闪烁、LED2 闪烁、双闪烁、或停止闪烁
/* 名称:报警与旋转灯说明:定时器控制报警灯旋转显示,并发出仿真警报声。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit SPK=P3^7;uchar FRQ=0x00; //延时
/* 名称:按键控制定时器选播多段音乐说明:本例内置 3 段音乐,K1 可启动停止音乐播放,K2 用于选择音乐段。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit
/* 名称:演奏音阶说明:本例使用定时器演奏一段音阶,播放由 K1 控制。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; sbit SPK=P3^4; uint i=0; //音符索引//14 个
/* 名称:用定时器设计的门铃说明:按下按键时蜂鸣器发出叮咚的门铃声。*/#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
/* 名称: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
/* 名称:T0 控制 LED 实现二进制计数说明:本例对按键的计数没有使用查询法,没有使用外部中断函数,没有使用定时或计数中断函数。而是启用了计数器,连接在 T0 引脚的按键每次按下时,会使计数寄存器的值递增,其
/* 名称: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