- 0
- 0
- 约6.16千字
- 约 7页
- 2023-08-23 发布于上海
- 举报
设计题复习题
1、试设计一个基于数码管的,能显示自己学号后八位的系统。要求画出硬件连接图(?分)、
程序清单(?分)、运行效果(?分)。
sfr P0=0x80;
sfr P2=0xA0;
sfr P3=0xb0;
// 0, 1, 2, 3
0x99,0x92,0x82,0xf8,0x80,0x90,
unsigned xuehao[8]={1,9,9,0,1,1,0,6};学号 //
void delayk(unsigned int x)
{unsigned int i,j;
for(i=0;ix;i++)
for(j=0;j100;j++) ;
}
main()
{
unsigned char wz,i,j;
while(1)
{
wz=0xfe;
for(i=0;i8;i++)
{
P2=wz;
P0=showdate[ xuehao[i] ];
wz=wz1|0x01;
delayk(2);
}
}
2、试设计一个89S52单片机流水灯系统,带两个方向控制按键,中断方式,随时切换方向。
要求画出硬件连接图(?分)、程序清单(?分)、运行效果(?分)。
#include reg52.h
#define m 200
unsigned char flag;
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
delay(int x)
{ int i,j;
for(i=0;ix;i++)
for(j=0;j120;j++);
}
main()
{int i,j; unsigned char LED;
IE=0x83; //初始化中断int0,int1
TCON=0x05;
flag=5; //初始化方向标志,5 不动 1 往左 0 往右
LED=0xfe;
while(1)
{
P0=led;
if (flag==1)
{
led=led1|0x01;
if(led==0xff) led=0xfe;
}
else if (flag==0)
{
led=led1|0x80;
if(led==0xff) led=0x7f;
}
delay(m);
}
}
void key1(void) interrupt 0 //往左按键
{
flag=1;
}
void key2(void) interrupt 3 //往右按键
{
flag=0;
}
3、试设计一个脉冲发生器,f=2Hz。要求画出硬件连接图(?分)、程序清单(?分)、
运行效果(?分)。
//==声明区================================
#include reg51.h // 定义8x51 暂存器之标头档,P2-17~19
Sbit maichong=P1^1 // 定义Port 1.1 为脉冲输出
#define count 50000 // T0(MODE 1)之计量值,约0.05 秒(7-8 页)
#define TH_M1 (65636-count)/256 // T0(Mode 1)计量高8 位元
#define TL_M1 (65636-count)%256 // T0(Mode 1)计量低8 位元
//==主程序================================
main() // 主程序开始
{ int i; // 宣告i 变数
TMOD = 0xf1; // 设定T0 为mode 1(7-3 页)
TMOD |= 0x01;
原创力文档

文档评论(0)