?? 電機調速.lst
字號:
C51 COMPILER V7.50 電籣礯速 09/01/2011 12:26:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 電籣礯速
OBJECT MODULE PLACED IN 電機調速.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 電機調速.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 * 名稱 : 電機調速.c
3 * 功能 : 通過P1.0口來控制直流電機的旋轉的快慢
4 /***********************************************************************/
5 #include <reg52.h>
6 #define uchar unsigned char
7 #define uint unsigned int
8 sbit KEY1 = P3^2; //定義調速的按鍵
9 sbit PWM = P1^0; //定義直流電機的控制端口
10 uchar CYCLE; //定義周期
11 uchar PWM_ON ; //定義低電平時間
12
13 /********************************************************************
14 * 名稱 : Delay_1ms()
15 * 功能 : 延時子程序,延時時間為 1ms * x
16 * 輸入 : x (延時一毫秒的個數)
17 * 輸出 : 無
18 ***********************************************************************/
19 void Delay(uint i)
20 {
21 1 uchar x,j;
22 1 for(j=0;j<i;j++)
23 1 for(x=0;x<=148;x++);
24 1 }
25
26 void Time0(void)
27 {
28 1 TMOD |=0x01; //定時器設置 1ms in 12M crystal
29 1 TH0=(65536-1000)/256;
30 1 TL0=(65536-1000)%256; //定時1mS
31 1 IE= 0x82; //打開中斷
32 1 TR0=1; //定時器打開
33 1 }
34 main()
35 {
36 1 uchar PWM_Num; //定義檔位
37 1 Time0();
38 1 CYCLE = 10; //時間可以調整 這個是10步調整 周期10ms 8位PWM就是256步
39 1 PWM = 0;
40 1 while(1)
41 1 {
42 2 if(!KEY1)
43 2 {
44 3 Delay(15);
45 3 if(!KEY1)
46 3 {
47 4 PWM_Num++; //按一下P3.2口,就給直流電機換一個檔位
48 4 if(PWM_Num==4)
49 4 {
50 5 PWM_Num=0;
51 5 }
52 4 switch(PWM_Num)
53 4 {
54 5 case 0:P0=0x06; PWM_ON=0;break; //低電平時長 //給P0口賦值,是讓P0口顯示:1,2,3,4 這四個
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -