毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 电子专业论文

单片机电子秤设计软件程序清单

作者: 浏览:584次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
理工科专业论文
心理学论文范文
学前教育论文范文



毕业论文范文题目:单片机电子秤设计软件程序清单,论文范文关键词:单片机电子秤设计软件程序清单
单片机电子秤设计软件程序清单毕业论文范文介绍开始:

程序清单
;定义  中文LCD液晶 128X64 的地址
W_C_GLCD   XDATA  0E000H
W_D_GLCD   XDATA  0E001H
R_B_GLCD   XDATA  0E002H
R_D_GLCD   XDATA  0E003H
;-------------------------------------------------------
TIMER0     DATA  30H ;延时时间的初值
TIMER1     DATA  31H ;调用延时子程序的次数
DATA1      DATA  32H ;点阵显示的变量1
DATA2      DATA  33H ;点阵显示的变量2
X          DATA  34H ;X方向的位置
Y          DATA  35H ;Y方向的位置
COUNTER    DATA  36H ;计数器
N          DATA  37H ;行数变量
D1         DATA  38H ;点变量1
D2         DATA  39H ;点变量1
ADDR       DATA  3AH ;起始的显示位置
ADDR1      DATA  3BH ;起始的显示位置临时变量
N1         DATA  3CH ;行数的临时变量
;*******************************************************
;*                                主程序开始                                       
;*******************************************************
ORG     0000H
AJMP    START
ORG     0030H
START:   CLR     P1.0
         SETB    P1.1
         MOV     SP,#60H
    LCALL   INITIAL_GLCD      ; 调用LCD初始化
         LCALL   KAIJI             ; 显示开机画面
         LCALL   DELAY500
         LCALL   DELAY500
         LCALL   DELAY500
         LCALL   TISHI             ; 显示主界面
         LCALL   INI_8279
;------------------------------------------
;判断是否继续
;------------------------------------------
KEY_A:     MOV     DPTR,#8101H     ; 8101H为8279命令
           MOVX    A,@DPTR         ; 读状态字
            ANL     A,#07H          ; 判断低三位是否为0
           CJNE    A,#00H,LP1      ; 不为0(有键按下)则跳转
           SJMP    KEY_A           ; 为0(没键按下)则继续查询
LP1:       MOV     DPTR,#8100H     ; 8100H为8279数据口
           MOVX    A,@DPTR         ; 读键值
           CJNE    A,#0DBH,KEY_A   ; 判断是否按D键
           AJMP    K1
K1:        LCALL   YUZHI            ; 阈值设定
           LCALL   celianjieguo     ; 结果显示界面
           LCALL   CELIANGJIEGUO    ; 结果显示
           AJMP    $
;*******************************************************
;*                                主程序开始                                       
;*******************************************************
;=======================================================
;各界面显示内容
;=======================================================
DHTABLE1:  DB      "  欢  迎  使  用  "
DHTABLE2:  DB      "  半桥电子秤  "
DHTABLE3:  DB      " 设计人: x x x  "
DHTABLE4:  DB      " 时间:xxxx "
DHTABLE5:  DB      "****************"
DHTABLE6:  DB      "  设置报警上限    "
DHTABLE7:  DB      "  确定  "
DHTABLE8:  DB      "  请按D 键  "
DHTABLE9:  DB      "                "
DHTABLE10: DB      " 报警上限重量:   "
DHTABLE11: DB      "      .     g  "
DHTABLE12: DB      "        确定(E) "
CELIANG1:  DB      "  电子秤  "
CELIANG2:  DB      " 重量是:         "
CELIANG3:  DB      "      .     g   "
CELIANG4:DB      "      返回 (F)  "
;=======================================================
;开机界面子程序
;=======================================================
KAIJI:   MOV     ADDR1,#00H        ; 第一行显示
         MOV     N1,#08H           ; 数量 8 个
 MOV     DPTR,#DHTABLE1     ; 需要显示的汉字位置
    CALL    DHZ               ; 调用汉字子序 
 MOV     ADDR1,#10H         ; 第二行显示
         MOV     N1,#08H
 MOV     DPTR,#DHTABLE2
  CALL    DHZ
         MOV     ADDR1,#08H            ; 第三行显示
         MOV     N1,#08H
 MOV     DPTR,#DHTABLE3 
 CALL    DHZ
         MOV     ADDR1,#18H       ; 第四行显示
         MOV     N1,#08H
         MOV     DPTR,#DHTABLE4
         CALL    DHZ
         RET
