资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机,学号:12011011 班级:通号000 姓名:武铁学院,单片机介绍,单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路,了,解,一,下,8051单片机的图片,单片机微机接口设备箱,单片机晶振电路图,实训任务,两个两个点亮 三个三个点亮 左边亮四个 右边亮四个且循环 碰头灯 电子钟 交通信号灯 间隔点亮,P1接口电路连接图,项目一,实验效果:两个两个点亮,原理图,程序框图,两个两个点亮C语言程序,#include char H=12; char K=48; char Y=192; void delay() unsigned int i;for (i=0; i20000; i+) ,附:,void main() /主函数 unsigned char index;unsigned char LED;while (1) LED = 129;for (index=0; index 8; index+) P1 = LED;delay();P1=H; delay();P1=K;delay();P1=Y;delay(); ,项目二,三个三个点亮,三个三个点亮C语言程序,#include char H=56; char K=193; char Y=14; void delay() unsigned int i;for (i=0; i20000; i+) ,附:,void main() unsigned char index;unsigned char LED;while (1) LED = 7;for (index=0; index 8; index+) P1 = LED;delay();P1=H; delay();P1=K;delay();P1=Y;delay(); ,项目三,四个四个点亮且循环,四个四个点亮C语言程序,#include char R= 240; char Q=15; void delay() unsigned int i;for (i=0; i20000; i+) ,void main() unsigned char index;unsigned char LED;while (1) LED =0;for (index=0; index 8; index+) P1 = LED;delay();P1=R;delay();P1=15;delay(); ,项目四,由两边向中间由中间向两边,C语言程序,#include char H=66; char K=36; char Y=24; void delay() unsigned int i;for (i=0; i20000; i+) ,void main() unsigned char index;unsigned char LED;while (1)LED = 129;for (index=0; index = 1; / 显示下一位 ,#define Tick 10000 / 10000 x 100us = 1s #define T100us (256-50) / 100us时间常数(6M) unsigned char Hour, Minute, Second; unsigned int C100us; / 100us记数单元 void T0Int() interrupt 1 C100us-; if (C100us = 0) C100us = Tick; / 100us 记数器为0, 重置记数器 Second+; if (Second = 60) Second = 0; Minute+; if (Minute = 60) Minute = 0; Hour+; if (Hour = 24) Hour = 0; ,void main() TMOD = 0x02; / 方式2, 定时器 TH0 = T100us; TL0 = T100us; IE = 0x82; / EA=1, IT0 = 1 Hour = 0; Minute = 0; Second = 0; C100us = Tick; TR0 = 1; / 启动定时器0 while (1) LEDBuf0 = LEDMAPHour/10; LEDBuf1 = LEDMAPHour%10 | 0x80; LEDBuf2 = LEDMAPMinute/10; LEDBuf3 = LEDMAPMinute%10 | 0x80; LEDBuf4 = LEDMAPSecond/10; LEDBuf5 = LEDMAPSecond%10; DisplayLED(); ,项目六,交通信号灯,初始化,东西绿灯亮 南北红灯亮,延时20S,东西绿熄灭 南北黄灯亮,延时5S,东西黄熄灭 东西红灯亮,延时2S,南北红熄灭 南北绿灯亮,延时20S,南北绿熄灭 南北黄点亮,延时5S,南北黄熄灭 南北红灯亮,延时2S,流程图,交通信号灯C语言程序,#include #define uchar unsigned char #define uint unsigned intsbit RED_A=P00; sbit YELLOW_A=P01; sbit GREEN_A=P02; sbit RED_B=P03; sbit YELLOW_B=P04; sbit GREEN_B=P05;uchar Flash_Count = 0; Operation_Type = 1;,void DelayMS(uint x) uchar t;while(x-)for(t=120;t0;t-); void Traffic_lignt() switch(Operation_Type)case 1:RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;DelayMS(2000);Operation_Type = 2;break;,case 2:DelayMS(200);YELLOW_A=YELLOW_A;if(+Flash_Count !=10) return;Flash_Count=0;Operation_Type = 3;break;case 3:RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;DelayMS(2000);Operation_Type = 4;break;,case 4:DelayMS(200);YELLOW_B=YELLOW_B;if(+Flash_Count !=10) return;Flash_Count=0;Operation_Type = 1;break; void main() while(1)Traffic_lignt(); ,项目七,间隔点亮,间隔点亮C语言程序,#include /定义8051寄存器的头文件 void delay() /延时函数 unsigned int i; /声明整数变量for (i=0; i20000; i+) ,void main() /主函数 unsigned char index;unsigned char LED;while (1) /无穷循环程序一直运行LED = 1; /初始值只有第一个点亮for (index=0; index 8; index+) /LED的个数P1 = LED; LED = 2;/右移2位delay();/调用延时函数 ,谢,谢,!,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号