資源描述:
《51單片機實驗程序.doc》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、.用查表方式編寫y=x13+x23+x33。(x為0~9的整數(shù))#includevoidmain(){intcodea[10]={0,1,8,27,64,125,216,343,512,729};//將0~9對應的每位數(shù)字的三次方的值存入code中,code為程序存儲器,當所存的值在0~255或-128~+127之間的話就用char,而現(xiàn)在的值明顯超過這個范圍,用int較合適。int的范圍是0~65535或-32768~32767。inty,x1,x2,x3;//此處定義根據(jù)習慣,也可寫成charx1,x2,x3但是
2、變量y一定要用int來定義。x1=2;x2=4;x3=9;//x1,x2,x3三個的值是自定的,只要是0~9當中的數(shù)值皆可,也可重復。y=a[x1]+a[x2]+a[x3];while(1);//單片機的程序不能停,這步就相當于無限循環(huán)的指令,循環(huán)的內容為空白。}//結果的查詢在Keilvision軟件內部,在仿真界面點擊右下角(一般初始位置是右下角)的watch的框架內雙擊“double-clickorF2toadd”文字輸入y后按回車,右側會顯示其16進制數(shù)值如0x34,鼠標右鍵該十六進制,選擇第一行的decimal,可查看對應的
3、10進制數(shù)。1、有10個8位二進制數(shù)據(jù),要求對這些數(shù)據(jù)進行奇偶校驗,凡是滿足偶校驗的數(shù)據(jù)(1的個數(shù)為偶數(shù))都要存到內RAM50H開始的數(shù)據(jù)區(qū)中。試編寫有關程序。#includevoidmain(){inta[10]={0,1,5,20,24,54,64,88,101,105};//將所要處理的值存入RAM中,這些可以根據(jù)個人隨意設定,但建議不要超過0~255的范圍。chari;//定義一個變量char*q=0x50;//定義一個指針*q指向內部0x50這個地址。for(i=9;i>=0;i--)//9~0循環(huán),共十次
4、,也可以用for(i=0;i<10;i++){ACC=a[i];//將a[i]的值賦給累加器ACCif(P==0)//PSW0位上的奇偶校驗位,如果累加器ACC內數(shù)值1的個數(shù)為偶數(shù)那么P為0,若為奇數(shù),P為1。這里的P是大寫的。{*q=a[i];q++;//每賦一個值,指針挪一個位置指向下一個。}}while(1);//同實驗一,程序不能停。..}3.有10個8位帶符號二進制數(shù),請將10個數(shù)按從小到大的順序排列,并存到內RAM50H開始的單元中。#includevoidmain(){chardataa[10]={-5
5、0,-36,0,-128,1,99,127,89,-89,40};//將所有值存入RAM中,因為有負數(shù),所以不能用unsignedchar。因為是char所以假設的數(shù)值不要超過-128~+127之外unsignedchar*q=0x50;//定義指針*q指向0x50unsignedchari,j;chart;//定義三個變量,用于循環(huán)及換位。在換位時有賦值,所以t要用char不能用unsignedchar。for(i=0;i<10;i++)for(j=0;j<10-i;j++)//冒泡法,具體可以參考C語言程序設計的書。{if(a[j
6、]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)//將已經(jīng)排好序的數(shù)組存入*q指向的地址。{*q=a[i];q++;}while(1);}1、基本部分:(1)P1口做輸出口,接八只發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點亮。#includevoiddelay(unsignedcharx)//定義延遲函數(shù),用于后面LED燈亮的持續(xù)時間。{unsignedchari,j,k;do{for(i=10;i>0;i--)..for(j=100;j>0;j--)f
7、or(k=249;k>0;k--);}while(--x);}main(){P1=0xfe;//11111110第一個燈亮while(1){delay(1);//延時500msP1=P1<<1
8、1;//P1左移一個位即11111101具體crol跟<<的區(qū)別與具體細節(jié)可聯(lián)系我與你講解if(P1==0XFF){P1=0XFE;}}}(2)P1.0、P1.1作輸入口接兩個撥動開關,P1.2、P1.3作輸出口,接兩個發(fā)光二極管,編寫程序讀取開關狀態(tài),將此狀態(tài),在發(fā)光二極管上顯示出來。編程時應注意P1.0、P1.1作為輸入口時應先置1,才能正
9、確讀入值。#includesbitp1_0=P1^0;sbitp1_1=P1^1;sbitp1_2=P1^2;sbitp1_3=P1^3;//程序不能對單個引腳進行編程,需要用sbit定義才可用。mai