资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机原理与应用实验文档存放目录:一、 实验题目:实验 1:按键声光报警实验 实验 5:8255 并行 I/O 扩展及交通信号灯控制实验 实验 7:7279 键盘扫描及动态 LED 显示实验二、 实验要求实验1:本实验联系静态按键识别,发光二极管驱动,要求利用外部硬件中断,按键按下一次产生一次外部中断,在中断服务程序中计数器加 1,同时,通过发光二极管的闪烁和蜂鸣器响的次数,指示计数器的当前值。当计数到10 时,再次按键将重新从 1 开始计。实验2:本实验利用 8255 实现可编程的并行 IO 扩展功能,并利用其完成交通灯控制。实验要求红灯常亮 30S,绿灯常亮 25S 后闪烁 5S。使用静态数码管显示绿灯常亮倒计时。本实验中的东西方向信号灯同步控制,南北方向信号灯同步控制,即:东西方向上同种颜色的灯同时亮或灭,南北方向上同种颜色的灯同时亮或灭。实验3:本实验利用 7279 进行键盘扫描及动态 LED 数码管显示控制。当按下某个按键时所按按键对应的字符显示在最右端 LED 数码管上,如果再次按下一个按键2,则原来显示的内容往左移 1 位,将新按下的按键2,的字符显示在最右端,依次类推显示0F。三、 实验过程及结果记录(截图) 实验1 实验2 实验3 四、 实验源程序 实验1 #include#define uint unsigned int#define uchar unsigned charsbit bell=P31; /P3.1口位赋值给铃声sbit led=P30; /P3.0口位赋值给灯sbit key0=P32; /P3.2口位赋值给按键uint count;void delay(uint count) /延时1ms uint x,y; for(x=count;x0;x-) for(y=110;y0;y-); void show(uint count) uint i;for(i=0;i=10)count=0; EA=1; /开放中断/*主程序*/void main() EA=1; /开放中断EX0=1; /允许外部中断0中断IT0=0; /外部中断0为电平触发方式while(1); /循环执行 实验2 #include#include#include #define uchar unsigned char#define uint unsigned int#define PA XBYTE0x7FFC/CS-A15#define COM XBYTE0x7FFFsbit P30=P30;sbit P31=P31;uint temp,shi,ge,t;uchar a;void xianshi(uint temp);void delay();void delays();void init_8255();void init_8255()COM=0x80; / c = out, a = out,b = outvoid delay() /延时500MS子程序 uint i,j; for( i=500;i0;i-) for(j=120;j0;j-);void delays() /延时1S子程序 uint i,j; for(i=1000;i0;i-) for(j=120;j0;j-);/*主程序*/void main() init_8255(); TMOD=0x01; /设定工作模式1 EA=1; /开放中断 ET0=1; /允许T0中断 TF0=0; /定时器0溢出标志位 while(1) a=0x26; /变量a赋初值 for(temp=25;temp19;temp-) /绿灯倒计时25s a=a-1; PA=0x69; /东西绿灯亮 xianshi(a); /调用数码管显示子程序 delays(); /延时1s a=0x1a; /变量a赋值 for(temp=19;temp9;temp-) /倒计时 a=a-1; PA=0x69; /东西绿灯亮 xianshi(a); delays(); a=0x0a; for(temp=9;temp0;temp-) a=a-1; PA=0x69; xianshi(a); delays(); for(t=5;t0;t-) /绿灯闪烁5s a=0; /当计时值为0时闪烁xianshi(a); PA=0xeb; /东西绿灯灭 delay(); /延时0.5s PA=0x69; /东西绿灯亮 delay(); /延时0.5s a=0x26; for(temp=25;temp19;temp-) /绿灯倒计时25s a=a-1; PA=0x96; /南北绿灯亮 xianshi(a); delays(); a=0x1a; for(temp=19;temp9;temp-) a=a-1; PA=0x96; xianshi(a); delays(); a=0x0a; for(temp=9;temp0;temp-) a=a-1; PA=0x96; xianshi(a); delays(); for(t=5;t0;t-) /绿灯闪烁5s a=0; /当计时值为0时闪烁xianshi(a); PA=0xbe; /南北绿灯灭 delay(); /延时0.5s PA=0x96; /南北绿灯亮 delay(); /延时0.5s void xianshi(uint a) /显示子程序 SCON=0x00; /工作模式0 SBUF=a; /将变量a的值送给缓存寄存器 while(!TI) /等待发送是否完成 TI=0; /中断标志位清零 实验3 #includer
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号