- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机C语言程序设计实训100例
—基于8051+Proteus仿真》案例
目录
第 一 篇 基础程序设计 1
01 闪烁的LED 1
02 从左到右的流水灯 1
03 8只LED左右来回点亮 2
04 花样流水灯 3
05 LED模拟交通灯 4
06 单只数码管循环显示0~9 6
07 8只数码管滚动显示单个数字 6
08 8只数码管动态显示多个不同字符 7
09 8只数码管闪烁显示数字串 8
10 8只数码管滚动显示数字串 9
11 K1-K4 控制LED移位 10
12 K1-K4 按键状态显示 11
13 K1-K4 分组控制LED 12
14 K1-K4 控制数码管移位显示 13
15 K1-K4 控制数码管加减演示 15
16 4X4矩阵键盘控制条形LED显示 16
17 数码管显示4X4矩阵键盘按键号 18
18 开关控制LED 20
19 继电器控制照明设备 20
20 数码管显示拨码开关编码 21
21 开关控制报警器 22
22 按键发音 23
23 播放音乐 24
24 INT0中断计数 25
25 外部INT0中断控制LED 26
26 INT0及INT1中断计数 27
27 定时器控制单只LED 29
28 TIMER0控制流水灯 30
29 定时器控制4个LED滚动闪烁 30
30 T0控制LED实现二进制计数 31
31 TIMER0与TIMER1控制条形LED 32
32 10s的秒表 33
33 用计数器中断实现100以内的按键计数 35
34 100 000s以内的计时程序 36
35 定时器控制数码管动态显示 38
36 8X8LED点阵显示数字 39
37 按键控制8X8LED点阵屏显示图形 40
38 用定时器设计的门铃 41
39 演奏音阶 42
40 按键控制定时器选播多段音乐 43
41 定时器控制交通指示灯 45
42 报警与旋转灯 47
43 串行数据转换为并行数据 48
44 并行数据转换为串行数据 49
45 甲机通过串口控制乙机LED 50
46 单片机之间双向通信 52
47 单片机向主机发送字符串 56
48 单片机与PC通信 57
第 二 篇 硬件应用 59
01 74LS138译码器应用 59
02 74HC154译码器应用 59
03 74HC595串入并出芯片应用 60
04 74LS148扩展中断 61
06 24C04与数码管 65
07 用6264扩展内存 68
08 用8255实现接口扩展(仿真未成功) 68
09 555定时器实验 70
10 BCD译码数码管显示数字 70
11 MAX7221控制数码管动态显示 71
12 LCD1602字符液晶滚动演示程序 72
19 用ADC0808控制PWM输出 77
20 ADC0809数模转换与显示 78
第 一 篇 基础程序设计
01 闪烁的LED
/* 名称:闪烁的LED
说明:LED按设定的时间间隔闪烁
*/
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i120;i++);
}
}
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
02 从左到右的流水灯
/* 名称:从左到右的流水灯
说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果
*/
#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i120;i++);
}
}
//主程序
void main()
{
P0=0xfe;
while(1)
{
P0=_crol_(P0,1); //P0的值向左循环移动
DelayMS(150);
}
}
03 8只LED左右来回点亮
/* 名称:8只LED左右来回点亮
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果
*/
#includereg51.h
#includeintrins.h
#define uchar unsigned ch
文档评论(0)