;=======================================================
;提示界面子程序
;=======================================================
TISHI:   LCALL   CLEAR_GLCD           ; 清除LCD显示屏幕
         MOV     ADDR1,#00H
         MOV     N1,#08H
 MOV     DPTR,#DHTABLE5
 CALL    DHZ
 MOV     ADDR1,#10H
         MOV     N1,#08H
         MOV     DPTR,#DHTABLE6
         CALL    DHZ
 MOV     ADDR1,#08H
         MOV     N1,#08H
 MOV     DPTR,#DHTABLE7
 CALL    DHZ
           MOV     ADDR1,#18H
           MOV     N1,#08H
           MOV     DPTR,#DHTABLE8
           CALL    DHZ
           RET
;=======================================================
;阈值设定界面子程序
;=======================================================
SHEDING:        LCALL   CLEAR_GLCD
                MOV     ADDR1,#00H
                MOV     N1,#08H
                MOV     DPTR,#DHTABLE9
                CALL    DHZ
                MOV     ADDR1,#10H
                MOV     N1,#08H
                MOV     DPTR,#DHTABLE10
                CALL    DHZ
 MOV     ADDR1,#08H
                MOV     N1,#08H
 MOV     DPTR,#DHTABLE11
 CALL    DHZ
                MOV     ADDR1,#18H
                MOV     N1,#08H
                MOV     DPTR,#DHTABLE12
                CALL    DHZ
                RET
;=======================================================
;测量界面子程序
;=======================================================
celianjieguo:   LCALL   CLEAR_GLCD
                MOV     ADDR1,#00H
                MOV     N1,#08H
 MOV     DPTR,#CELIANG1
 CALL    DHZ
                MOV     ADDR1,#10H
                MOV     N1,#08H
 MOV     DPTR,#CELIANG2
 CALL    DHZ
                MOV     ADDR1,#08H
                MOV     N1,#08
                MOV     DPTR,#CELIANG3
                CALL    DHZ
                MOV     ADDR1,#18H
                MOV     N1,#08
                MOV     DPTR,#CELIANG4
                CALL    DHZ
                RET
;=======================================================
;8279初始化子程序
;=======================================================
INI_8279:       MOV     DPTR,#8101H
                MOV     A,#00H
                MOVX    @DPTR,A
                MOV     A,#32H
                MOVX    @DPTR,A
                MOV     A,#0DFH
                MOVX    @DPTR,A
                RET
;=======================================================
;键盘设定阈值子程序
;=======================================================
YUZHI:        LCALL   SHEDING
              MOV     44H,#00H      ; 44H单元存按键次数,先清0
;******************键盘按键存储空间   *******
                MOV     55H,#00H        ;存入四次按键值
                MOV     56H,#00H
                MOV     57H,#00H
                MOV     58H,#00H
                MOV     50H,#00H          ; 存阈值百位
                MOV     51H,#00H      ; 存阈值十位和个位
                MOV     52H,#00H          ; 存阈值小数位
;*************************************************************
KEY_09:         MOV     DPTR,#8101H   ; 判断是否有键按下
                MOVX    A,@DPTR
                ANL     A,#07H
                CJNE    A,#00H,LPP1
                AJMP    KEY_09
;-------------------------------------------
;各个键的处理
;------------------------------------------
LPP1:           MOV     DPTR,#8100H
                MOVX    A,@DPTR
B0:             CJNE    A,#0D8H,B1
                AJMP    KK0
B1:             CJNE    A,#0D0H,B2
                AJMP    KK1
B2:             CJNE    A,#0D1H,B3
                AJMP    KK2
B3:             CJNE    A,#0D2H,B4
                AJMP    KK3
B4:             CJNE    A,#0C8H,B5
                AJMP    KK4
B5:             CJNE    A,#0C9H,B6
                AJMP    KK5
B6:             CJNE    A,#0CAH,B7
                AJMP    KK6
