SCI,异步串行通信接口,内置独立的波特率产生电路和SCI收发器,可以选择发送8或9个数据位(其中一位可以指定为奇或偶校验位)。

  SCI是全双工异步串行通信接口,主要用于MCU与其他计算机或设备之间的通信,几个独立的MCU也能通过SCI实现串行通信,形成网络。

  MC12里有两个SCI(SCI0和SCI1)。设计SCI串口通信程序,主要是掌握八个寄存器,设置好初始化。

利用SCI做的一个足球答题系统   ,代码如下:

 /*******************************************************/
/* 利用SCI做的一个足球答题系统 */
/*******************************************************/
#include <hidef.h> /* common defines and macros */
#include <mc9s12dp256.h> /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12dp256b"
byte sci_data; //中断初始化
void SCI_Init(void)
{
SCI0BDL=0x34; // 波特率控制寄存器 0011 0100
SCI0CR2=0X2C; // 控制寄存器2 0010 1100
} //发送子函数
void SCI_Transmit(byte data)
{
while(!SCI0SR1_TDRE) ;
SCI0DRL=data; //数据寄存器
} //接收子函数
void SCI_Receive(byte *data)
{
*data=SCI0DRL;
} //特定输出子函数
void printf(char *str)
{
while(*str!='\r')
{
SCI_Transmit(*str);
*str++;
}
} N0Choose(byte data)
{
switch(data)
{
case '':
NO1();
break;
case '':
NO2();
break ;
case '':
NO3();
break;
case '':
NO4();
break;
case '':
NO5();
break;
default:
break;
}
} /********************************************************/
/* 主函数 */
/********************************************************/
void main(void)
{
SCI_Init();
printf("welcome to lipu's football-quiz system!\n\r");
printf("choose the problem number(1to5)\n\r"); //选择正确的问题号码1~5
while()
{
while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
N0Choose(sci_data);
}
} void Right(void)
{
printf("\nyou are RIGHT.\nchoose the next question\n\r");}
void Wrong(void){
printf("\nyou are WRONG.\nchoose the next question\n\r");}
int NO1(void)
{
printf(".which country is the champion of World Cup at 2006?\n\r") ;
printf("A:Brazil B:Italy\n\r"); while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
switch(sci_data)
{
case 'A':
Wrong();
break;
case 'B':
Right();
break;
default:
break;
}
} int NO2(void)
{
printf(".which country have the most champions of World Cup?\n\r") ;
printf("A:Brazil B:Italy\n\r");
while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
switch(sci_data)
{
case 'B':
Wrong();
break;
case 'A':
Right();
break;
default:
break;
}
} int NO3(void)
{
printf(".which club is the champion of Spanish Prinera Divison at 06-07\n\r") ;
printf("A:Barcelona B:Real Madrid\n\r");
while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
switch(sci_data)
{
case 'A':
Wrong();
break;
case 'B':
Right();
break;
default:
break;
}
} int NO4(void)
{
printf(".which club is the champion of Italian Serie A at 06-07\n\r") ;
printf("A:Inter Milan B:AC.Milan\n\r");
while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
switch(sci_data)
{
case 'B':
Wrong();
break;
case 'A':
Right();
break;
default:
break;
}
} int NO5(void)
{
printf(".who is the FIFA World Player at 2006\n\r") ;
printf("A:Henry B:Ronaldiaho\n\r");
while(!SCI0SR1_RDRF);
SCI_Receive(&sci_data);
SCI_Transmit(sci_data);
switch(sci_data)
{
case 'B':
Wrong();
break;
case 'A':
Right();
break;
default:
break;
}
}

zuqiu_dati.c

