山东大学单片机硬件实验Word文件下载.docx
- 文档编号:14599557
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:16
- 大小:198.47KB
山东大学单片机硬件实验Word文件下载.docx
《山东大学单片机硬件实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《山东大学单片机硬件实验Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitbell=P3^1;
//P3.1口位赋值给铃声
sbit led=P3^0;
//P3.0口位赋值给灯
sbitkey0=P3^2;
//P3.2口位赋值给按键
uint count;
voiddelay(uint count) //延时1ms
ﻩ{
uint x,y;
ﻩfor(x=count;
x>0;
x--)
for(y=110;
y>
0;
y--);
}
voidshow(uintcount)
{uint i;
for(i=0;
i<
=count;
i++)
{
led=0;
bell=0;
//灯亮,铃响
delay(500);
//延时0.5s
led=1;
bell=1;
//灯灭,铃不响
delay(500);
}
}
voids_timer0() interrupt0using0
{
EA=0;
//屏蔽所有中断请求
ﻩshow(count);
//调用子程序
count++;
ﻩdelay(50);
if(count>
=10)
ﻩcount=0;
EA=1;
//开放中断
/**************************主程序**********************************/
void main()
{EA=1;
//开放中断
EX0=1;
//允许外部中断0中断
IT0=0;
//外部中断0为电平触发方式
ﻩwhile
(1);
//循环执行
实验2
#include<reg51.h>
#include<
stdio.h>
#include<absacc.h>
#defineucharunsigned char
#defineuint unsignedint
#definePAﻩXBYTE[0x7FFC]//CS--A15
#define COMﻩXBYTE[0x7FFF]
sbitP30=P3^0;
sbit P31=P3^1;
uinttemp,shi,ge,t;
uchara;
void xianshi(uinttemp);
void delay();
voiddelays();
voidinit_8255();
voidinit_8255()
ﻩCOM=0x80;
ﻩ // c= out,a = out,b= out
voiddelay() //延时500MS子程序
uinti,j;
for(i=500;
i>0;
i--)
for(j=120;
j>
j--);
voiddelays() //延时1S子程序
uinti,j;
for(i=1000;
i>
0;
i--)
for(j=120;
0;
j--);
/***************************主程序*****************************/
voidmain()
{
init_8255();
TMOD=0x01;
//设定工作模式1
EA=1;
//开放中断
ET0=1;
//允许T0中断
TF0=0;
//定时器0溢出标志位
while
(1)
{
a=0x26;
//变量a赋初值
for(temp=25;
temp>
19;
temp--) //绿灯倒计时25s
{
a=a-1;
PA=0x69;
//东西绿灯亮
xianshi(a);
//调用数码管显示子程序
ﻩdelays();
//延时1s
}
a=0x1a;
//变量a赋值
for(temp=19;
temp>
9;
temp--)//倒计时
{
a=a-1;
PA=0x69;
//东西绿灯亮
xianshi(a);
ﻩdelays();
}
a=0x0a;
for(temp=9;
temp>0;
temp--)
{
a=a-1;
PA=0x69;
xianshi(a);
delays();
}
for(t=5;
t>0;
t--) //绿灯闪烁5s
{
a=0;
//当计时值为0时闪烁
ﻩxianshi(a);
PA=0xeb;
//东西绿灯灭
delay();
//延时0.5s
PA=0x69;
//东西绿灯亮
delay();
//延时0.5s
}
a=0x26;
for(temp=25;
temp>19;
temp--) //绿灯倒计时25s
{
a=a-1;
PA=0x96;
//南北绿灯亮
xianshi(a);
delays();
}
a=0x1a;
for(temp=19;
temp>9;
temp--)
PA=0x96;
xianshi(a);
ﻩdelays();
}
a=0x0a;
for(temp=9;
temp>
temp--)
{
a=a-1;
PA=0x96;
xianshi(a);
delays();
}
for(t=5;
t--) //绿灯闪烁5s
a=0;
//当计时值为0时闪烁
xianshi(a);
PA=0xbe;
//南北绿灯灭
delay();
//延时0.5s
PA=0x96;
//南北绿灯亮
delay();
//延时0.5s
}
void xianshi(uinta) //显示子程序
SCON=0x00;
//工作模式0
SBUF=a;
//将变量a的值送给缓存寄存器
while(!
TI) //等待发送是否完成
TI=0;
//中断标志位清零
实验3
#include<reg51.h>
#include<
stdio.h>
sbitCS=P1^0;
//cs atP1.0
sbitCLK=P1^1;
// clk连接于 P1.1
sbitDATA=P1^2;
// dat连接于P1.2
sbitKEY=P1^3;
//key 连接于P1.3
//********************HD7279A 指令******************/
#defineRESET0xa4 // 复位指令
#defineRL 0xa1 //左移指令
#defineDECODE10xc8 //译码方式1
#defineREAD0x15 //读键盘指令
/*********************长延时子程序******************/
voidldelay() //25us
unsignedchara,b;
for(b=1;
b>
b--)
for(a=20;
a>
0;
a--);
/***************短延时子程序****************/
voidsdelay()
unsignedchara;
for(a=3;
voidsend(unsigned charout) //发送一个字节
unsignedchari;
CS=0;
//芯片使能
ﻩldelay();
//长延时
for(i=0;
i<8;
i++) //分8次移入数据
ﻩif(out&0x80) //先传高位
ﻩﻩDATA=1;
elseDATA=0;
ﻩCLK=1;
sdelay();
ﻩCLK=0;
ﻩsdelay();
ﻩﻩout=out<
<1;
//数据左移
DATA=0;
void write(unsigned charcommand,unsignedchardat)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东大学 单片机 硬件 实验