病房呼叫體統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p> 課程設(shè)計(jì)報(bào)告</p><p> (本科/專(zhuān)科)</p><p> 課程:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)</p><p> 學(xué)號(hào):</p><p> 姓名:</p><p> 班級(jí):</p><p> 教師:</p><p> 時(shí)間:2012.4.20</p>

2、;<p> 計(jì)算機(jī)科學(xué)與技術(shù)系</p><p><b>  附錄:實(shí)驗(yàn)源程序</b></p><p>  #include<reg51.h> //包含51單片機(jī)寄存器定義的頭文件</p><p>  unsigned char code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0

3、x82,0xf8,0x80,0x90}; //數(shù)字0~9的段碼</p><p>  unsigned char keyval; //定義變量?jī)?chǔ)存按鍵值</p><p>  sbit p=P3^7;</p><p>  /**************************************************************</p

4、><p>  函數(shù)功能:數(shù)碼管動(dòng)態(tài)掃描延時(shí)</p><p>  **************************************************************/</p><p>  void led_delay(void) </p><p><b>  {</b></p>

5、<p>  unsigned char j;</p><p>  for(j=0;j<200;j++)</p><p><b>  ;</b></p><p><b>  }</b></p><p>  /***************************************

6、***********************</p><p>  函數(shù)功能:按鍵值的數(shù)碼管顯示子程序</p><p>  **************************************************************/</p><p>  void display(unsigned char k)</p><p&g

7、t;<b>  {</b></p><p>  P3=0xfe; //點(diǎn)亮數(shù)碼管1</p><p>  P0=Tab[k/10]; //顯示十位 </p><p>  led_delay(); //動(dòng)態(tài)掃描延時(shí) </p><p>  P3=0xfd;

8、//點(diǎn)亮數(shù)碼管2</p><p>  P0=Tab[k%10]; //顯示個(gè)位 </p><p>  led_delay(); //動(dòng)態(tài)掃描延時(shí) </p><p>  if(keyval!=0x00)</p><p><b>  p=0;</b></p><p><

9、b>  }</b></p><p>  /**************************************************************</p><p>  函數(shù)功能:軟件延時(shí)子程序</p><p>  **********************************************************

10、****/</p><p>  void delay20ms(void) </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p>  for(i=0;i<100;i++)</p><p>  for(j=0;j<60;j+

11、+)</p><p><b>  ;</b></p><p><b>  }</b></p><p>  /**************************************************************</p><p><b>  函數(shù)功能:主函數(shù)</b

12、></p><p>  **************************************************************/ </p><p>  void main(void)</p><p><b>  {</b></p><p>  EA=1; //

13、開(kāi)總中斷</p><p>  ET0=1; //定時(shí)器T0中斷允許 </p><p>  TMOD=0x01; //使用定時(shí)器T0的模式1</p><p>  TH0=(65536-500)/256; //定時(shí)器T0的高8位賦初值</p><p>  TL0=(65536

14、-500)%256; //定時(shí)器T0的高8位賦初值</p><p>  TR0=1; //啟動(dòng)定時(shí)器T0</p><p>  keyval=0x00; //按鍵值初始化為0</p><p>  EX0=1; //允許使用外中斷</p><p>  IT0=1; //選擇負(fù)跳變來(lái)觸發(fā)外中斷&

15、lt;/p><p>  //P1=0xff;</p><p>  while(1) //無(wú)限循環(huán)</p><p><b>  {</b></p><p>  display(keyval); //調(diào)用按鍵值的數(shù)碼管顯示子程序</p><p><b>  }&