B7:             CJNE    A,#0C0H,B8
                AJMP    KK7
B8:             CJNE    A,#0C1H,B9
                AJMP    KK8
B9:             CJNE    A,#0C2H,BE
                AJMP    KK9
BE:             CJNE    A,#0DAH,YUZHI
                AJMP    KKE
KK0:            MOV     5BH,#00H            ; 5BH存键值
                AJMP    COUNT_1
KK1:            MOV     5BH,#01H
                AJMP    COUNT_1
KK2:            MOV     5BH,#02H
                AJMP    COUNT_1
KK3:            MOV     5BH,#03H
               AJMP    COUNT_1
KK4:           MOV     5BH,#04H
               AJMP    COUNT_1
KK5:           MOV     5BH,#05H
               AJMP    COUNT_1
KK6:           MOV     5BH,#06H
               AJMP    COUNT_1
KK7:           MOV     5BH,#07H
               AJMP    COUNT_1
KK8:           MOV     5BH,#08H
               AJMP    COUNT_1
KK9:           MOV     5BH,#09H
               AJMP    COUNT_1
KKE:           AJMP    END_P
COUNT_1:       MOV     A,44H            ; 44H存按键次数
               INC     A
               MOV     44H,A
               CJNE    A,#05H ,CW1       ; 按键次数是否达到4次
               AJMP    YUZHI       ; 五次按键则重设阈值
CW1:           ADD     A,#54H        ; 键盘按键存储空间
               MOV     R0,A
CW2:           CLR     A
               MOV     A,5BH
               MOV     @R0,A
               LCALL   PRO_SHOW
               AJMP    KEY_09
               RET
;=========================================
;各次报警值按键处理子程序
;=========================================
PRO_SHOW:       NOP
    PR_1:       CLR     A                     ; 一次按键
                MOV     A,44H
                CJNE    A,#01H,PR_2
                MOV     R0,#55H
                MOV     A,@R0
                SUBB    A,#05H
                JNC     SS
                MOV     51H,55H
                MOV     A,55H
                MOV     ADDR1,#0AH
                LCALL   SHUZIXIANSHI
                SJMP    END_P
  PR_2:        CLR     A                     ; 二次按键
                MOV     A,44H
                CJNE    A,#02H,PR_3
                CLR     A
                MOV     A,55H
                SWAP    A
                ADD     A,56H
                MOV     51H,A
                MOV     A,55H
                MOV     ADDR1,#09H
                LCALL   SHUZIXIANSHI
                MOV     A,56H
                MOV     ADDR1,#0AH
                LCALL   SHUZIXIANSHI
                AJMP    END_P
   PR_3:       CLR     A                     ; 三次按键
                MOV     A,44H
                CJNE    A,#03H,PR_4
                CLR     A
                MOV     50H,55H
                MOV     A,56H
                SWAP    A
                ADD     A,57H
                MOV     51H,A
                MOV     A,55H
                MOV     ADDR1,#08H
                LCALL   SHUZIXIANSHI
                MOV     A,56H
                MOV     ADDR1,#09H
                LCALL   SHUZIXIANSHI
                MOV     A,57H
                MOV     ADDR1,#0AH
                LCALL   SHUZIXIANSHI
                SJMP    END_P
         PR_4:       CLR     A             ; 四次按键
                MOV     A,58H
                SWAP    A
                MOV     52H,A
                SWAP    A
                MOV     ADDR1,#0CH
                LCALL   SHUZIXIANSHI
                SJMP    END_P
   END_P:       RET
   SS:          LJMP    YUZHI
;=============================================================
;结果显示子程序
;=============================================================
CELIANGJIEGUO:   LCALL ADC0809     ; 调用0809采样程序
 LCALL ZHH        ; 调用转换程序
 MOV ADDR1,#08H       ; 采数据送LCD显示
                 MOV A,40H
                 LCALL   SHUZIXIANSHI
                 MOV ADDR1,#09H
                 MOV     A,41H
                 SWAP    A
                 LCALL   SHUZIXIANSHI
                 MOV ADDR1,#0AH
 MOV A,41H
                 LCALL   SHUZIXIANSHI
                 MOV ADDR1,#0CH
                 MOV     A,43H
                 SWAP    A
                 LCALL   SHUZIXIANSHI
 CALL    DELAY500              ; 调用延时
                 CALL    BJ     ; 判断是否超过阈值,超过则报警
