回覆列表
  • 1 # 要多美麗就多美麗

    用keil軟體編寫一個排序子程式,用冒泡法將內部RAM 50H~5BH中的單位元組無符號的正整數,按從小到大的次序進行排列。

    本題目比較難的地方是硬性指定儲存單元的地址。

    以下程式可以滿足要求。

    #include"reg52.h"

    #define uint unsigned int

    #define uchar unsigned char

    uchar data I_RAM[12] _at_ 0x50; //在50H~5BH位置設定單位元組變數

    void main()

    {

    uchar i, num, temp;

    I_RAM[0] = 0x3A; //先在這裡存放一些亂數

    I_RAM[1] = 0x12;

    I_RAM[2] = 0x54;

    I_RAM[3] = 0x7B;

    I_RAM[4] = 0xD3;

    I_RAM[5] = 0x30;

    I_RAM[6] = 0xA7;

    I_RAM[7] = 0x64;

    I_RAM[8] = 0xD2;

    I_RAM[9] = 0x2C;

    I_RAM[10] = 0xC4;

    I_RAM[11] = 0x87;

    //----------------------------------下面開始排序

    for (num = 11; num > 0; num--) {

    for (i = 0; i < num; i++) {

    if (I_RAM[i] > I_RAM[i + 1]) {

    temp = I_RAM[i];

    I_RAM[i] = I_RAM[i + 1];

    I_RAM[i + 1] = temp;

    } } }

    while(1); //排序結束,可以在keil軟體中,觀察變數的內容。

    }

  • 中秋節和大豐收的關聯?
  • 工科生的考研成績是268,準備調劑,有什麼好的建議?