云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 西南科技大学单片机上机考试题答案

西南科技大学单片机上机考试题答案

  • 62 次阅读
  • 3 次下载
  • 2026/4/23 7:58:03

/*********************************************************************** ** 函数名称: main() ** 功 能: 程序入口 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void main(void) { P1=0xcf; // 初始化 IT1=1;//脉冲触发方式 EX1=1; TimeT1(); EA = 1; // 开中断 delay(500); while( 1 ) // 主循环 {

if(bAD_Val<=51) { P1_0=0; } if(bAD_Val>=204) { P1_1=0; } if(bAD_Val>51&&bAD_Val<204) { P1_0=1; P1_1=1; } } }

/*********************************************************************** ** 函数名称: INT_INT1()

** 功 能: INT1中断服务程序,使用工作寄存器组1 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void INT_INT1(void) interrupt 2 using 1 {

bAD_Val=AD_Read(6); // 此处添加读和保存AD转换结果的语句(结果保存到bAD_Val) }

/*********************************************************************** ** 函数名称: INT_T1()

** 功 能: T1中断服务程序,使用工作寄存器组1 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void INT_T1() interrupt 3 using 1 { static int bCount = 2; // 秒计数 TH1=TIMER1DEF/256; // 重置定时常数的语句

TL1=TIMER1DEF%6; if( --bCount == 0) // 判断100毫秒时间到 { bCount=2; //重置秒计数的语句 AD_Convert(6); //启动AD转换的语句 } }

/****************************************************************************************

* @file 汉字显示

* @author 秘密作战实验室(FREE) * @version v1.0

* @date 2015-06-26

* 功 能: 在8X8的LED点阵显示器上显示汉字“大”(硬件电路参见Displayer_dot.DSN)。

***************************************************************************************/

#include\

unsigned char Line[]={0x10,0x10,0xff,0x10,0x28,0x24,0x42,0x81}; unsigned char Row[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(unsigned int time) {

unsigned int i,j; for(i=0;i

void SendData(unsigned char dat) {

SBUF = dat; while(!TI); TI = 0; }

void SendString(unsigned char *s) {

while(*s!='\\0')// \\0 表示字符串结束标志,通过检测是否字符串末尾 {

SendData(*s++); } }

void display(void) { unsigned char i=0; for(i=0;i<8;i++) { SendData(Line[i]); P1=Row[i]; delay(70); } }

void main(void) {

SCON=0x00; P1=0x00;//关闭显示 while(1) { display(); } }

/*********************************************************************** * 文件名: 两个模拟信号差超限时报警

* 功 能: 利用0809采集两路模拟电压,当两电压值相差超过1V时,蓝色LED亮, 此时若低通道号的电压值大,红色LED亮;若高通道号的电压值大,则黄色LED亮。 (硬件电路参见AD_CH2_2.DSN)。

***********************************************************************/ #include //宏定义

#define TIMER1DEF ( 65536 - 50000 ) #define AD_Convert(i) (*((unsigned char volatile xdata *) (0x3c00 + i)) = 0) #define AD_Read(i) (*((unsigned char volatile xdata *) (0x3c00 +i))) //全局变量定义

unsigned int bAD_Val_1=0; // 转换结果 unsigned int bAD_Val_5=0; unsigned int flag=0; sbit P1_0=P1^0; sbit P1_3=P1^3; sbit P1_5=P1^5;

/*********************************************************************** ** 函数名称: delay() ** 功 能: 延时n毫秒 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void delay(int time) { int i,j;

for(i=0;i

/*********************************************************************** ** 函数名称: TimeT1()

** 功 能: T1定时器初始化 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void TimeT1() { IT1=1; ET1=1; EX1=1; PT1=1;

TMOD=0X10;

TH1=TIMER1DEF/256; TL1=TIMER1DEF%6; TR1=1; EA =1; }

/*********************************************************************** ** 函数名称: main() ** 功 能: 程序入口 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void main(void) {

// 初始化 P1=0xff; TimeT1(); delay(5); while( 1 ) // 主循环 {

if((bAD_Val_1-bAD_Val_5)>51) { P1_0=0; P1_3=0; }

else if((bAD_Val_5-bAD_Val_1)>51) { P1_0=0; P1_5=0; } else P1=0xff; } }

/*********************************************************************** ** 函数名称: INT_INT1()

** 功 能: INT1中断服务程序,使用工作寄存器组1 ** 入口参数: 无 ** 出口参数: 无

***********************************************************************/ void INT_INT1(void) interrupt 2 using 1 { // 此处添加保护现场内容的语句(如果需要) // 此处添加读和保存AD转换结果的语句(结果保存到bAD_Val) if(flag==1) bAD_Val_1=AD_Read(1); if(flag==2) { bAD_Val_5=AD_Read(5); flag=0; } // 此处添加恢复现场内容的语句(如果需要) }

搜索更多关于: 西南科技大学单片机上机考试题答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

/*********************************************************************** ** 函数名称: main() ** 功 能: 程序入口 ** 入口参数: 无 ** 出口参数: 无 ***********************************************************************/ void main(void) { P1=0xcf; // 初始化 IT1=1;//脉冲触发方式 EX1=1; TimeT1(); EA = 1; // 开中断 delay(500); while( 1 ) // 主循环 { if(bAD_Val<=51) { P1_0=0; } if(b

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com