16、lt;/b></p><p><b>  }</b></p><p>  /**************************************************************</p><p>  函數(shù)功能:定時(shí)器0的中斷服務(wù)子程序,進(jìn)行鍵盤(pán)掃描,判斷鍵位</p><p>  *******

17、*******************************************************/ </p><p>  void time0_interserve(void) interrupt 1 using 1 </p><p><b>  {</b></p><p>  TR0=0;

18、 //關(guān)閉定時(shí)器T0</p><p>  P1=0xff; //所有列線置為高電平?</p><p>  P2=0x00; //所有行線置為低電平“0”?”</p><p>  if((P1&0xff)!=0xff) //列線中有一位為低電平“0”,說(shuō)明有鍵按下</p>

19、<p>  delay20ms(); //延時(shí)一段時(shí)間、軟件消抖</p><p>  if((P1&0xff)!=0xff) //確實(shí)有鍵按下</p><p><b>  {</b></p><p>  P2=0xfe; //第一行置為低電平“0”(P1.1出低電平“0”)</p>

20、<p>  if(P1==0xfe) keyval=1; //可判斷是S1鍵被按下</p><p>  if(P1==0xfd) keyval=2; //可判斷是S2鍵被按下</p><p>  if(P1==0xfb) keyval=3; //可判斷是S3鍵被按下</p><p

21、>  if(P1==0xf7) keyval=4; //可判斷是S4鍵被按下</p><p>  if(P1==0xef) keyval=5; //可判斷是S5鍵被按下</p><p>  if(P1==0xdf) keyval=6; //可判斷是S6鍵被按下</p><p>  i

22、f(P1==0xbf) keyval=7; //可判斷是S7鍵被按下</p><p>  if(P1==0x7f) keyval=8; //可判斷是S8鍵被按下</p><p>  P2=0xfd; //第二行置為低電平“0”(P1.1出低電平“0”)</p><p>  if(P1==0xfe) keyv

23、al=9; //可判斷是S9鍵被按下</p><p>  if(P1==0xfd) keyval=10; //可判斷是S10鍵被按下</p><p>  if(P1==0xfb) keyval=11; //可判斷是S11鍵被按下</p><p>  if(P1==0xf7) keyval

24、=12; //可判斷是S12鍵被按下</p><p>  if(P1==0xef) keyval=13; //可判斷是S13鍵被按下</p><p>  if(P1==0xdf) keyval=14; //可判斷是S14鍵被按下</p><p>  if(P1==0xbf) keyval=

25、15; //可判斷是S15鍵被按下</p><p>  if(P1==0x7f) keyval=16; //可判斷是S16鍵被按下</p><p>  P2=0xfb; //第三行置為低電平“0”(P1.2輸出低電平“0”)</p><p>  if(P1==0xfe) keyval=17;

26、 //可判斷是S17鍵被按下</p><p>  if(P1==0xfd) keyval=18; //可判斷是S18鍵被按下</p><p>  if(P1==0xfb) keyval=19; //可判斷是S19鍵被按下</p><p>  if(P1==0xf7) keyval=20;

27、 //可判斷是S20鍵被按下</p><p>  if(P1==0xef) keyval=21; //可判斷是S21鍵被按下</p><p>  if(P1==0xdf) keyval=22; //可判斷是S22鍵被按下</p><p>  if(P1==0xbf) keyval=23;

28、//可判斷是S23鍵被按下</p><p>  if(P1==0x7f) keyval=24; //可判斷是S24鍵被按下</p><p>  P2=0xf7; //第三行置為低電平“0”(P1.2輸出低電平“0</p><p>  if(P1==0xfe) keyval=25; //可判斷是S25鍵被按

29、下</p><p>  if(P1==0xfd) keyval=26; //可判斷是S26鍵被按下</p><p>  if(P1==0xfb) keyval=27; //可判斷是S27鍵被按下</p><p>  if(P1==0xf7) keyval=28; //可判斷是S28鍵被按下

30、</p><p>  if(P1==0xef) keyval=29; //可判斷是S29鍵被按下</p><p>  if(P1==0xdf) keyval=30; //可判斷是S30鍵被按下</p><p>  if(P1==0xbf) keyval=31; //可判斷是S31鍵被按下&

31、lt;/p><p>  if(P1==0x7f) keyval=32; //可判斷是S32鍵被按下</p><p>  P2=0xef; //第一行置為低電平“0”(P1.1出低電平“0”)</p><p>  if(P1==0xfe) keyval=33; //可判斷是S33鍵被按下</p><

32、;p>  if(P1==0xfd) keyval=34; //可判斷是S34鍵被按下</p><p>  if(P1==0xfb) keyval=35; //可判斷是S35鍵被按下</p><p>  if(P1==0xf7) keyval=36; //可判斷是S36鍵被按下</p><

33、p>  if(P1==0xef) keyval=37; //可判斷是S37鍵被按下</p><p>  if(P1==0xdf) keyval=38; //可判斷是S38鍵被按下</p><p>  if(P1==0xbf) keyval=39; //可判斷是S39鍵被按下</p><p

34、>  if(P1==0x7f) keyval=40; //可判斷是S40鍵被按下</p><p>  P2=0xdf; //第二行置為低電平“0”(P1.1出低電平“0”)</p><p>  if(P1==0xfe) keyval=41; //可判斷是S41鍵被按下</p><p>  if(P1==

35、0xfd) keyval=42; //可判斷是S42鍵被按下</p><p>  if(P1==0xfb) keyval=43; //可判斷是S43鍵被按下</p><p>  if(P1==0xf7) keyval=44; //可判斷是S44鍵被按下</p><p>  if(P1==0