;------------------------------------------
 ;F键判断是否返回提示界面
;------------------------------------------
KEY_F:          MOV     DPTR,#8101H
                MOVX    A,@DPTR
                ANL     A,#07H
                CJNE    A,#00H,LP2
                SJMP    CELIANGJIEGUO
LP2:            MOV     DPTR,#8100H
                MOVX    A,@DPTR
                CJNE    A,#0D9H,CELIANGJIEGUO ;判断是否按F键
                SETB    P1.1
                CLR     P1.0
                AJMP    K1
;=======================================================
;报警子程序
;=======================================================
BJ:             MOV     R1,#50H
                MOV     A,@R1
                CLR     C
                SUBB    A,40H
                JC      WARNING
                JZ      COMP1
                SETB    P1.1
                CLR     P1.0
                RET
COMP1:          INC     R1
                MOV     A,@R1
                CLR     C
                SUBB    A,41H
                JC      WARNING
                JZ      COMP2
                SETB    P1.1
                CLR     P1.0
                RET
COMP2:          INC     R1
                MOV     A,@R1
                CLR     C
                SUBB    A,43H
                JC      WARNING
                SETB    P1.1
                CLR     P1.0
                RET
WARNING:        CLR     P1.1
                SETB    P1.0
                RET
;=======================================================
;0809采样程序
ADC0809:       PUSH    DPL
             PUSH    DPH
             PUSH    ACC
              MOV     DPTR,#W_D_0809    ; AD0809的启动地址
             MOV     A,#00H
             MOVX    @DPTR,A               ; 0 通道
             LCALL   DELAY01               ; 延时100US
             MOVX    A,@DPTR             ; 读出A/D的结果
             MOV     3FH,A        ; 暂存
 POP     ACC
             POP     DPH
             POP     DPL
             RET
;=======================================================
;转换子程序 : 3FH的内容(A/D采样的结果)*(5V/256(FFH))=十进制结果;40H,41H.例如:3FH=0FFH,  那么程序执行后:40H=04H  , 41H=99H 既4.99V
;=======================================================
ZHH:          PUSH    PSW
              PUSH    ACC
                SETB    RS0
              MOV     A,#4eH
                MOV     B,3FH
                 MUL     AB
              MOV     R6,B
              MOV     R7,A
HB2:          CLR     A
              MOV     R3,A
              MOV     R4,A
         MOV     R5,A
         MOV     R2,#10H
HB3:     MOV     A,R7
         RLC     A
         MOV     R7,A
         MOV     A,R6
          RLC     A
         MOV     R6,A
         MOV     A,R5
         ADDC    A,R5
         DA      A
         MOV     R5,A
         MOV     A,R4
         ADDC    A,R4
         DA      A
         MOV     R4,A
         MOV     A,R3
         ADDC    A,R3
         MOV     R3,A
         DJNZ    R2,HB3
         MOV     40H,R3
         MOV     41H,R4
           MOV     43H,R5
         POP     ACC
         POP     PSW
         RET
;=======================================================
;点阵式 LCD(128X64)模块显示部分子程序 ;以下是公共的程序:
;=======================================================
;LCD 初始化子程序
;=========================================
INITIAL_GLCD:   PUSH    ACC
                MOV     A,#30H                ; 功能设定
                CALL    COMMAND_GLCD
                MOV     A,#30H                ; 功能设定
                CALL    COMMAND_GLCD
                MOV     A,#30H                ; 功能设定
                CALL    COMMAND_GLCD
                MOV     A,#06H         ; 显示器控制:游标不显示;
                CALL    COMMAND_GLCD
                MOV     A,#01H              ; 清除显示器
                CALL    COMMAND_GLCD
                MOV     A,#0CH            ; 进入模式设定
                CALL    COMMAND_GLCD
                POP     ACC
                RET
;=========================================
;汉字显示子程序(16X16点阵)
;=========================================
DHZ:            MOV    ADDR,ADDR1       ; 开始行位置
                MOV   B,N1        ; 显示数量
