C51控制并口打印機實例:/* 沈陽新榮達電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機 BUSY 接P1.2sbit STB = P1^0; //打印機 STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機忙,等待BUSY 為0 再發數data_8=j;STB=0;i++;i--;STB=1; //給出數據鎖存時鐘BUSY=1;}void main(void){BUSY = 1; //忙信號置高STB = 1; //選通信號置高print(0x1b); //打印機初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發送漢字內碼“新榮達”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}
上傳時間: 2013-11-13
上傳用戶:lwq11
微型打印機的C語言源程序:微型打印機的C51源程序#define uchar unsigned char#define uint unsigned int#include <reg52.h>#include <stdio.h>#include <absacc.h>#include <math.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define PIN XBYTE[0x8000]#define POUT XBYTE[0x9000]sbit PRINTSTB =P1^6;sbit DOG=P1^7;bdata char pin&#118alue;sbit PRINTBUSY=pin&#118alue^7;sbit PRINTSEL =pin&#118alue^6;sbit PRINTERR =pin&#118alue^5;sbit PRINTACK =pin&#118alue^4; void PrintString(uchar *String1,uchar *String2);void initprint(void);void print(uchar a); void initprint(void) //打印機初始化子程序 { pin&#118alue=PIN; if((PRINTSEL==1)&&(PRINTERR==1)) { print(0x1b); print(0x40); print(0x1b); print(0x38); print(0x4); }}void print(uchar a) //打印字符a{ pin&#118alue=PIN; if((PRINTSEL==0)||(PRINTERR==0)) return; for(;;) { DOG=~DOG; pin&#118alue=PIN; if(PRINTBUSY==0) break; } DOG=~DOG; POUT=a; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=1;}void PrintString(uchar *String) //打印字符串后回車{ uchar CH; for (;;) { DOG=~DOG; CH=*String; if (CH==0) { print(0x0d); break; } print(CH); String++; } initprint();}
上傳時間: 2013-10-18
上傳用戶:hasan2015
1 /**————————————————————2 〖說明〗I2C總線驅動程序(用兩個普通IO模擬I2C總線)3 包括100Khz(T=10us)的標準模式(慢速模式)選擇,4 和400Khz(T=2.5us)的快速模式選擇,5 默認11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龍嘯九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建議請到論壇公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 調用方式:void I2CStart(void) ﹫2001/07/0 431 函數說明:私有函數,I2C專用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 調用方式:void I2CStop(void) ﹫2001/07/0 443 函數說明:私有函數,I2C專用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 調用方式:bit I2CAck(void) ﹫2001/07/0 454 函數說明:私有函數,I2C專用,等待從器件接收方的應答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方無ACK,超時值為255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;
上傳時間: 2014-04-11
上傳用戶:xg262122
EEPROM為ATMEL公司的AT24C01A。單片機為ATMEL公司的AT89C51。2. 軟件說明 C語言為Franklin C V3.2。將源程序另存為testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C編譯,連接,得到TESTI2C.HEX文件,即可由編程器讀入并進行寫片,實驗。3.源程序#include <reg51.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned int#define AddWr 0xa0 /*器件地址選擇及寫標志*/#define AddRd 0xa1 /*器件地址選擇及讀標志*/#define Hidden 0x0e /*顯示器的消隱碼*/
上傳時間: 2013-10-09
上傳用戶:hjshhyy
#include <reg51.h>#include <main.h>#include <interrupt.h> cs5460a應用電路(含源程序)bit code table_odd_even_bit[16]={0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0}; extern uchar rs485_timeout,pointer_buf485;extern uchar rs485_buf[MAX_485_LEN];extern uchar idata spi_buf[MAX_SPI_LEN];extern uchar pointer_send,send_len; extern uchar count_1s;//extern uint count_2min;extern uint count_10s;extern uchar oper_len,send_offset,chk_sum,send_i;extern bit flag_send_data,flag_level,flag_drdy,flag_data_ok;
上傳時間: 2014-01-24
上傳用戶:heart_2007
可預置的8位計數器程序的主要部分分析 #include <AT89X51.H> //器件配置文件 #define uchar unsigned char //變量類型的宏定義 #define uint unsigned int uchar code SEG7[10]={0x03,0x9f,0x25,0x0d,0x99, //0~9的數碼管段碼 0x49,0x41,0x1f,0x01,0x09} uchar data cnt[8] //在data區定義8位長度的數組,用來存放計數值 uchar data pre_cnt[8] //在data區定義8位長度的數組,用來存放預置值 sbit drv=P3^4 //定義輸出驅動端 bit set_flag //定義工作標志 bit out_flag //定義輸出標志 bit keydown_flag //鍵按下標志
標簽: unsigned include define uchar
上傳時間: 2015-04-29
上傳用戶:changeboy
/*** *5510單片機測試程序 基本測試成功 2005-8-25 write By CW *** *** *** *** *** ****/ #include <reg52.h> #include <absacc.h> #define uint unsigned int #define uchar unsigned char
上傳時間: 2013-11-25
上傳用戶:q123321
學會對文件的記錄鎖定,及解鎖。#include <stdio.h> #include <unistd.h> #include <fcntl.h> int main() { int fd int i struct { char name[20] uint ID int age } myrec fd =open("name", O_RDWR|O_CREAT, 0755) if (fd == -1) return -1 printf("Input your name:") scanf("%s", myrec.name) printf("Inpute your ID :") scanf("%d", &myrec.ID) printf("Input your age :") scanf("%d", &myrec.age) lseek(fd, 0,SEEK_END) lockf(fd, 1, 0) write(fd, (void *)&myrec, sizeof(myrec)) lockf(fd, 0 ,0) return 0 } 執行命令cc lock.c –o lock.out Chmod +x lock.out ./lock.out
標簽: 記錄
上傳時間: 2016-01-04
上傳用戶:亞亞娟娟123
名稱:read2543 功能:TLC2543驅動模塊 輸入參數:port通道號 輸出參數:ad轉換值 *************************************/ uint read2543(uchar port) { uint ad=0,i CLOCK=0 _CS=0 port<<=4 for(i=0 i<12 i++) { if(D_OUT) ad|=0x01 D_IN=(bit)(port&0x80) CLOCK=1 delay(3) CLOCK=0 delay(3) port<<=1 ad<<=1 } _CS=1 ad>>=1 return(ad) }
上傳時間: 2016-01-21
上傳用戶:R50974
S6B0724液晶顯示驅動程序 void LCD_BUSY(void) void write_LCD_data(uchar lcd_data) void write_LCD_command(uchar command) void clear_lcd(void) void LCDClearLine(uchar line) void prints(uchar line,uchar * temp) void printf(ulong int x) void change_code(uint * x) void Sendlcd(uchar x,uchar y,uchar dat) void Sendhz(uchar x,uchar y,uchar dat) void display_HZ(void) void display_date(void) void LCD_initial(void) void prints_id(uchar line,uint id) //void print_lcd(uchar *sss)
標簽: void write_LCD_command write_LCD_data LCD_BUSY
上傳時間: 2016-03-17
上傳用戶:獨孤求源