36、xef) keyval=45; //可判斷是S45鍵被按下</p><p>  if(P1==0xdf) keyval=46; //可判斷是S46鍵被按下</p><p>  if(P1==0xbf) keyval=47; //可判斷是S47鍵被按下</p><p>  if(P1==0x

37、7f) keyval=48; //可判斷是S48鍵被按下</p><p>  P2=0xbf; //第三行置為低電平“0”(P1.2輸出低電平“0”)</p><p>  if(P1==0xfe) keyval=49; //可判斷是S49鍵被按下</p><p>  if(P1==0xfd) keyval=

38、50; //可判斷是S50鍵被按下</p><p>  if(P1==0xfb) keyval=51; //可判斷是S51鍵被按下</p><p>  if(P1==0xf7) keyval=52; //可判斷是S52鍵被按下</p><p>  if(P1==0xef) keyval=5

39、3; //可判斷是S53鍵被按下</p><p>  if(P1==0xdf) keyval=54; //可判斷是S54鍵被按下</p><p>  if(P1==0xbf) keyval=55; //可判斷是S55鍵被按下</p><p>  if(P1==0x7f) keyval=56

40、; //可判斷是S56鍵被按下</p><p>  P2=0x7f; //第三行置為低電平“0”(P1.2輸出低電平“0</p><p>  if(P1==0xfe) keyval=57; //可判斷是S57鍵被按下</p><p>  if(P1==0xfd) keyval=58;

41、//可判斷是S58鍵被按下</p><p>  if(P1==0xfb) keyval=59; //可判斷是S59鍵被按下</p><p>  if(P1==0xf7) keyval=60; //可判斷是S60鍵被按下</p><p>  if(P1==0xef) keyval=61; /

42、/可判斷是S61鍵被按下</p><p>  if(P1==0xdf) keyval=62; //可判斷是S62鍵被按下</p><p>  if(P1==0xbf) keyval=63; //可判斷是S63鍵被按下</p><p>  if(P1==0x7f) keyval=64; //

43、可判斷是S64鍵被按下</p><p><b>  }</b></p><p>  TR0=1; //開(kāi)啟定時(shí)器T0</p><p>  TH0=(65536-500)/256; //定時(shí)器T0的高8位賦初值</p><p>  TL0=(65536-500)%256; //定時(shí)

44、器T0的高8位賦初值 </p><p><b>  }</b></p><p>  /**************************************************************</p><p>  函數(shù)功能:外部中斷程序,進(jìn)行復(fù)位響應(yīng)按鍵</p><p>  ************

45、**************************************************/ </p><p>  void time0(void) interrupt 0 using 0 </p><p><b>  { </b></p><p>  keyval=0x00;</p><p><b>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論