|
51單片機實例
- /*-----------------------------------------------
- 名稱:IO口高低電平控制
- 編寫:shifang
- 修改:無
- 內容:花樣燈一般有兩種方法實現:
- 1、程序循環執行
- 2、查表法
- 這里我們兩種都使用一下
- ------------------------------------------------*/
- #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
- /*------------------------------------------------
- 花樣表格
- ------------------------------------------------*/
- unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,
- 0xf7,0xfb,0xfd,0xfe,
- 0xff,0xff,0x00,0x00,
- 0x55,0x55,0xaa,0xaa
- };//rom允許情況可以無限添加
- void Delay(unsigned int t); //函數聲明
- /*------------------------------------------------
- 主函數
- ------------------------------------------------*/
- main()
- {
- unsigned char i; //定義一個無符號字符型
- //局部變量 i 取值范圍 0~255
- while(1)
- {
- P1=0xFE; //第1個LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 <<=1;
- }
- P1=0x7F; //第8個LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 >>=1;
- }
- P1=0xFE; //第1個LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 <<=1;
- P1 |=0x01;
- }
- P1=0x7F; //第8個LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 >>=1;
- P1 |=0x80;
- }
- //下面通過查表方法獲得花樣參數
- for(i=0;i<16;i++)//查表可以簡單的顯示各種花樣 實用性更強
- {
- Delay(20000);
- P1=seg[i];
- }
- }
- }
- /*------------------------------------------------
- 延時函數,含有輸入參數 unsigned int t,無返回值
- unsigned int 是定義無符號整形變量,其值的范圍是
- 0~65535
- ------------------------------------------------*/
- void Delay(unsigned int t)
- {
- while(--t);
- }
復制代碼
|
-
-
14-花樣燈.zip
2016-8-24 10:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
9.17 KB, 下載次數: 11, 下載積分: 黑幣 -5
|