اعتقد بنسبه 99.99% ان هذا الكود ليس لل pic mcu وانما ل 8051 core mcu
|
اولا اشكرلك اخى سرعة الرد واوفقك الرأى ان الكود غير مخصص لل pic
وهذا مثال اخر للاردوينو
كود:
/*
Example 38.2 - Sparkfun Thermal Printer Test II (COM-10438)
http://tronixstuff.wordpress.com/tutorials > chapter 38
Based on code by Nathan Seidle of Spark Fun Electronics 2011
http://littlebirdelectronics.com/products/thermal-printer
*/
#include
NewSoftSerial Thermal(2, 3); // printer RX to digital 2, printer TX to digital 3
int heatTime = 80;
int heatInterval = 255;
char printDensity = 15;
char printBreakTime = 15;
void setup()
{
Serial.begin(57600); // for debug info to serial monitor
Thermal.begin(19200); // to write to our new printer
initPrinter();
}
void initPrinter()
{
//Modify the print speed and heat
Thermal.print(27, BYTE);
Thermal.print(55, BYTE);
Thermal.print(7, BYTE); //Default 64 dots = 8*('7'+1)
Thermal.print(heatTime, BYTE); //Default 80 or 800us
Thermal.print(heatInterval, BYTE); //Default 2 or 20us
//Modify the print density and timeout
Thermal.print(18, BYTE);
Thermal.print(35, BYTE);
int printSetting = (printDensity<<4) | printBreakTime;
Thermal.print(printSetting, BYTE); //Combination of printDensity and printBreakTime
Serial.println();
Serial.println("Printer ready");
}
void loop()
{
// underline - one pixel
Thermal.print(27,BYTE);
Thermal.print(45,BYTE);
Thermal.print(1,BYTE);
Thermal.println("Underline - thin");
Thermal.println("01234567890123456789012345678901");
Thermal.print(10,BYTE);
// underline - two pixels
Thermal.print(27,BYTE);
Thermal.print(45,BYTE);
Thermal.print(2,BYTE);
Thermal.println("Underline - thick");
Thermal.println("01234567890123456789012345678901");
Thermal.print(10,BYTE);
// turn off underline
Thermal.print(27,BYTE);
Thermal.print(45,BYTE);
Thermal.print(0,BYTE);
delay(3000);
Thermal.print(10,BYTE);
// bold text on
Thermal.print(27,BYTE);
Thermal.print(32,BYTE);
Thermal.print(1,BYTE);
Thermal.println(" #### Bold text #### ");
Thermal.println("01234567890123456789012345678901");
delay(3000);
// bold text off
Thermal.print(27,BYTE);
Thermal.print(32,BYTE);
Thermal.print(0,BYTE);
Thermal.print(10, BYTE); //Sends the LF to the printer, advances the paper
delay(3000);
// height/width enlarge
Thermal.print(29,BYTE);
Thermal.print(33,BYTE);
Thermal.print(255,BYTE);
Thermal.println("ABCDEF");
Thermal.println("012345");
delay(3000);
// back to normal
Thermal.print(29,BYTE);
Thermal.print(33,BYTE);
Thermal.print(0,BYTE);
delay(3000);
Thermal.print(10, BYTE);
Thermal.println("Back to normal...");
Thermal.print(10, BYTE);
Thermal.print(10, BYTE);
do { } while (1>0); // do nothing
}
وهذا الفيديو الخاص بالطابعة وهى تعمل
السؤال هنا كيف اعدل هذا الكود ليعمل مع البك