博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用SCI做的一个足球答题系统
阅读量:5167 次
发布时间:2019-06-13

本文共 4219 字,大约阅读时间需要 14 分钟。

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

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

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

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

1 /*******************************************************/  2 /*                     利用SCI做的一个足球答题系统                         */  3 /*******************************************************/  4 #include 
/* common defines and macros */ 5 #include
/* derivative information */ 6 7 #pragma LINK_INFO DERIVATIVE "mc9s12dp256b" 8 byte sci_data; 9 10 //中断初始化 11 void SCI_Init(void) 12 { 13 SCI0BDL=0x34; // 波特率控制寄存器 0011 0100 14 SCI0CR2=0X2C; // 控制寄存器2 0010 1100 15 } 16 17 //发送子函数 18 void SCI_Transmit(byte data) 19 { 20 while(!SCI0SR1_TDRE) ; 21 SCI0DRL=data; //数据寄存器 22 } 23 24 //接收子函数 25 void SCI_Receive(byte *data) 26 { 27 *data=SCI0DRL; 28 } 29 30 //特定输出子函数 31 void printf(char *str) 32 { 33 while(*str!='\r') 34 { 35 SCI_Transmit(*str); 36 *str++; 37 } 38 } 39 40 N0Choose(byte data) 41 { 42 switch(data) 43 { 44 case '1': 45 NO1(); 46 break; 47 case '2': 48 NO2(); 49 break ; 50 case '3': 51 NO3(); 52 break; 53 case '4': 54 NO4(); 55 break; 56 case '5': 57 NO5(); 58 break; 59 default: 60 break; 61 } 62 } 63 64 /********************************************************/ 65 /* 主函数 */ 66 /********************************************************/ 67 void main(void) 68 { 69 SCI_Init(); 70 printf("welcome to lipu's football-quiz system!\n\r"); 71 printf("choose the problem number(1to5)\n\r"); //选择正确的问题号码1~5 72 while(1) 73 { 74 while(!SCI0SR1_RDRF); 75 SCI_Receive(&sci_data); 76 SCI_Transmit(sci_data); 77 N0Choose(sci_data); 78 } 79 } 80 81 82 void Right(void) 83 { 84 printf("\nyou are RIGHT.\nchoose the next question\n\r");} 85 void Wrong(void){ 86 printf("\nyou are WRONG.\nchoose the next question\n\r");} 87 int NO1(void) 88 { 89 printf(".which country is the champion of World Cup at 2006?\n\r") ; 90 printf("A:Brazil B:Italy\n\r"); 91 92 while(!SCI0SR1_RDRF); 93 SCI_Receive(&sci_data); 94 SCI_Transmit(sci_data); 95 switch(sci_data) 96 { 97 case 'A': 98 Wrong(); 99 break;100 case 'B':101 Right();102 break;103 default:104 break;105 }106 }107 108 int NO2(void)109 {110 printf(".which country have the most champions of World Cup?\n\r") ;111 printf("A:Brazil B:Italy\n\r");112 while(!SCI0SR1_RDRF);113 SCI_Receive(&sci_data);114 SCI_Transmit(sci_data);115 switch(sci_data)116 {117 case 'B':118 Wrong();119 break;120 case 'A':121 Right();122 break;123 default:124 break;125 }126 }127 128 int NO3(void)129 {130 printf(".which club is the champion of Spanish Prinera Divison at 06-07\n\r") ;131 printf("A:Barcelona B:Real Madrid\n\r");132 while(!SCI0SR1_RDRF);133 SCI_Receive(&sci_data);134 SCI_Transmit(sci_data);135 switch(sci_data)136 {137 case 'A':138 Wrong();139 break;140 case 'B':141 Right();142 break;143 default:144 break;145 }146 }147 148 int NO4(void)149 {150 printf(".which club is the champion of Italian Serie A at 06-07\n\r") ;151 printf("A:Inter Milan B:AC.Milan\n\r");152 while(!SCI0SR1_RDRF);153 SCI_Receive(&sci_data);154 SCI_Transmit(sci_data);155 switch(sci_data)156 {157 case 'B':158 Wrong();159 break;160 case 'A':161 Right();162 break;163 default:164 break;165 }166 }167 168 int NO5(void)169 {170 printf(".who is the FIFA World Player at 2006\n\r") ;171 printf("A:Henry B:Ronaldiaho\n\r");172 while(!SCI0SR1_RDRF);173 SCI_Receive(&sci_data);174 SCI_Transmit(sci_data);175 switch(sci_data)176 {177 case 'B':178 Wrong();179 break;180 case 'A':181 Right();182 break;183 default:184 break;185 }186 }
zuqiu_dati.c

 

转载于:https://www.cnblogs.com/lihuidashen/p/3486092.html

你可能感兴趣的文章
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>