利用SCI做的一个足球答题系统的更多相关文章

  1. DOM的利用冒泡做的一个小程序

    我们都知道DOM的事件流,有冒泡事件,如何有效的利用冒泡? 优化:应该尽量少的添加事件监听:原理:每添加一个事件监听事件,就会在浏览器中添加一个EventListener,如果数量过多,浏览器只能一个 ...

  2. Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程

    Android实训案例(九)--答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程 项目也是偷师的,决心研究一下数据库.所以写的还是很详细的,各位看官,耐着性子看完,实现结果不重要 ...

  3. 这几天有django和python做了一个多用户博客系统(可选择模板)

    这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下 断断续续2周时间吧,用django做了一个多用户博客系统,现在还没有做完,做分享下,以后等完善了再慢慢说 做的 ...

  4. SSH网上答题系统质量属性

    我要做的事网上答题系统,通过注册登录到答题页面. 这其中数据库的连接靠Hibernate,数据库的增删改查用Sruts2实现. 关于Struts2的学习,仅仅在action的表面上,可以在action ...

  5. 利用Sambaserver在Ubuntu系统和Win7系统间共享目录

    1 介绍 如今是网络化的时代,我们每一个人要更好的发展.离不开网络化.信息化的支持.利用网络的支持.在不同的操作系统间共享文件等信息,是计算机专业学生必备的一项技能. 本文所讲的就是怎样建立.设置.链 ...

  6. 能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件

    能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件 http://blog.csdn.net/pplcheer/article/details/7796211 做项目总是遇到各种的问 ...

  7. Django完整的开发一个博客系统

    今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: Py ...

  8. 微信小程序答题系统实现随机出题 答题小程序如何实现随机出题 微信小程序 答题系统

    最近头脑王者非常火爆,公司也在开发类似头脑王者的答题系统,这个重任交到我这边来了,我们在开发的这个微信小程序答题系统,需要实现随机出题.尤其是一些比如闯关的环节,需要随机从题库里抽取若干道题目,给到用 ...

  9. 如何利用开源思想开发一个SEO友好型网

    如果你有一个网站需要去做SEO优化的时候,不要期望你的努力能立即得到回报.耐心等待并更正内容营销策略,最终会发现你的网站很受用户欢迎.下面就教你如何利用开源思维开发一个SEO友好型网站! 首先,你应该 ...

随机推荐

  1. JDBC学习笔记(7)——事务的隔离级别&批量处理

    数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 ...

  2. 问题-XE8客户端访问Webservice时报“no selected dom vendor”

    问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...

  3. Light oj 1138 - Trailing Zeroes (III) (二分)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1138 题目就是给你一个数表示N!结果后面的0的个数,然后让你求出最小的N. 我们可以知 ...

  4. Javascript高级篇-JS闭包

    Javascript闭包 1.变量的作用域 1.1局部变量 1.2全局变量(声明在外边或不用var来声明的变量) 2.外部读取方法内部的局部(私有)变量 function a(){ var b = & ...

  5. cocos2dx搭建开发环境

    windows7 64位 搭建cocos2dx 版本开发环境 目前cocos2dx分为2.x版本和3.x版本,搭建环境稍有不同 先搭建3.1版本win32开发环境 相关准备: 注意:安装路径尽可能不要 ...

  6. c# 递归算法

    c# 递归算法 2009-03-13 09:44 6950人阅读 评论(8) 收藏 举报 算法c#funn2c 1)1.1.2.3.5.8.......用递归算法求第30位数的值? 首先我们可以发现从 ...

  7. Oracle超出最大连接数问题及解决

    用过Oracle的应该都熟悉如何查看和设置Oracle数据库的最大连接数.这里就再啰嗦一遍. 查看当前的连接数,可以用select count(*) from v$process;设置的最大连接数(默 ...

  8. 从零开始学android开发-setBackgroundDrawable与setBackgroundResource的区别

    setBackgroundDrawable和setBackgroundResource的区别很多网友不知道View类提供的setBackgroundDrawable和setBackgroundReso ...

  9. ural 1993 This cheeseburger you don't need

    顺次存到{} [] () 遇到逗号就处理下,最后处理逗号之后的 #include <iostream> #include <cstring> #include <stri ...

  10. android149 360 程序锁输入密码

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...