西南科技大学单片机上机考试题答案(共23页).doc
《西南科技大学单片机上机考试题答案(共23页).doc》由会员分享,可在线阅读,更多相关《西南科技大学单片机上机考试题答案(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上/* * file 识别最大模拟输入通道 * author 秘密作战实验室(FREES) * version v1.0 * date 2015-06-26 * 功 能:利用0809采集两路模拟电压, 将电压值最大的通道号显示在LED显示器上。(硬件电路参见AD_CH2_1.DSN)。 * */#include /51单片机头文件#include /宏定义#defineTIMER1DEF( 65536 - 50000 ) /定时时间#defineAD_Convert(i)(*(unsigned char volatile xdata *) (0x3c00 + i) =
2、0) /返回片外地址#defineAD_Read(i)(*(unsigned char volatile xdata *) (0x3c00 + i) /全局变量定义int Flag=0;intbAD_Val_2 = 0;/ AD通道2转换结果intbAD_Val_7 = 0;/ AD通道7转换结果int table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共阳数码管0-9 /* 函数名称:delay(n)* 功 能:程序延时n ms* 入口参数:无* 出口参数:无*/void delay(int n)/int i=0,j=0;
3、for(i=n;i0;i-)for(j=114;j0;j-); /* 函数名称:TimeT1()* 功 能:定时器1初始化 50ms定时* 入口参数:无 * 出口参数:无*/void TimeT1() TMOD=0X10; /定时器1 方式1TH1=TIMER1DEF/256;/装定时初值高8位,定时50ms 计算公式 高位us=(65535-50000)/256TL1=TIMER1DEF%256;/装定时初值低8位,定时50ms 计算公式 低位us=(65535-50000)%256PT1=1; /定时器1 中断优先级 高ET1=1; /定时器1 中断控制位 TR1=1; /定时器1 启动控
4、制位/* 函数名称:main()* 功 能:程序入口* 入口参数:无* 出口参数:无*/void main(void)/-加油/ 初始化P1=0Xff;/外部中断初始化IT1=1; /脉冲触发方式1:负跳变沿有效0:EX1=1; /外部中断1中断控制位TimeT1(); /定时器1初始化EA = 1; / 开中断delay(500);while( 1 ) / 主循环 delay(50); if(bAD_Val_2=bAD_Val_7) P1=table2; if(bAD_Val_7bAD_Val_2) P1=table7;/* 函数名称:INT_INT1()* 功 能:INT1中断服务程序,使
5、用工作寄存器组1* 入口参数:无* 出口参数:无*/voidINT_INT1(void)interrupt 2 using 1if(Flag=1) bAD_Val_2=AD_Read(2);if(Flag=2) bAD_Val_7=AD_Read(7);/* 函数名称:INT_T1()* 功 能:T1中断服务程序,使用工作寄存器组1* 入口参数:无* 出口参数:无*/voidINT_T1() interrupt 3 using 1static intbCount = 3 ; -bCount; TH1=TIMER1DEF/256; TL1=TIMER1DEF%256;if( bCount = 2
6、)Flag=1;AD_Convert(2);if(bCount=1)Flag=2;AD_Convert(7);if(bCount=0) bCount=4;/* * file 按键扫描 * author 秘密作战实验室 * version v1.0 * date 2015-06-26 * 功 能:利用8255的PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8255.DSN)。 当18号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮), 当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。*/#includereg52.h#incl
7、udeabsacc.h /Direct access to 8051sbit CS=P27; /片选段 #define PA XBYTE0x0000/定义端口A地址#define PB XBYTE0x0400/定义端口B地址#define PC XBYTE0x0800/定义端口C地址#define CN XBYTE0xC000/定义控制口地址unsigned char Key_Scanf(void)/按键扫描函数unsigned char key=0;PC=0xFB;/把PC2置0,PC1和PC0置1第一列if(PC=0xDB)key=1;if(PC=0xBB)key=4;if(PC=0x7B
8、)key=7;PC=0xFD;/把PC1置0,PC2和PC0置1第二列if(PC=0xDD)key=2;if(PC=0xBD)key=5;if(PC=0x7D)key=8;PC=0xFE;/把PC0置0,PC2和PC1置1第三列if(PC=0xDE)key=3;if(PC=0xBE)key=6;if(PC=0x7E)key=9;return(key);void main(void) /给我最亲爱的女盆友 unsigned int a=0xff; CS=0;CN=0x88;/8255初始化,写控制字while(1)switch(Key_Scanf()case 0:PA=0xff;break; c
9、ase 1:PA=0xfe;break;case 2:PA=0xfd;break; case 3:PA=0xfb;break;case 4:PA=0xf7;break;case 5:PA=0xef;break;case 6:PA=0xdf;break;case 7:PA=0xbf;break;case 8:PA=0x7f;break;case 9:PA=0x00;break;default:break; /* * file 50Hz锯齿波 * author 秘密作战实验室 (Frees) * version v1.0 * date 2015-06-26 * 功 能:利用0832同步输出两个频率
10、为50赫兹的锯齿波(硬件电路参见DA_BUF2_1.DSN)。*/#includereg52.h#includeabsacc.h#define DA_1 XBYTE0x2000/设置DAC08321的选通地址#define DA_2 XBYTE0x2400/设置DAC08322的选通地址#define DA_S XBYTE0x3c00/设置DAC0832的选通地址unsigned int DAVAL=0;void delay(unsigned int time)unsigned int i=0,j=0;for(i=0;itime;i+)for(j=0;j=255)DAVAL=0;/* * fi
11、le Pwm发生器 * author 秘密作战实验室 * version v1.0 * date 2015-06-26 * 功 能:在硬件电路PWM.DSN中实现P1.7输出PWM波。周期T=100ms,初始占空比(T1/T)为50%, 按键KEY1每次增加占空比10%(直到90%),KEY2每次减小占空比10%(直到10%)。 */#includereg52.hsbit Key0=P10;/P10sbit Key1=P11;/P11sbit PWM=P17;unsigned char num=0,Duty=5;void Delay(unsigned int time)unsigned int
12、 i=0,j=0;for(i=0;itime;i+)for(j=0;j1?Duty:1;Duty=Duty9?Duty:9;void Timer0_Inits(void)TMOD|=0x01;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TR0=1;ET0=1;EA=1;void main(void)Timer0_Inits();while(1)Key_Scanf();void PIT0(void) interrupt 1TH0=(65535-10000)/256;TL0=(65535-10000)%256;+num;if(num9)num=0;/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 科技大学 单片机 上机 考试题 答案 23
限制150内