DHZ1:           MOV    A,ADDR;
                ORL    A,#80H         ; 送显示地址
                LCALL  COMMAND_GLCD       ; 调写命令子程序
DHZ2:           CLR   A
                MOVC   A,@A+DPTR    ; 查找汉字的高位码
                INC    DPTR
             LCALL  WRITE_GLCD       ; 送显示
                CLR   A
               MOVC   A,@A+DPTR         ; 查找汉字的低位码
                INC    DPTR
                LCALL  WRITE_GLCD            ; 送显示
                DJNZ   B,DHZ2
                RET
;=========================================
;数字显示子程序
;=========================================
SHUZIXIANSHI:   MOV     42H,A
                MOV     ADDR,ADDR1       ; 开始行位置
                MOV     A,ADDR;
                ORL     A,#80H         ; 送显示地址
             LCALL   COMMAND_GLCD
                MOV     A,42H
;------------------------------------------
;将 ACC 内容,以十六进制值显示
;------------------------------------------
HEX_LCD:    PUSH    DPH
            PUSH    DPL
            PUSH    ACC
         ANL     A,#0FH
            MOV     DPTR,#ASCII_CODE    ; DPTR 指到 ASCII_CODE
            MOVC    A,@A+DPTR        ; 取得 ASCII 码
            CALL    WRITE_GLCD            ; 写到 LCD
            POP     ACC
            POP     DPL
            POP     DPH
            RET
ASCII_CODE:     DB     '0123456789ABCDEF'
;=========================================
;检查LCD 忙碌标志
;=========================================
CHKBUSY_GLCD:   PUSH    DPH
              PUSH    DPL
                PUSH    ACC
                MOV     DPTR,#R_B_GLCD
CHK:            MOVX    A,@DPTR
                JB      ACC.7,CHK       ; 判别是不是忙?
                POP     ACC
                POP     DPL
  POP     DPH
                RET
;=========================================
;写命令到 GLCD
;=========================================
COMMAND_GLCD:   PUSH    DPH
              PUSH    DPL
                CALL    CHKBUSY_GLCD     ; 判别是不是忙?
                MOV     DPTR,#W_C_GLCD
                MOVX    @DPTR,A        ; 写入命令
                POP     DPL
              POP     DPH
                RET
;=========================================
;写资料到 GLCD
;=========================================
WRITE_GLCD:     PUSH    DPH
                PUSH    DPL
                CALL    CHKBUSY_GLCD     ; 判别是不是忙?
                MOV     DPTR,#W_D_GLCD        ; 写入数据
                MOVX    @DPTR,A
                POP     DPL
              POP     DPH
                RET
;=========================================
;清除 LCD 的显示幕
;=========================================
CLEAR_GLCD:     PUSH    ACC
                MOV     A,#01H              ; 清除显示器
                CALL    COMMAND_GLCD
                POP     ACC
                RET
;=======================================================
;延时子程序
;=======================================================
DELAY:          PUSH    TIMER1   ; 延时TIMER1*1 ms for 12MHz
             PUSH    TIMER0
DELAY1:         MOV     TIMER0,#250       ;时间为4*1μS
DELAY2:         NOP         ; 1个周期
                NOP         ; 1个周期
                DJNZ    TIMER0,DELAY2         ; 2个周期
             DJNZ    TIMER1,DELAY1
             POP     TIMER0
             POP     TIMER1
                RET
                NOP
;------------------------------------------
;延时 1 ms
;------------------------------------------
DELAY01:        NOP
                PUSH    TIMER1
                MOV     TIMER1,#01H
                LCALL   DELAY
                POP     TIMER1
                RET
                NOP
;------------------------------------------
;延时500ms
;------------------------------------------
DELAY500:       NOP
             PUSH    TIMER1
             MOV TIMER1,#250
             LCALL DELAY
             LCALL   DELAY
             POP     TIMER1
             RET
             NOP
 


以上为本篇毕业论文范文单片机电子秤设计软件程序清单的介绍部分。
本论文在电子专业论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重
收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
热能与动力设计论文
教育管理专业论文
日语专业论文
德语专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:基于DSP的语音处理系统的设计 下一篇:[免费设计]三相正弦波变频电源的..

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供电子专业论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有